分享

we应用的相对路径与绝对路径

 anyasir 2013-03-10
概念:
相对路径:user.login.do
绝对路径:/user.login.do

web.xml文件中的url-pattern只能绝对路径,即/user.login.do,根地址为应用目录,即/webApp。
假设web服务器配置的虚拟路径为:<Context path="/webApp" docBase="F:\xxx\war" reloadable="true" /> (tomcat)

一.servlet重定向
HttpServletResponse.sendRedirect(String)
参数可以指定为相对路径、绝对路径或其它WebURL。

1.相对路径:容器相对于原来请求URL的目录加参数建立完整的URL
response.sendRedirect("user.login.do");生成的URL=http://localhost:8080/webApp/user.login.do。
2.绝对路径:容器相对于Web应用本身加参数建立完整的URL
response.sendRedirect("/user.login.do");生成的URL=http://localhost:8080/user.login.do。
3.其它WebURL:response.sendRedirect(“http://localhost:8080/webApp/user.login.do")。容器直接定向到该URL。
二.servlet跳转
HttpServletRequest.getRequestDispatcher(String)
参数可以指定为相对路径或绝对路径。

1.相对路径:下生成的完整URL与sendRedirect方法相同,
request.getRequestDispatcher(“user.login.do”)生成的URL=http://localhost:8080/webApp/user.login.do。
2.绝对路径:与重定向不同,容器将相对于Web应用的根目录加参数生成完整的URL,
request.getRequestDispatcher(“/user.login.do”)生成的URL=http://localhost:8080/webApp/user.login.do。
三.jsp请求
/ 表示根路径
jsp的根路径和servlet的根路径不一样
jsp的根路径:http:/ /localhost:8080
servlet的根路径 http:localhost:8080/webApp
所以, <form action=”" >中的路径一般写相对,即,action="user.login.do";
若action要写绝对地址,则必须从服务器根写起,因为container是从server开始分析的。例如action="/webApp/user.login.do"。
四.总结
1.重定向:相对路径自动带上web应用虚拟根目录;绝对路径不会带web应用虚拟根目录
2.跳转:相对路径和绝对路径一样,都会自动带上web应用虚拟根目录
3.jsp请求:相对路径自动带上web应用虚拟根目录;绝对路径不会带web应用虚拟根目录

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多