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。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值