servlet路径跳转那节问题

来源:-

callme激流

2015-01-28 10:05

在重定向跳转中,response.sendRedirct(request.getContextPath()+"/test.jsp");可以

那么用response.sendRedirct("../test.jsp");这种相对路径行吗?

还有,在服务器内部跳转为什么是request.getRequestDispatche,而不是response....

写回答 关注

2回答

  • 时光是有毒的瘴心里有一座城池
    2015-01-28 11:19:19
    已采纳

    相对路径地址,会从当前请求的地址计算.

    比如你在你的工程,请求 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发回到了,重新去访问了另外一个地址.




    callme...

    非常感谢!

    2015-02-04 17:42:04

    共 1 条回复 >

  • 时光是有毒的瘴心里有一座城池
    2015-01-28 11:21:07

    最后一句补一下:直接把响应内容302发回到了浏览器端

JAVA遇见HTML——Servlet篇

本门课程在JSP课程的基础上,深入介绍Servlet的基础知识

160613 学习 · 1029 问题

查看课程

相似问题