在开发Web方面的应用时, 常常须要获取 server中当前WebRoot的物理路径;

假设是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时。 我们仅仅须要获得ServletContext。

然后通过ServletContext.getRealPath("/")来获取当前应用在server上的物理地址.

假设在类中取不到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的物理路径

依据另外一种的思路,我们还能够再扩展一下。只是对于在部署在一台server中的应用来说,已经足够了。

转载于:https://www.cnblogs.com/jzdwajue/p/6951138.html

在Java代码(非JSP及Action,Servlet,Controller)中获得WebRoot的物理路径相关推荐

  1. java代码在jsp中怎么写_在jsp中写java代码

    该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...

  2. Eclipse解决每次修改java代码或jsp代码服务器重启问题的解决办法

    1.面临的问题:     Eclipse有点非常不友好,就是不管我怎么修改Java代码,哪怕只有仅仅一行代码都需要重新启动,才能使修改代码生效.   由于我们项目较大,这点严重影响了我的工作效率,本文 ...

  3. java怎么创建jsp文件怎么打开_Eclipse中怎么创建jsp文件?

    创建jsp文件的方法:首先打开Eclipse:然后点击菜单栏的"File",并选"New":接着选择"Dynamic Web Project" ...

  4. Java代码防止被反编译的4中方法

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 urlify.cn/2u2yEb 推荐:https://www.xttblog. ...

  5. [总结]jsp完成文件上传中遇到的“法克”路径解决办法

    在web工程中完成文件上传,需要在jsp页面上写上如下一个控件: <input type="file" id="f" name="f" ...

  6. java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...

    Spring MVC Controller中的一个读入和返回都是JSON的方法怎么获取javax.validation注解的错误信息? 本帖最后由 LonelyCoder2012 于 2014-03- ...

  7. 美食网站主页java代码,基于jsp的美食网-JavaEE实现美食网 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的美食网, 该项目可用各类java课程设计大作业中, 美食网的系统架构分为前后台两部分, 最终实现在线上进行美食网各 ...

  8. [改善Java代码]非稳定排序推荐使用List

    我们知道Set与List的最大区别就是Set中的元素不可以重复(这个重复指的equals方法的返回值相等),其他方面则没有太大的区别了,在Set的实现类中有一个比较常用的类需要了解一下:TreeSet ...

  9. java代码写jsp读取,Java IO学习基础之读写文本文件-JSP教程,Java技巧及代码

    java的io操作都是基于流进行操作的,为了提高读写效率一般需要进行缓冲. 简单的示例程序如下: /** * 读出1.txt中的内容,写入2.txt中 * */ import java.io.*; p ...

最新文章

  1. python enumerate用法_【Python】python enumerate用法总结
  2. Doctrine官方手册 - 缓存
  3. Sql如何统计连续打卡天数
  4. midaspay能删除吗_midasPay返回90009错误
  5. 部署Dotnet Core应用到Kubernetes(一)
  6. C语言不调用库函数画一个三角形
  7. HTML-列表、表格、表单
  8. WebApp 开发中常用的代码片段
  9. 蓝桥杯 ADV-84 算法提高 图形输出
  10. app登录界面背景 css_Google flutter这么火?撸一个APP登录界面(上)
  11. 使用 Redis 实现一个轻量级的搜索引擎,牛x啊 !
  12. 定时报警器c语言程序,单片机控制的简易定时报警器电路设计(含电路图和程序)...
  13. 熊猫直播显示连接服务器失败,熊猫直播提示加载失败,请按“菜单键”刷新解决办法...
  14. css3永久放大动画,CSS3 简单的方形放大动画
  15. 武魂java_js及jsp.java查错的几种方式
  16. Linq to sql 求和操作
  17. 安腾处理器 oracle,英特尔展示下一代安腾处理器Poulson
  18. IT项目管理之第6章 项目成本管理习题选择题汇总
  19. ppt(office365)之起始页、目录页、结束页界面布局技巧
  20. Flutter 自定义导航、字体大小、颜色等

热门文章

  1. Oracle location,oracle秘境探索之11g tablespace prellocation
  2. 生存分析——KM生存曲线、hazard比例、PH假定检验、非比例风险模型(分层/时变/参数模型)(二)
  3. 阿里云MaxCompute中pyODPS的使用:多线程上传、下载、分区
  4. 笔记︱风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)
  5. [记录] Ubuntu 配置Apache虚拟站点
  6. 【1】windows下IOS开发基础环境搭建
  7. 俄国牛人写的开源爬虫xNet
  8. Java Lock的使用
  9. Java自定义Annotation方法
  10. 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序