以请求转发为例:
<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"