服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法。
1、sendRedirect()方法:
(1)可以使用绝对路径
(2)使用“/”开头的相对路径:连项目名字替换
(3)不以"/"开头的相对路径:只替换URL的最后一个[/...]
2、forward()方法:
1)不可以使用绝对路径
(2)使用“/”开头的相对路径:不替换项目名
(3)不以"/"开头的相对路径:只替换URL的最后一个[/...]
3、两个方法的区别是:前者:forward()方法 后者:sendRedirect()
(1)前者只能转到自己的Web应用里面,后者可以转到任意URL
(2)前者只是转移控制权,所以在客户端浏览器地址栏中不会显示出转向后的地址;但是后者的的话是完全转,在地址栏也显示转向后地址。
(3)前者可以传递请求,后者是要重新发送请求
前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。
4、jsp里面的<jsp:forward page = "">是跟servlet的forward方法对应的
详细操作可参考:http://blog.163.com/hn_pt/blog/static/25085426200861551538409/
本文详细介绍了服务器端两种重定向方法:sendRedirect() 和 forward() 的使用方式及区别。sendRedirect() 支持任何 URL 跳转并在客户端显示新地址,而 forward() 仅限于当前 Web 应用内部跳转且地址不变。文章还提供了 JSP 中 forward 方法的使用实例。
206

被折叠的 条评论
为什么被折叠?



