怎么在一个java程序里获得当前web应用的路径

如题所述

在java中获得文件的路径在我们做上传文件操作时是不可避免的。

web 上运行
1:this.getClass().getClassLoader().getResource("/").getPath();
this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
System.getProperty("user.dir");
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 项目的绝对路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

2:this.getClass().getResource("/").getPath();
this.getClass().getResource("").getPath(); 得到的是当前类 文件的URI目录。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/
this.getClass().getResource(".").getPath(); X 不 能运行

3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

在本地运行中
1:this.getClass().getClassLoader().getResource("").getPath();
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
this.getClass().getClassLoader().getResource(".").getPath(); X 不 能运行
2:this.getClass().getResource("").getPath();
this.getClass().getResource(".").getPath(); 得到的是当前类 文件的URI目录。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/
/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

3:Thread.currentThread().getContextClassLoader().getResource(".").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能运行

最后
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
还有request.getContextPath(); 在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。
温馨提示:内容为网友见解,仅供参考
无其他回答

JavaWeb项目如何获取文件路径?
一、利用Servlet获取文件路径 1、获取项目的绝对路径 通过`getServletContext().getRealPath("\/")`实现,得到的是项目的绝对路径。2、获取浏览器地址 通过`request.getRequestURL()`获取当前请求的URL。3、获取当前文件的绝对路径 通过`new File(request.getServletContext().getRealPath("\/"))`创建文件...

Java获取当前路径的几种方法
1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));\/\/user.dir指定了当前的路径 2、使用File提供的函数获取当前路径:File directory = new File("");\/\/设定为当前文件夹 try{ System.out.println(directory.getCanonicalPath());\/\/获取标准的路径 Sy...

关于web工程中java类如何获取webapp路径下的文件
第一步: 先获得classpath路径 String classpath = this.getClass().getResource("\/").getPath().replaceFirst("\/", "");这样子可以得到classpath路径,类似于:F:\/projects\/JavaStudyParent\/study-springmvc-junit-test\/target\/springmvc-junit-test\/WEB-INF\/classes\/ 然后把WEB-INF\/classes截取就...

java 怎么获取web根目录?
在java中获得文件的路径在我们做上传文件操作时是不可避免的。 web 上运行 1:this.getClass().getClassLoader().getResource("\/").getPath(); this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。以工程名为TEST为例:(1)得到包含工程名的当前页...

java 拿到一个web项目怎样知道项目的入口点?
对于一般的桌面程序,有源代码的话就找带main方法的吧,当然可能有些测试类也有main方法,如果是打包jar的,用winrar打开它,看其META-INF\/menifest.mf文件里面Main-Class这个段后面写的就是主类,也就是程序入口了。对于web程序,看web.xml中的 <welcome-file-list>段里面的按照顺序都看看,一般都是...

java如何获得linux下web路径
java获取根路径有两种方式: 1),在servlet可以用一下方法取得: request.getRealPath(“\/”) 例如:filepach = request.getRealPath(“\/”) ”\/\/upload\/\/”; 2),不从jsp,或servlet中获取,只从普通java类中获取: String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); SAXRea...

java获取项目resource路径(javaweb获取项目路径)
在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot\/WEB-INF\/classes也可以选用System.getProperty("user.dir")获取工程的绝对路径。1.jsp中取得路径:以工程名为TEST为例:(1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:\/TEST\/test.jsp(2)得到工程名:request.getContextPath...

java 项目如何获取项目所在的物理根路径
在java中获得文件的路径在我们做上传文件操作时是不可避免的。web上运行1:this.getClass().getClassLoader().getResource("\/").getPath();this.getClass().getClassLoader().getResource("").getPath();得到的是ClassPath的绝对URI路径。如:\/D:\/jboss-4.2.2.GA\/server\/default\/deploy\/hp....

Java普通类(不是Servlet)中如何获取Web工程部署到tomcat的路径?
第一步:需要先创建一个server,可以通过windows中的show view,之后找到server,第二步:在server窗口中右击,选择”new-server“,之后创建好tomcat server。第三步:双击创建的server,进入server设置界面,设置Server Location,选择编译路径是”Use Tomcat“即可切换到Tomcat的路径,保存。第四步:在创建...

java后台怎么获得File标签的绝对路径 我只是做导入功能 拿File标签只 ...
服务器中的Java类获得当前路径(来自网络)(1).Weblogic WebApplication的系统文件根目录是你的weblogic安装所在根目录。例如:如果你的weblogic安装在c:\\bea\\weblogic700...那么,你的文件根路径就是c:\\.所以,有两种方式能够让你访问你的服务器端的文件:a.使用绝对路径:比如将你的参数文件放在c:\\yo...

相似回答