绝对路径和相对路径
- 绝对路径的问题
1)开发时建议编写“绝对路径”:写绝地路径肯定没有问题,但是写相对路径可能会出现问题
在由Servlet转发到JSP页面时,此时浏览器地址上显示的时Servlet的路径,而若Jsp页面的超链接还是相对于该JSP页面的地址,则可能会出现路径混乱的问题
/a.jsp
- Path
/b.jsp
/c.jsp
- sjp->Servlet -转发->b.jsp(有一个超链接,和b.jsp在同一个路径下的c.jsp) ->无法访问
- 编写绝对路径可以避免上述问题
①在JavaWeb中什么叫“绝对路径”:相对于ContextPath路径。即任何路径都必须带上contextPath
http://localhost:8080/PathTest/a.jsp
http://localhost:8080/contextPath(当前WEB应用的上下文路径)/a.jsp
http://localhost:8080/a.jsp 这个不是
②如何完成编写:若/代表的时站点的根目录。在其前面加上contextPath就可以了contextPath可以由request.getContextPath()来获取
<a href="TestServlet">To B Page</a> -->
<a href="<%=request.getConText()%>TestServlet">To B Page</a>
- JavaWEB开发中的”/”到底代表着什么
①当前WEB应用的根路径:http://localhost:8080/contextPath(当前WEB应用的上下文路径)/ :若需交给Servlet容器来处理
>请求转发的时候:request.getRequestDispatcher("/path/b.jsp").forward(request, response);
>web.xml文件中映射的Servlet的访问路径
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
>各种定制的标签中的/
②WEB站点的根路径:http://localhost:8080/ :若/需要交给浏览器来处理
>超链接: <a href="TestServlet">To B Page</a>
>表达式中的actioin:<form action=”/login.jso”>
>做请求重定向的时候response.sendRedirect(“/a.jsp”);