参考资料
1 SP文件中引用JavaScript文件路径
http://tigerben.iteye.com/blog/721595
2 JSP的相对路径深入研究(多次完善)
http://www.iteye.com/topic/352202
3 Java相对路径/绝对路径总结(转)
http://www.iteye.com/topic/117978
4 JAVA WEB 开发中路径问题的总结
http://www.iteye.com/topic/718443
5 Struts2中的路径问题总结
http://www.iteye.com/topic/908277
感觉以上文章总结很完善,就是太多了, 我就使用一种方式(绝对路径)
一 Myeclipse给出的解决方式
在Myeclipse创建一个JSP文件,它会默认的加上以下代码:
它使用的就是 绝对路径,不管通过JSP或者是后台服务器分发,重定向都可以找到文件 ,为了以后使用方便,把它写在一个通过的JSP中吧,如下:
common/meta.jsp
在页面这样引用就行了:
在使用过程中,请参见: JSTL使用配置
http://liuzidong.iteye.com/blog/617003 中所提到的问题!
页面引用文件如下,它是相对WebRoot文件夹下的相对路径
在以前大家可能都是这样写的,如下:
common/jstl.jsp
以下为获取工程路径的代码,引用的
引用网上的
1 SP文件中引用JavaScript文件路径
http://tigerben.iteye.com/blog/721595
2 JSP的相对路径深入研究(多次完善)
http://www.iteye.com/topic/352202
3 Java相对路径/绝对路径总结(转)
http://www.iteye.com/topic/117978
4 JAVA WEB 开发中路径问题的总结
http://www.iteye.com/topic/718443
5 Struts2中的路径问题总结
http://www.iteye.com/topic/908277
感觉以上文章总结很完善,就是太多了, 我就使用一种方式(绝对路径)
一 Myeclipse给出的解决方式
在Myeclipse创建一个JSP文件,它会默认的加上以下代码:
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <base href="<%=basePath%>">
它使用的就是 绝对路径,不管通过JSP或者是后台服务器分发,重定向都可以找到文件 ,为了以后使用方便,把它写在一个通过的JSP中吧,如下:
common/meta.jsp
- <base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
- <meta http-equiv="Cache-Control" content="no-store"/>
- <meta http-equiv="Pragma" content="no-cache"/>
- <meta http-equiv="Expires" content="0"/>
- <meta http-equiv="X-UA-Compatible" content="IE=7" />
- <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE6" />
在页面这样引用就行了:
- <html>
- <head>
- <title>标准DOM示例</title>
- <%@ include file="/common/meta.jsp" %>
- ....
在使用过程中,请参见: JSTL使用配置
http://liuzidong.iteye.com/blog/617003 中所提到的问题!
页面引用文件如下,它是相对WebRoot文件夹下的相对路径
- <link rel="stylesheet" href="style/mystyle.css" type="text/css">
- <script src="scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
在以前大家可能都是这样写的,如下:
- <link rel="stylesheet" href="../style/mystyle.css" type="text/css">
- <script src="../scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
common/jstl.jsp
- <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
- <%@ taglib uri = "http://java.sun.com/jsp/jstl/xml" prefix = "x" %>
- <%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "f" %>
- <%@ taglib uri = "http://java.sun.com/jsp/jstl/sql" prefix = "sql" %>
- <%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
- <c:set var="ctx" value="${pageContext.request.contextPath}"/>
以下为获取工程路径的代码,引用的
- System.out.println(Thread.currentThread().getContextClassLoader().getResource("")); System.out.println(FileTest.class.getClassLoader().getResource(""));
- System.out.println(ClassLoader.getSystemResource(""));
- System.out.println(FileTest.class.getResource(""));
- System.out.println(FileTest.class.getResource("/"));
- //Class文件所在路径
- System.out.println(new File("/").getAbsolutePath());
- System.out.println(System.getProperty("user.dir"));
引用网上的
- /**
- * TODO 取得当前项目的根目录
- * @author <a href="mailto:pheh.lin@gmail.com">PHeH</a><br>
- * Created On 2006-12-30 17:15:41
- */
- public class Application {
- /**
- * TODO 获取根目录
- * @return
- * @author <a href="mailto:pheh.lin@gmail.com">PHeH</a><br>
- * Created On 2007-5-10 15:16:21
- */
- public static String getRootPath(){
- //因为类名为"Application",因此" Application.class"一定能找到
- String result = Application.class.getResource("Application.class").toString();
- int index = result.indexOf("WEB-INF");
- if(index == -1){
- index = result.indexOf("bin");
- }
- result = result.substring(0,index);
- if(result.startsWith("jar")){
- // 当class文件在jar文件中时,返回"jar:file:/F:/ ..."样的路径
- result = result.substring(10);
- }else if(result.startsWith("file")){
- // 当class文件在class文件中时,返回"file:/F:/ ..."样的路径
- result = result.substring(6);
- }
- if(result.endsWith("/"))result = result.substring(0,result.length()-1);//不包含最后的"/"
- return result;
- }
- public static void main(String[] args) {
- System.out.println(getRootPath());
- }