日期:2014-05-16  浏览次数:20425 次

jsp路径问题的解决与分析

这几天做巴巴运动网项目,经常被“相对路径”这东西困惑。经常在链接和图片地址上出现失误,总结了几点经验写在这里:

(一)方法一:直接采用绝对路径

?????在页面中加上:

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

?以后在用到路径时例如:<a href="${pageScope.basePath}jsp/register.jsp">或<%=basePath%>jsp/register.jsp,从而构成了一个绝对路径。

(二)方法二: 利用html中的<base>标签(推荐)

在页面中加上

<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=gbk" isELIgnored="false"%>
<%
String path = request.getContextPath();
// 获得项目完全路径(假设你的项目叫MyApp,那么获得到的地址就是 http://localhost:8080/MyApp/):
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

?

后再在head中加入

<base href="<%=basePath%>">

?

就可以直接使用相对路径了。

1 楼 五月天 2010-09-10  
一般来说,尽量少在jsp页面中写java代码的。当使用struts进行开发的时候,一般页面跳转都是通过struts.xml配置的。
当在页面上需要导入.js文件或.css文件时,是通过.(当前目录)和..(上级目录)表示相对路径的,这样就避免了在页面上写java代码的痛苦!