要在/jsp/ 文件使用图片,如何计算相对路径? 经过 Servlet,strut s 转发后又如何计算相对路径? 目录结构: --------------------------------------------------------------------- --------- 第一种情况: 直接访问 JSP 文件 URL 是http://localhost/ Context path /jsp/ 要在 引用 文件: 1、使用决对路径<img src='<%=() %>/images/'/> 浏览器寻找方式:域名+/Context path/images/ ,可找到。 2、使用相对路径<img src='../images/'/> 浏览器寻找方式:通过地址栏分析, 所在目录( jsp )的上一层目录(WebRoot) 下的 images/ 文件。 3、使用 base href 写<%= () %>太麻烦,可以在每一个 jsp 文件顶部加入以下代码<%String path =(); String basePath = ()+"://"+()+":"+ erPort()+path+"/"; %><base href="<%=basePath%>"> <img src='images/'/> 浏览器寻找方式: basePath 的值 http://localhost/ Context path/ 再加上 images/ ,可找到。--------------------------------------------------------------------- --------- 第二种情况: servlet 转发到 jsp 1、使用相对路径 URL 是http://localhost/ Context path /servlet_2 (转发到/jsp/ ) 错误: 根据/jsp/ 路径计算,得到<img src='../images/'/> 正确: <img src='images/'/> 原因: 是保存在服务器端的/jsp/ 目录下面,但通过转发后浏览器并不知道/jsp/ 目录的存在,因为地址栏中没有体现出来。所以服务器端/jsp/ 目录并不会对相对路径产生影响浏览器寻找方式:通过地址栏分析 http://localhost/ Context path /servlet_2 ,相对于 servlet_2 所在目录( /)下面找到 images/ f 文件 2、使用相对路径 URL 是http://localhost/ Context path / servlet /ser/ser/servlet_1 (转发到/jsp/ )
相对路径绝对路径.doc 来自淘豆网m.daumloan.com转载请标明出处.