JSP 11: 客户端的相对路径问题

以请求转发为例:

<1>  创建商品列表

 <2>  在list.jsp 中

  <%
    request.getRequestDispatcher("../path.jsp").forward(request,response);

    // 通过相对路径进行请求转发
  %>

<3>  对比效果

效果一:  直接访问 http://localhost:8080/web04/path.jsp

 效果二:  访问http://localhost:8080/web04/product/list.jsp, 请求转发至path.jsp

可见, css效果消失了。

解释:

使用相对路径href="css/style.css", 找不到CSS文件, 

因为文件在 http://localhost:8080/web04/product 下不存在

改进:

使用href="../css/style.css"可以找到,

因为文件在 http://localhost:8080/web04 下存在

效果:

存在的问题:

直接访问 http://localhost:8080/web04/path.jsp 时, 又找不到文件了

<4>  因此, 一般不使用相对路径,使用绝对路径最优:

href="<%=request.getContextPath() %>/css/style.css"

原文地址:https://www.cnblogs.com/JasperZhao/p/13507327.html