怎样在Web项目中的service业务层获取项目根路劲
2023-09-11 14:20:59 时间
这里我们有两个前提
1、没有使用struts2框架。没有使用servlet,无法给service层传递request对象。
2、使用了Spring框架。
那你可能问。会有这样的情况吗?答案是有的,比方我们公布的是WebService接口项目,仅仅是提供服务,就并不须要涉及什么action。servlet。
那我们要怎样获取项目根路劲呢。
这里给出两个方法:
1、获取request对象,最后拿到ServletContext对象调用它的方法
首先须要做的是在web.xml配置一个监听器
<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
在service层的方法中我们这么做
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); System.out.println("***********"+request.getSession().getServletContext().getRealPath("/"));
2、获取随意一个类class在项目中的编译文件夹,然后截取\WEB-INF\classes获得项目根文件夹
通常我们会把其定义为静态常量,供项目中调用
public static final String PATH_CLASS_ROOT = Constants.class.getClassLoader().getResource("").getPath(); /*项目根路径*/ public static final String ROOT_Path = PATH_CLASS_ROOT.substring(0,PATH_CLASS_ROOT.length() - "WEB-INF\\classes\\".length());
假设是web项目被调用,打印结果是
/E:/Apache-tomcat/apache-tomcat-7.0.53/wtpwebapps/demo/WEB-INF/classes/
到这里应该能够看出来事实上
/E:/Apache-tomcat/apache-tomcat-7.0.53/wtpwebapps/demo/才是我们的项目根路径
所以我们调用Constants.ROOT_Path 就拿到项目根路径
另外一种个应该是较为经常使用的,不错吧,(*^__^*) 嘻嘻……。
相关文章
- 【Web Audio API】 — 那些年的 web audio
- Ubuntu16.04 下docker部署web项目
- 仿新浪微盾客户端项目简介五
- 新闻发布项目——业务逻辑层(commentServiceImpl)
- SpringWeb项目启动后,执行一个方法,并且只执行一次
- IDEA 如何使用JRebel 部署web项目呢?
- 使用spring 4.0 + maven 构建超简单的web项目
- 使用IDEA社区版开发Web项目
- eclipse自动部署web项目时WEB-INFlib目录下缺少maven依赖jar包
- 搭建springMVC项目,web.xml配置,及分析。
- 【收藏】使用命令行创建maven web项目
- Java Web项目,Android和微信小程序的初始页面配置
- Atitit web 之道 艾龙著 Atitit web 之道 艾龙艾提拉著v2 saa.docx Atitit web开发之道 attilax著 Web应用 1. 第1章 Web编程基础知识 (
- Atitit 2016 技术趋势与没落技术 目录 1.1. 离线优先Web应用程序(Offline first web applications)1 1.2. 依照产品而不是项目(product
- Atitit 部署了个webdav服务 as root 目录 1.1. WEB-INF copy to root dir only a web.xml use...1 1.2. Java.ba
- Atitit 软件项目系统托盘图标解决方案
- 搭建Dynamic Web Project(动态web项目)的springmvc工程2
- 搭建Dynamic Web Project(动态web项目)的springmvc工程1
- 【项目实战】商城项目中计算PV实战
- 【项目实战】并发编程之ThreadLocalRandom入门介绍
- 【阶段四】Python深度学习08篇:深度学习项目实战:循环神经网络SimpleRNN、LSTM进行淘宝商品评论文本情感分析
- 007-shiro与spring web项目整合【一】基础搭建
- 第四范式获信通院尖峰开源项目及开源人物双料大奖
- SVN基于Maven的Web项目更新,本地过程详细解释
- 逐点分析,这样做Web项目性能测试分析更简单
- 使用Maven创建Web应用程序项目
- OPPO、京东云 loT 项目数据架构改造,数据处理痛点这样破解
- eclipse创建第一个java web项目并运行