javaweb中关于引用css和image的路径问题

今天,遇到了一个很奇怪的现象,首页的jsp可以使用相对路径来访问样式表和图片(类似这种的:image/xx.png),可是另一个jsp必须用request.getContextPath()/image/xxx.png才能访问到,知道是路径问题。想了N久,终于知道,原来我的首页是servlet的request.getRequestDispatcher("jsp/layout/main.jsp").forward(request, response);这个玩意转过来的,这种方法转向类似管道,即使跳转main.jsp,但是你的地址还是定位在基于servlet的,而servlet的地址在服务器已解析,是基于项目名的,所以你可以直接使用image/xx.png。

而我的另一个jsp,则是正常的jsp之间的跳转,此时如果再使用image/xx.png,客户端就会在jsp所在的目录中来寻找,就是基于这个jsp的地址来相对寻找,所以在这个jsp中你就要获取项目的根路径,在根路径下来相对寻找。


为了项目易维护,建议别轻易使用相对路径,建议如下:

方法一(利用base  ):

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    

		

  

方法二:标签



好了,如果还有其它问题,共同交流哈,如果有问题请指正。

你可能感兴趣的:(Java,Web)