绝对路径和相对路径

1.绝对路径的问题  

  1》开发时建议编写“绝对路径”:写句对路径一定没有问题,但相对路径可能会有问题

  在servlet 转发到JSP页面是,此时浏览器地址栏上显示的是servlet的路径,若JSP页面的超链接还是相对于该JSP页面的地址则可能会出现路径混乱问题

/a.jsp

  -path

    /b.jsp

    /c.jsp

a.jsp -> /Servlet ->转发->b.jsp(有一个超链接:和b.jsp在同一目录下的c.jsp)->无法访问

 

2.编写绝对路径可以避免以上问题:

1》什么是绝对路径:

  相对于contextPath的路径的路径叫做绝对路径,及任何路径都必须带上contextPath:

  http://localhost:8080/contextPath(当前WEB应用的上下文路径)/c.jsp v

  http://localhost:8080/contextPath(当前WEB应用的上下文路径)/c.jsp x

2》如何完成编写

  若/代表的是站点的根目录,在其前面加上 contextPath 就是可以了。而contextPath可以由request 或 application 的getContextPath()方法来获取。

  <a href="/testServlet">To B Page</a>--> <a href="<%= request.getContextPath()%>/testServlet">To B Page</a>

  response.sendRedirect(request.getContextPath()) + "/path/c.jsp");

3.javaWEB 中/代表什么

  1》 当前WEB应用的更目录:http://localhost:8080/contextPath/ :若/需交由Servlet 容器来处理

    》请求转发:request.getRequestDispatcher("/path/b.jsp").forward(request, response);

    》web.xml 文件映射Servlet访问路径 

<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>

    》各种定制标签的/

  2》当前站点的根目录:http://localhost:8080/:若交由浏览器来处理

    》超链接:<a href="c.jsp">To C Page</a>

    》表达中action:<form action="setcookie.jsp" method = "get">

    》做请求重定向的时候:respose.sendRedirect("/a.jsp")

posted @ 2020-03-18 23:48  野香蕉  阅读(114)  评论(0编辑  收藏  举报