JSP中forward和redirect有什么区别?什么时候必须用哪个
1个回答
展开全部
response.sendRedirct()与forward的不同
使用 HttpServletResponse.sendRedirect() 方法:这会导致向客户端浏览器返回一个特殊的 HTTP 返回代码(连同要重定向的页面),然后客户端浏览器又对重定向的目标发出新的请求。如果需要在这两个请求之间共享数据,那就必须将数据存储在会话或应用程序范围中。这类似于 ASP 中的 RESPONSE.REDIRECT() 函数。
使用 servlet 中的 RequestDispatcher.forward() 方法或 JSP 页面中的特殊标签:这会导致调用此方法的资源终止,同时终止对作为转发目标的资源的调用。对客户端浏览器来说,这看起来就像是单个请求。例如,如果将请求从 servlet 转发到 JSP 页面,则您可能要附加该 servlet 中的某些处理结果,以便这些结果可以在 JSP 页面中显示出来。
所以response.sendRedirect()不能用request对象传递数据,而forward是可以的。
使用 HttpServletResponse.sendRedirect() 方法:这会导致向客户端浏览器返回一个特殊的 HTTP 返回代码(连同要重定向的页面),然后客户端浏览器又对重定向的目标发出新的请求。如果需要在这两个请求之间共享数据,那就必须将数据存储在会话或应用程序范围中。这类似于 ASP 中的 RESPONSE.REDIRECT() 函数。
使用 servlet 中的 RequestDispatcher.forward() 方法或 JSP 页面中的特殊标签:这会导致调用此方法的资源终止,同时终止对作为转发目标的资源的调用。对客户端浏览器来说,这看起来就像是单个请求。例如,如果将请求从 servlet 转发到 JSP 页面,则您可能要附加该 servlet 中的某些处理结果,以便这些结果可以在 JSP 页面中显示出来。
所以response.sendRedirect()不能用request对象传递数据,而forward是可以的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询