一般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是获得根路径,你可以理解为获取项目在在服务器上的目录或者就是项目名称,即:/Test
basePath是获得全路径,并且包含端口号,即: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%>">这种方法