JSP Servlet里相对路径问题的解决

前提:用MyEclipse建的Web Project。服务器地址为http://localhost:8080/,Web Project名为li,那么web应用URL为http://localhost:8080/li。

所有的相对路径都是以"/"开头的。如:/image/li.gif,/viewPlugin/li.jsp。这里的 “/” 在客户端和服务器端解析代表不同的含义。如果是在客户端解析代表着http://localhost:8080/。服务器端解析就代表http://localhost:8080/li,也就是你的web应用地址。

相对地址分为服务器端和客户端:

1.服务器端的相对地址是相对于你的web应用的那个地址,就是指上文提到的http://localhost:8080/test/。也就是说这个地址是在服务器端解析的,例如Servlet类和JSP,也即在Servlet类和JSP中的相对地址是相对于你的服务器的。

例如:Servlet类里有个forward跳转,request.getRequestDispatcher("/viewPlugin/li.jsp").forward(request, response);那么前边的 “/” 就是指的http://localhost:8080/li/,因此这里的 “/” 是不可缺少的。

因为我用的是JSP和Servlet,那么在这里客户端的相对地址我就不介绍了,我的也是参照另外一个博友写一篇我自己用到的。他的博文地址是:wym19830218。

2.JSP中的引用的css和js脚本的相对路径。由于css和js都是在客户端被解析的,所以 “/” 代表了http://localhost:8080/。因此在JSP中引用css或者是js时的相对路径是这么写:/li/css/main.css 和 /li/js/**.js,前边的 “/” 代表的是http://localhost:8080/,之后的li是我建的web项目。

例如:Servlet类跳转到li.jsp,而li.jsp里引用了css和一些js。这时就需要在li.jsp下将这些css和js的路径设为相对于http://localhost:8080/路径,:/li/css/main.css 和 /li/js/**.js这样在跳转的时候才不会出错。另外一种方法就是<script src="<%=request.getContextPath() %> /js/**.js"></script>

学过JSP的可以查下request.getContextPath(),这个方法返回的是web应用的地址,即:web应用URL为http://localhost:8080/li。


你可能感兴趣的:(jsp,相对路径)