参考资料
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中绝对路径与相对路径的理解与应用 #### 一、引言 在Web开发中,路径的选择对于页面间的跳转以及资源的加载至关重要。本文将深入探讨JSP(JavaServer Pages)环境中绝对路径与相对路径的区别及其应用场景,...
例如,可以将静态资源如图片、CSS、JavaScript文件等放在一个统一的公共目录下,然后使用绝对路径引用。同时,为了提高性能和减少HTTP请求,可以使用像Apache Tomcat这样的服务器配置来指定静态资源的路径,比如通过...
为了解决解决方案 1 和解决方案 2 中的局限性,我们可以使用 Web 工程的绝对路径来引用外部.css 或.js 文件。例如,在 test.jsp 文件中,我们可以使用以下代码来引用 styles 目录下的 main.css 文件和 scripts 目录...
- **相对子目录**:在当前目录的子目录中引用文件,如`./subdir/file.txt`。 3. **在JSP中使用相对路径** - **链接**:在`<a>`标签中,使用相对路径创建指向其他JSP或HTML页面的链接。 - **图像引用**:在`...
在JSP和Servlet中获取当前应用的相对路径和绝对路径非常重要,可以帮助开发者更好地处理文件和目录。 ##### 3.1 JSP中获得当前应用的相对路径和绝对路径 - **根目录所对应的绝对路径**:可以通过`request....
例如,我们可能需要获取到上传文件的绝对路径: ```jsp String path = request.getContextPath(); // 获取上下文路径 String basePath = request.getScheme() + "://" // 获取协议 + request.getServerName() +...
为了获取页面所在目录的绝对路径,可以使用`new java.io.File(application.getRealPath(request.getRequestURI())).getParent();`。该方法结合了`getRealPath()`和`File`类的功能,返回的是不包含具体文件名的目录...
- 文件系统的绝对路径:`C:\xyz\test.txt` - URL绝对路径:`http://www.sun.com/index.htm` ##### 2. 相对路径 - **定义**:相对路径指的是相对于当前文件或目录的路径。它通常用于表示同一目录结构内的其他文件...
在JSP中,绝对路径通常用于跨应用或外部资源的引用。 - **相对路径**:相对于当前文件的路径。在同一个应用内部,相对路径更常用,因为它简化了路径管理,尤其是在项目结构发生变化时。 2. **JSP中的路径引用** -...
**绝对路径**是指文件或目录在硬盘上的确切位置,无论是物理路径还是URL形式。例如: - 物理路径:`C:\xyz\test.txt` - URL路径:`http://www.sun.com/index.htm` **相对路径**则是相对于某个基准目录的位置。在...
- 文件的绝对路径:`request.getSession().getServletContext().getRealPath(request.getRequestURI())` - Web应用的绝对路径:`servletConfig.getServletContext().getRealPath("/")` 总的来说,正确理解和使用...
标题中的问题“无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl”指出,这可能是Java Web应用开发中遇到的一个常见错误,涉及到JSP(JavaServer Pages)和JSTL(Java...
可以是相对路径也可以是绝对路径。 **示例代码**: ```jsp <jsp:include flush="true" page="header.jsp" /> ``` 此外,`jsp:include` 支持 `<jsp:param>` 标签来传递参数给被包含的页面。 **示例代码**: ```jsp ...
- 文件绝对路径:`request.getSession().getServletContext().getRealPath(request.getRequestURI())` - 当前Web应用绝对路径:`servletConfig.getServletContext().getRealPath("/")` 4. **最佳实践** - 避免...