在java中怎么获取页面的路径

在java中怎么获取页面的路径,第1张

这里面我把se跟ee方面获取路径的给你列举出来了,希望对你有用

 Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!

在开发Web方面的应用时, 经常需要获取服务器中当前WebRoot的物理路径。

如果是Servlet , Action , Controller, 或者Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletContextgetRealPath("/")来获取当前应用在服务器上的物理地址。

如果在类中取不到ServletContext时,有两种方式可以做到:

1)利用Java的类加载机制:调用 XXXclassgetClassLoader()getResource(""); 方法来获取到ClassPath , 然后处理获得WebRoot目录。

这种方式只能是该class在WebRoot/WEB-INF/classes下才能生效, 如果该class被打包到一个jar文件中, 则该方法失效。这时就应该用下面一种方式。

2)spring框架的思路,在WEB-INF/webxml中,创建一个webAppRootKey的param,指定一个值(默认为webapproot)作为键值,然后通过Listener, 或者Filter,或者Servlet 执行String webAppRootKey = getServletContext()getRealPath("/"); 并将webAppRootKey对应的webapproot 分别作为Key,Value写到System Properties系统属性中。之后在程序中通过SystemgetProperty("webapproot")来获得WebRoot的物理路径。

根据第二种的思路,我们还可以再扩展一下。不过对于在部署在一台服务器中的应用来说,若还不是你所需请再往下看。

下面是一些得到classpath和当前类的绝对路径的一些方法。你可使用其中的一些方法来得到你需要的资源的绝对路径:

1DebitNoteActionclassgetResource("")

得到的是当前类FileTestclass文件的URI目录。不包括自己!

如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

atacarnet/src/com/evi/modules/atacarnet/action/

2DebitNoteActionclassgetResource("/")

得到的是当前的classpath的绝对URI路径。

如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

3ThreadcurrentThread()getContextClassLoader()getResource("")

得到的也是当前ClassPath的绝对URI路径

如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

推荐使用该方法获取。

4DebitNoteActionclassgetClassLoader()getResource("") 或ClassLoadergetSystemResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/eclipse/springTest/WebRoot/WEB-INF/classes/

5取得服务器相对路径

SystemgetProperty("userdir")

例如:E:\apache-tomcat-5516\apache-tomcat-5516\bin

6取得项目中的绝对路径

一般用requestgetRealPath("/")或requestgetRealPath("/config/")

但现在不提倡使用requestgetRealPath("/")了,大家可试用ServletContextgetRealPath("/")方法得到Web应用程序的根目录的绝对路径。

要取得src的文件非常容易,因为src是默认的相对目录,比如你说要取得src下com目录的testjava文件,你只需要这样就够了

File f = new File(com/testjava);

但如果我要取得不在src目录或者WebRoot目录下的文件呢,而是要从src或者WebRoot同级的目录中取呢,比如说doc吧。

我的硬方法是这样实现的:

String path = thisgetServletContext()getRealPath("/");

Properties p = new Properties();

pload(new FileInputStream(new File(pathsubstring(0,(pathlastIndexOf("\\WebRoot") + 1)) + "doc/dbproperties")));

Systemoutprintln(pgetProperty("driverName"));

-------------------------------

另:Request中getContextPath、getServletPath、getRequestURI、getRequestURL、getRealPath的区别

假定你的web application 名称为news,你在浏览器中输入请求路径:>

String filePath = thisgetServletContext()getRealPath("/"); //获取当前项目所在路径

使生Excel生成到工程的目录下,返回文件名

打开时直接用生成的文件的相对路径打开就可以了

1基本概念的理解

绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:

C:/xyz/testtxt 代表了testtxt文件的绝对路径。>

一般在处理Web应用下的文件创建与移动等时,会涉及到很多关于java

中相对路径,绝对路径等问题。以下是一些总结。希望大家遇到类似的问题,可以更有效的解决。

=================================================================================

1基本概念的理解

绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:

C:\xyz\testtxt 代表了testtxt文件的绝对路径。>package orgchengfile;

import javaioFile;

public class FileTest {

public static void main(String[] args) throws Exception { 

Systemoutprintln(ThreadcurrentThread()getContextClassLoader()getResource("")); 

Systemoutprintln(FileTestclassgetClassLoader()getResource("")); 

Systemoutprintln(ClassLoadergetSystemResource("")); 

Systemoutprintln(FileTestclassgetResource("")); 

Systemoutprintln(FileTestclassgetResource("/")); //Class文件所在路径 

Systemoutprintln(new File("/")getAbsolutePath()); 

Systemoutprintln(SystemgetProperty("userdir")); 

}

}

42服务器中的Java类获得当前路径(来自网络)

(1)Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。

例如:如果你的weblogic安装在c:\bea\weblogic700

那么,你的文件根路径就是c:\

所以,有两种方式能够让你访问你的服务器端的文件:

a使用绝对路径:

比如将你的参数文件放在c:\yourconfig\yourconfproperties,

直接使用 new FileInputStream("yourconfig/yourconfproperties");

b使用相对路径:

相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放

在yourwebapp\yourconfig\yourconfproperties,

这样使用:

new FileInputStream("/yourconfig/yourconfproperties");

这两种方式均可,自己选择。

(2)Tomcat

在类中输出SystemgetProperty("userdir");显示的是%Tomcat_Home%/bin

(3)Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET

的路径为根比如用新建文件法测试File f = new File("ahtm");

这个ahtm在resin的安装目录下

(4)如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass()getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web

发布根路径下WEB-INF/classes

默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。

5读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络)

51 采用Spring的DI机制获得文件,避免硬编码。

参考下面的连接内容:

>

以上就是关于在java中怎么获取页面的路径全部的内容,包括:在java中怎么获取页面的路径、jsp获取class问题、jsp页面中如何调用一个.xls文件的绝对路径。在IE中能打开和保存。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9346863.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存