jsp和js路径问题

来源:互联网 发布:ie8 js兼容性问题 编辑:程序博客网 时间:2024/05/29 08:26

一般jsp前都会插入两段java代码:

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%

request.getContextPath()是在开发Web项目时,经常用到的方法,其作用是获取当前的系统路径。
request.getContextPath()得到项目名,如果项目为根目录,则得到一个"",即空的字条串, 如果项目为Test, <%=request.getContextPath()% >/ 将得到Test/,服务器端的路径则会自动加上.

path是获得根路径,你可以理解为获取项目在在服务器上的目录或者就是项目名称,即:/TestbasePath是获得全路径,并且包含端口号,即:http://localhost:8080/Test/


request.getScheme()返回的协议名称,默认是http。 
request.getServerName()返回的是你浏览器中显示的主机名(例127.0.0.1). 
getServerPort()获取服务器端口号(例:8080)。

path:当前站点名称

basePath:web全路径

<base href="value">为页面上所有相对 URL 规定基准 URL

而在jsp的head加入<base href="<%=basePath%>">即设置了基础路径

<base href="http://www.baidu.com">,那你下面的href属性就会以你上面设的为基准,

如:<a href="http://www.baidu.com/xxx.htm"></a>,你现在就只需要写<a href="xxx.htm"></a>


当然推荐使用<base href="<%=basePath%>">这种方法