您的位置:首页 > 编程语言 > Java开发

JavaWeb 项目中的绝对路径和相对路径以及问题的解决方式

2015-03-19 19:46 549 查看
近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 / 所代表的含义不同,导致在调试路径上浪费了大量时间。

在JavaWeb项目中尽量使用绝对路径 由于使用绝对路径是绝对不会出错的,而使用相对路径可能会出现错误。

首先 说下在JavaWeb项目中的绝对路径和相对路径的含义

绝对路径: 相对于当前Web应用根路径的路径 也就是不论什么路径都必需要带上contextPath = http://localhost:8080/WebProject/

相对路径: 相对于当前文件夹的路径为相对路径 通常直接用/ 来表示

由于使用相对路径 中的 / 在JavaWeb中的含义在不同的情况下含义不同,所以使用相对路径时可能会出现故障

以下就分析 / 在JavaWeb含义

JavaWeb项目中 /
的不同含义

JavaWeb项目中的 / 可能表演示样例如以下含义

当前Web应用的根路径(也就是绝对路径) http://localhost:8080/WebProject/

有下面情况

> 请求转发时
request.getRequestDispatcher("/message/a.jsp").forward(request,response);
> web.xml 文件里映射Servlet 訪问路径

<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>


> 各种定制标签中的 /

当前Web网站的根路径 http://localhost:8080/

有下面情况

> 超链接
<a href=""></a>
> 表单中的action
<form action="" method="post"></form>
> 请求重定向的时候

response.sendRedirect("");


综合上述情况,我们应该在web项目开发中使用绝对路径也就是应该带上contextPath

而contextPath能够由request.getContextPath 或者 application.getContextPath 来获取

所以当遇到超链接 表单中的action 或者 请求重定向的时候,应该在其前面加上contextPath 而不能直接使用相对路径 /

为了保险起见,大家对项目中出现不论什么的訪问路径,比方css 或者js代码的调用的路径都能够使用绝对路径来防止出现故障
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐