应用中使用绝对路径:使用相对路径可能会有问题, 但使用绝对路径肯定没有问题.
1). 绝对路径: 即相对于当前 WEB 应用的路径.
怎么使用绝对路径呢? 在当前 WEB 应用的所有的路径前都添加 contextPath 即可.
2). / 什么时候代表站点的根目录, 什么时候代表当前 WEB 应用的根目录呢?
WEB应用的根路径是:http://localhost:8080/app(contexPath)
站点路径是:http://localhost:8080
若 / 需要服务器进行内部解析(即交给servlet处理的), 则代表的就是 WEB 应用的根目录.
①请求转发中:
request.
getRequestDispatcher(
"/dir/m.jsp").
forward(request, response);
②web.xml中映射的servrlet路径:
<
servlet-mapping
>
<
servlet-name
>ToMPageServlet
</
servlet-name
>
<
url-pattern
>/toMPageServlet
</
url-pattern
>
</
servlet-mapping
>
<
servlet
>
③各种定制标签中的“/”
若是交给浏览器了, 则 / 代表的就是站点的根目录
①jsp中的超链接:
<
a
href=
"/c.jsp"
>To C Page
</
a
>
②表达式中的action:<form action="/login.jsp" /
③请求重定向中
response.
sendRedirect(
"/confirm.jsp");
若 / 代表的是 WEB 应用的根目录, 就不需要加上 contextPath 了.
否则需要加上contextPath。比如:
response.
sendRedirect(
request.
getContextPath() +
"/confirm.jsp");