获取web服务器项目的真实物理路径
request.getSession().getServletContext().getRealPath("/");
一 相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
String relativelyPath=System.getProperty("user.dir");
上述相对路径中,java项目中的文件是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
二 类加载目录的获得(即当运行时某一类时获得其装载目录)
1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)
上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可
1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)
三 web项目根目录的获得(发布之后)
1 从servlet出发
可建立一个servlet在其的init方法中写入如下语句
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (关键)
结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)
如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")
2 从httpServletRequest出发
String cp11111=request.getSession().getServletContext().getRealPath("/");
结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\
四 classpath的获取(在Eclipse中为获得src或者classes目录的路径)
方法一
Thread.currentThread().getContextClassLoader().getResource("").getPath();
eg:
String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
方法二
JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)
eg:
String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
输出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)
eg String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
输出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse为src目录 下 jdom包中的类)
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
另:在Jsp,Servlet,Java中详细获得路径的方法!
1.jsp中取得路径:
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:request.getRequestURI()
结果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
结果:/TEST
(3)得到当前页面所在目录下全名称:request.getServletPath()
结果:如果页面在jsp目录下 /TEST/jsp/test.jsp
(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")
结果:D:\resin\webapps\TEST\test.jsp
(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
结果:D:\resin\webapps\TEST
2.在类中取得路径:
(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:System.getProperty("user.dir")
结果:D:\TEST
3.在Servlet中取得路径:
(1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。
结果:E:\Tomcat\webapps\TEST
(2)得到IE地址栏地址:request.getRequestURL()
结果:http://localhost:8080/TEST/test
(3)得到相对地址:request.getRequestURI()
结果:/TEST/test
注意事项:如果你使用WebSphere服务器,并且使用从类加载器获得路径的方法,肯定不是你想要的路径,如 Thread.currentThread().getContextClassLoader().getResource("").getPath();
这个方法得到的路径绝对不是你想要的项目的classpath,如果你是一个web工程,当然可以在servlet中通过request对象来获得项目的根路径,如request.getSession().getServletContext().getRealPath("/") ,但是如果你在一个普通类中,并且项目中使用到了spring框架的话,你可以在普通类中实现ServletContextAware接口,把ServletContext注入到类中,并且通过getRealPath("/");方法获得项目的根路径
分享到:
相关推荐
2. `Server.MapPath("")` 或 `Server.MapPath("~/")`:返回与 Web 服务器上的指定的虚拟路径相对的物理文件路径。 3. `Request.ApplicationPath`:获取服务器上 ASP.NET 应用程序的虚拟应用程序根目录。 WinForm ...
使用JavaScript实现文件上传到本地服务器并获取到上传后文件所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在jsp上获取路径,jsp太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...
开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径
本文将深入探讨如何使用C++实现向Web服务器上传文件,特别是在VS2013环境下,以及与Java Web工程的交互。 首先,我们要了解HTTP协议中的POST方法。在Web应用中,POST请求常用于提交数据到服务器进行处理,例如当...
JAVA 文件中获取项目的相对路径 在 JAVA 文件中获取项目的相对路径是非常重要的,特别是在 JSP/Servlet 中。下面将详细介绍在 JAVA 文件中获取项目的相对路径的相关知识点。 1. 绝对路径和相对路径的概念 在讨论...
在Web开发中,"webroot"(Web根目录)是一个重要的概念,它是Web服务器对外提供服务的根目录,存放着网站的静态资源、HTML、CSS、JavaScript文件以及配置文件等。其中,属性文件(通常为.properties格式)是Java开发...
在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种技术,它允许我们在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。这里提到的"ajax jsp获取本地文件夹所有的路径"是一个示例,它展示了...
在互联网技术中,Nginx 被广泛用于构建高性能、稳定的Web服务器环境。本文将详细介绍如何利用 OpenResty + Nginx + Lua 实现一个文件服务器,该服务器支持文件上传与获取的功能。 #### 一、OpenResty 的安装与配置 ...
本文将详细探讨如何在客户端(Client-Side, CS)和服务器端(Browser-Side, BS)环境下获取文件路径以及读取文件内容的C#技术。 ## 一、客户端(CS)获取文件路径 在客户端应用中,通常是指桌面应用程序,用户可以...
#### (1) 获取Web应用根目录:`request.getSession().getServletContext().getRealPath("")` 此方法返回Web应用的根目录路径,如`E:\Tomcat\webapps\TEST`,这对于获取应用内的任何资源非常关键。 #### (2) 获取...
在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...
在易语言简易WEB服务器中,可能包含有解析请求头、提取请求方法、获取请求URL等函数。 4. **转换路径子程序**:在HTTP服务器中,转换路径是一个重要的功能,它将客户端请求的URL转换为服务器上实际的文件路径。例如...
IIS作为Windows操作系统中的一个强大的Web服务器,常用于托管各种Web应用程序。虚拟路径是IIS提供的一种机制,它允许开发者用一个相对路径来代表实际的文件系统路径,而物理地址则是这些虚拟路径映射到的真实存储...
在IT行业中,网络通信是不可或缺的一部分,而从本地计算机向Web服务器上传文件是常见的操作,例如在云存储、文件分享或在线编辑等场景下。本文将深入探讨如何使用C++.NET来实现这一功能,主要围绕标题和描述中的知识...
1. 定义文件路径:`var FilePath = System.Web.Hosting.HostingEnvironment.MapPath(@"~/download/EditPlus64_xp85.com.zip");` 这行代码获取了服务器上文件的实际路径。`MapPath`方法将相对路径转换为绝对路径。 2...
在本案例中,我们讨论的主题是如何在Silverlight客户端获取服务器上的文件路径或文件流,并直接在客户端显示图片。 首先,我们需要了解Silverlight的安全模型。由于安全限制,Silverlight应用程序不能直接访问...
在开发Web应用的过程中,经常需要获取到文件的根路径以便进行文件操作或资源定位。本文将详细介绍如何在ASP.NET环境中获取应用程序的根路径,并解释每一步的操作逻辑,帮助读者理解并掌握这一技能。 #### 1. 应用...
需要注意的是,由于安全原因,浏览器不会提供完整的文件路径,通常只会显示文件名。例如,在Chrome中,文件对象的`path`属性是空的,只能通过`name`属性获取文件名。 总的来说,虽然在Web环境下直接获取文件夹路径...
- `getServletContext()` 返回当前Servlet的上下文对象,可以从中获取Web应用的根目录路径。 - 可用的方法还包括: - `javax.servlet.http.HttpSession.getServletContext()` - `javax.servlet.jsp.PageContext....
Java 文件路径详解是一种在 Java 中获取文件路径的方式。它可以将文件路径转换为 InputStream,以便于读取文件的内容。在 Java 中,有两种方式可以获取文件路径,即使用 Class.getResourceAsStream() 和 ClassLoader...