J2EE web项目,绝对路径和相对路径如何设置与获取?

J2EE web项目,绝对路径和相对路径如何设置与获取?,第1张

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

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

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

(1)利用Java的类加载机制:调用 XXX.class.getClassLoader().getResource("")方法来获取到ClassPath , 然后处理获得WebRoot目录。这种方式只能是该class在WebRoot/WEB-INF/classes下才能生效, 如果该class被打包到一个jar文件中, 则该方法失效。这时就应该用下面一种方式。

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

得到服务器的绝对路径是要看不同的JAVA容器的,,,而得到当前部署的绝对路径,是可以使用

String strAbsPath=application.getRealPath(request.getRequestURI())

也可以使用 Class.getResource("/")得到部署的根路径的URL


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/236536.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存