servlet路径跳转那节问题
在重定向跳转中,response.sendRedirct(request.getContextPath()+"/test.jsp");可以
那么用response.sendRedirct("../test.jsp");这种相对路径行吗?
还有,在服务器内部跳转为什么是request.getRequestDispatche,而不是response....
在重定向跳转中,response.sendRedirct(request.getContextPath()+"/test.jsp");可以
那么用response.sendRedirct("../test.jsp");这种相对路径行吗?
还有,在服务器内部跳转为什么是request.getRequestDispatche,而不是response....
2015-01-28
相对路径地址,会从当前请求的地址计算.
比如你在你的工程,请求 192.168.1.1:8080/context/test1/test2/first.do
在first.do里跳转到绝对路径
request.getContextPath()+"/test.jsp"
相当于,再次请求 192.168.1.1:8080/context/test.jsp
而response.sendRedirct("../test.jsp"); 中../会往上走一层. 变成了请求
192.168.1.1:8080/context/test1/test.jsp
所以相对路径和绝对路径不一定一致的,要看你的实际目录了..
至于request.getRequestDispatche.foward()
其实他是重新定位一个本地资源..把这个资源加载到内存.,重新生成响应的内容.然后才会把内容response.
Redirct不是重新定位一个资源.而是 直接把响应内容302发回到了,重新去访问了另外一个地址.
举报