上图是一个测试页面,WEB-INF/web/webinf.jsp 里面引用 images/start.jpg
<%
String path = request.getContextPath();
request.setAttribute("path", path);
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
在jsp里面我已经将基路径给注释掉了,但是还是可以正确引用到images/start.jpg 图片,正常引用应该是
src="../images/start.jpg"
测试: 我发现网上有一些资料是不全的,WEB-INF里面只能从服务端跳转进去,访问目标jsp里面的引用时,是以地址栏里面的rul为基路径来访问的,
如果将webinf.jsp放到web_root/jsp/webinf.jsp时
就可以测试跳转和重定向访问webinf.jsp页面时引用的区别了,
总结一句话:
目标的相对引用是根据地址栏里面的路径来确定位置的,当然绝对路径除外;