- 浏览: 257666 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
a542550187:
很受用,最近正好学习软件工程方面的知识
如何建立领域模型(转) -
liiyee:
谢谢!中文版有些地方的翻译实在是挺对付的。
hibernate in action 2 英文版 -
HFLdragon:
下来学习一下
ajax upload file -
wendellup_account1:
thanks....
Spring 3 mvc Validation的错误 -
zhangjq5:
中文名乱码……
ajax upload file
1.基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个
URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,
"../"代表上级目录。这种类似的表示,也是属于相对路径。
另外关于URI,URL,URN等内容,请参考RFC相关文档标准。
RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,
(http://www.ietf.org/rfc/rfc2396.txt)
2.关于JSP/Servlet中的相对路径和绝对路径。
2.1服务器端的地址
服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的
(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候
在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://192.168.0.1/webapp/的。
其用到的地方有:
forward:servlet中的request.getRequestDispatcher(address);这个address是
在服务器端解析的,所以,你要forward到a.jsp应该这么写:
request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp,
其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。
sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%>
2.22、客户端的地址
所有的html页面中的相对地址都是相对于服务器根目录(http://192.168.0.1/)的,
而不是(跟目录下的该Web应用的目录)http://192.168.0.1/webapp/的。
Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/)的,
所以,如果提交到a.jsp为:action="/webapp/user/a.jsp"或action="<%=request.getContextPath()%>"/user/a.jsp;
提交到servlet为actiom="/webapp/handleservlet"
Javascript也是在客户端解析的,所以其相对路径和form表单一样。
因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上
<%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。
另外,应该尽量避免使用类似".","./","../../"等类似的相对该文件位置的相对路径,这样
当文件移动时,很容易出问题。
3. JSP/Servlet中获得当前应用的相对路径和绝对路径
3.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3.2 Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath
(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)
4.java 的Class中获得相对路径,绝对路径的方法
4.1单独的Java类中获得绝对路径
根据java.io.File的Doc文挡,可知:
默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。
一下程序获得执行类的当前路径
package org.cheng.file;
import java.io.File;
public class FileTest {
public static void main(String[] args) throws Exception {
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"));
}
}
4.2服务器中的Java类获得当前路径(来自网络)
(1).Weblogic
WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:\bea\weblogic700.....
那么,你的文件根路径就是c:\.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:\yourconfig\yourconf.properties,
直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放
在yourwebapp\yourconfig\yourconf.properties,
这样使用:
new FileInputStream("./yourconfig/yourconf.properties");
这两种方式均可,自己选择。
(2).Tomcat
在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin
(3).Resin
不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下
(4).如何读相对路径哪?
在Java文件中getResource或getResourceAsStream均可
例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web
发布根路径下WEB-INF/classes
默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。
评论
<div class="quote_div">
<p>1.基本概念的理解</p>
<p> 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:<br>C:\xyz\test.txt 代表了test.txt文件的绝对路径。<a href="http://www.sun.com/index.htm">http://www.sun.com/index.htm</a>也代表了一个<br>URL绝对路径。</p>
<p> 相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在<br>Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,<br>"../"代表上级目录。这种类似的表示,也是属于相对路径。</p>
<p>另外关于URI,URL,URN等内容,请参考RFC相关文档标准。</p>
<p>RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax, <br>(<a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>)</p>
<p><br>2.关于JSP/Servlet中的相对路径和绝对路径。</p>
<p>2.1服务器端的地址 </p>
<p> 服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的<br>(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候<br>在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于<a href="http://192.168.0.1/webapp/">http://192.168.0.1/webapp/</a>的。 </p>
<p> 其用到的地方有: <br> forward:servlet中的request.getRequestDispatcher(address);这个address是<br>在服务器端解析的,所以,你要forward到a.jsp应该这么写:<br>request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp,<br>其绝对地址就是:<a href="http://192.168.0.1/webapp/user/a.jsp">http://192.168.0.1/webapp/user/a.jsp</a>。 <br>sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%> </p>
<p>2.22、客户端的地址 <br> <br> 所有的html页面中的相对地址都是相对于服务器根目录(<a href="http://192.168.0.1/">http://192.168.0.1/</a>)的,<br>而不是(跟目录下的该Web应用的目录)http://192.168.0.1/webapp/的。 <br> Html中的form表单的action属性的地址应该是相对于服务器根目录(<a href="http://192.168.0.1/">http://192.168.0.1/</a>)的,<br>所以,如果提交到a.jsp为:action="/webapp/user/a.jsp"或action="<%=request.getContextPath()%>"/user/a.jsp;<br> 提交到servlet为actiom="/webapp/handleservlet" <br> Javascript也是在客户端解析的,所以其相对路径和form表单一样。 <br> </p>
<p> 因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上<br><%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。<br>另外,应该尽量避免使用类似".","./","../../"等类似的相对该文件位置的相对路径,这样<br>当文件移动时,很容易出问题。</p>
<p><br>3. JSP/Servlet中获得当前应用的相对路径和绝对路径<br>3.1 JSP中获得当前应用的相对路径和绝对路径<br> 根目录所对应的绝对路径:request.getRequestURI()<br> 文件的绝对路径 :application.getRealPath(request.getRequestURI());<br> 当前web应用的绝对路径 :application.getRealPath("/");<br> 取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()</p>
<p>3.2 Servlet中获得当前应用的相对路径和绝对路径<br> 根目录所对应的绝对路径:request.getServletPath();<br> 文件的绝对路径 :request.getSession().getServletContext().getRealPath<br>(request.getRequestURI()) <br> 当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");<br> (ServletContext对象获得几种方式:<br> javax.servlet.http.HttpSession.getServletContext() <br> javax.servlet.jsp.PageContext.getServletContext() <br> javax.servlet.ServletConfig.getServletContext() <br> )</p>
<p>4.java 的Class中获得相对路径,绝对路径的方法<br>4.1单独的Java类中获得绝对路径<br> 根据java.io.File的Doc文挡,可知:<br> 默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。<br> 一下程序获得执行类的当前路径<br>package org.cheng.file;<br>import java.io.File;</p>
<p>public class FileTest {<br> public static void main(String[] args) throws Exception { </p>
<p> System.out.println(Thread.currentThread().getContextClassLoader().getResource("")); </p>
<p> System.out.println(FileTest.class.getClassLoader().getResource("")); </p>
<p> System.out.println(ClassLoader.getSystemResource("")); <br> System.out.println(FileTest.class.getResource("")); <br> System.out.println(FileTest.class.getResource("/")); //Class文件所在路径 <br> System.out.println(new File("/").getAbsolutePath()); <br> System.out.println(System.getProperty("user.dir")); <br> }<br>}</p>
<p>4.2服务器中的Java类获得当前路径(来自网络)<br>(1).Weblogic</p>
<p>WebApplication的系统文件根目录是你的weblogic安装所在根目录。<br>例如:如果你的weblogic安装在c:\bea\weblogic700.....<br>那么,你的文件根路径就是c:\.<br>所以,有两种方式能够让你访问你的服务器端的文件:<br>a.使用绝对路径:<br>比如将你的参数文件放在c:\yourconfig\yourconf.properties,<br>直接使用 new FileInputStream("yourconfig/yourconf.properties");<br>b.使用相对路径:<br>相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放</p>
<p>在yourwebapp\yourconfig\yourconf.properties,<br>这样使用:<br>new FileInputStream("./yourconfig/yourconf.properties");<br>这两种方式均可,自己选择。</p>
<p>(2).Tomcat</p>
<p>在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin</p>
<p>(3).Resin</p>
<p>不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET<br>的路径为根.比如用新建文件法测试File f = new File("a.htm");<br>这个a.htm在resin的安装目录下 </p>
<p>(4).如何读相对路径哪?</p>
<p>在Java文件中getResource或getResourceAsStream均可</p>
<p>例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web</p>
<p>发布根路径下WEB-INF/classes</p>
<p>默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。</p>
</div>
<p> </p>
发表评论
-
IDEA EvalRest
2022-03-10 17:19 0Download and install plugi ... -
使用maven-jar-plugin将部分源代码打成Jar,并引入到项目使用。
2020-05-08 16:40 723需求:因为项目(单体系统)里尽可能保证项目里一部分源码,所以 ... -
CAS与spring3集成
2013-04-12 09:47 1132CAS 下载地址 https://wiki.jasig.o ... -
如何在Spring 3 MVC整合Apache CXF开发Webservice服务
2012-09-11 16:06 3563如何在Spring 3 MVC框架下结合CXF开发Webser ... -
如何在Spring 3 下结合结束大CXF开发WebService接口
2012-09-10 21:15 0如何从Spring 3 MVC架构下与Apache CXF开发 ... -
Java文件简单读写(转)
2011-10-22 15:45 888最近用Java处理文件的时候,同样遇到了中文问题,觉得还是 ... -
Java基本类型与包装类判断
2011-10-22 13:42 14500public class Test{ public sta ... -
Java深度历险合集
2011-08-26 16:43 861Java深度历险.pdf -
Apache Click 一个Java企业版的Web应用程序框架
2011-08-24 13:52 882Apache Click 是一个先进的Java企业版的Web应 ... -
Java的异常处理总结
2011-08-10 22:42 1315一、 异常的概念和Java异常体系结构 异常是程 ... -
Java反射与动态代理
2011-07-01 16:24 0在介绍Java注解的时候,多次提到了Java的反射 ... -
Red5+OpenOffice+OpenMeetings架设视频会议网络(转)
2011-05-25 14:17 1760因工作需要,这两天弄 ... -
DOM4J学习笔记(转)
2011-02-16 15:47 599Loading XML Data 以下代码从File中或 ... -
Hibernate级联删除的问题
2011-01-25 14:50 1028在one-to-many 关联时,one方一般都需要有控制级联 ... -
fmt:formatDate 的输出格式
2011-01-22 23:28 963fmt:formatDate 的输出格式 <fmt ... -
Tomcate启动内存设置
2010-10-19 16:41 746其初始空间(即-Xms)是物理内存的1/64,最大空 ... -
基于json-lib.jar包Json实例程序(转)
2010-10-18 20:22 3479基于json-lib.jar包Json实例程序 ... -
Aache下的AB性能测试工具(转)
2010-10-18 16:57 904以前安装好APACHE总是 ... -
四步将Myeclipse的web project部署到eclipse中的tomcat
2010-10-15 16:29 2107现在很多Web的项目都是在MyEclipse中开发测试完成的 ... -
实现集合中对象的排序功能
2010-09-29 18:10 726利用Set可以去掉重复的对象,利用list可以对象自然排序,如 ...
相关推荐
以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与标准 #### 1. URL与URI URL(Uniform Resource Locator)统一资源定位符,是一种用于标识网络上资源位置的标准格式,如`...
"Java 中相对路径与绝对路径的问题" Java 中的路径问题一直是困扰许多编程人员的问题之一。在 Java 中,我们需要了解相对路径和绝对路径的概念,以及如何获取它们。下面我们将详细地讨论 Java 中的相对路径和绝对...
通过上述总结,我们可以了解到在Java Web开发中,正确理解和使用相对路径和绝对路径是非常重要的。它们在服务器端和客户端有不同的含义,并且在不同的应用场景下有着不同的使用方式。了解这些基础知识有助于我们编写...
### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...
### Java中的绝对路径与相对路径 在Java编程中,路径管理是进行文件操作的重要组成部分,尤其是在Web应用开发中。本文将详细介绍如何在Java中获取不同类型的路径,包括Web服务器下的文件路径、本地路径以及相对路径...
总的来说,正确理解和使用Java中的相对路径和绝对路径是开发Web应用的基础,这有助于确保资源的正确访问,提高代码的可移植性和维护性。在实际开发中,应当避免过于依赖于特定的文件系统结构,尽可能使用相对路径,...
Java 开发中,路径问题是非常重要的一方面,不同的路径表示方式会带来不同的结果,了解绝对路径和相对路径的概念和使用方法对Java 开发非常重要。本文总结了Java 开发中的路径问题,帮助开发朋友方便解决路径问题,...
Java 项目中获取路径详解 在 Java 项目中,获取路径是非常重要的,因为它关系到项目的正确运行。特别是在 Java Web 项目中,...在 Java Web 项目中,获取路径变得更加复杂,需要注意编译后的目录和相对路径的关系。
在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中获取路径 1. **获取当前应用...
在Web开发中,尤其是在使用Java Servlet和JSP技术时,正确理解和使用相对路径和绝对路径至关重要。 ##### 2.1 服务器端的地址 服务器端的相对地址是指相对于你的Web应用的地址,这个地址是在服务器端进行解析的,...
在Java Web开发中,路径问题是一个常见的挑战,尤其是在处理JSP页面、Servlet以及web.xml配置文件时。理解和正确使用路径对于构建稳定、高效的应用程序至关重要。以下是对标题和描述中提及的知识点的深入探讨。 ###...
JAVA 文件中获取项目的相对路径 在 JAVA 文件中获取项目的相对路径是非常重要的,特别是在 JSP/Servlet 中。下面将详细介绍在 JAVA 文件中获取项目的相对路径的相关知识点。 1. 绝对路径和相对路径的概念 在讨论...
在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...
如果是传统Java项目,需要手动下载并添加到项目的类路径中。 2. **建立数据库连接**:使用`DriverManager.getConnection()`方法,提供一个包含数据库URL的字符串。对于Access,URL格式通常为`jdbc:odbc:driver={...
在Java开发中,路径问题是一个常见且重要的主题,特别是在Servlet和JSP的上下文中。路径主要分为两种类型:相对路径和绝对路径。 **1. 相对路径与绝对路径** - **相对路径**:它是相对于某个基准目录的路径。例如...
在Java Web开发中,路径问题往往困扰着许多开发者,尤其是在处理资源定位、文件读取以及配置文件加载等场景时。本文将深入解析Java Web中所有路径问题的解决方法,涵盖Servlet、Action、Controller、Filter、...
本文将深入探讨JSP(JavaServer Pages)环境中绝对路径与相对路径的区别及其应用场景,帮助开发者更好地理解这两种路径类型,并在实际开发中做出合适的选择。 #### 二、绝对路径与相对路径的基本概念 1. **绝对...