参考资料
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());
}
}
分享到:
相关推荐
jsp和sevlet中的相对路径和绝对路径!以及获取路径的方法!jsp 和 servlet的路径对比!文档很简单实用 !
搞java web开发也有1年多了,免不了要写写...如果在引用文件时(如加入超链接,或者插入图片等),使用了错误的文件路径,就会导致引用失效(无法浏览链接文件,或无法显示插入的图片等)。 为了避免这些错误,正确地引用
然后,这将生成两个HTML文档中已存在的脚本列表(具有绝对路径),例如: /full/path/to/project/vendor/lib/jquery.js /full/path/to/project/scripts/app.js 单独看来,这可能并不十分有用,但是当您将其与xargs...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,...
简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
150、如何在JSP中包括绝对路径文件? 使用URLConnection即可。 37 151、在servlets和JSP之间能共享session对象吗? 37 152、如何设置cookie在某一时间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置...
150、如何在JSP中包括绝对路径文件? 使用URLConnection即可。 37 151、在servlets和JSP之间能共享session对象吗? 37 152、如何设置cookie在某一时间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置...
*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JeeCmsFront</servlet-name> *.htm</url-pattern> </servlet-mapping> 通过servlet配置,可以找到jeecms-servlet-front.xml,在此...
5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis...
问题一箩筐-相对路径和绝对路径 │ 9.问题一箩筐-自定义监听器,解决上下文路径使用问题 │ 10.问题一箩筐-重载-笔试题+ i4 I$ j6 d/ [- j: d │ 11.问题一箩筐-悲观锁和乐观锁7 L; ^; s& i# h/ l8 O$ m/ \' F │ 12....
{1.10.3}数组对象的引用}{35}{subsection.1.10.3} {1.10.4}数组对象的复制}{35}{subsection.1.10.4} {1.10.5}扩充数组对象长度}{36}{subsection.1.10.5} {1.10.6}Problems}{37}{subsection.1.10.6} {1.11}简单...