怎样在Web项目中的service业务层获取项目根路劲
2016-02-19 16:41
387 查看
这里我们有两个前提
1、没有使用struts2框架。没有使用servlet,无法给service层传递request对象。
2、使用了Spring框架。
那你可能问。会有这样的情况吗?答案是有的,比方我们公布的是WebService接口项目,仅仅是提供服务,就并不须要涉及什么action。servlet。
那我们要怎样获取项目根路劲呢。
这里给出两个方法:
1、获取request对象,最后拿到ServletContext对象调用它的方法
首先须要做的是在web.xml配置一个监听器
在service层的方法中我们这么做
2、获取随意一个类class在项目中的编译文件夹,然后截取\WEB-INF\classes获得项目根文件夹
通常我们会把其定义为静态常量,供项目中调用
假设是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 就拿到项目根路径
另外一种个应该是较为经常使用的,不错吧,(*^__^*) 嘻嘻……。
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 就拿到项目根路径
另外一种个应该是较为经常使用的,不错吧,(*^__^*) 嘻嘻……。
相关文章推荐
- 极客DIY:使用树莓派制作一架四轴无人机
- 【提高】面试--三
- ContentProvider和Uri详解
- js中的hasOwnProperty和isPrototypeOf方法使用实例
- 学习python实战:年会抽奖程序的实现.md
- 响应者链
- 字符串,字符串数组,sizeof,strlen
- oracel数据并发和数据一致
- UISlider增加触动区域
- SPOJ-Problem GCJ1C09C
- [从头学数学] 第97节 数学广角--数与形
- Android Studio配置文件路径修改
- JAVA基础
- 绑定变量学习示例-未完待续
- Git -- 配置别名
- Java断点续传
- hdu1009 FatMouse' Trade(贪心水)
- 关于系统调用(一)
- 真是不把自己逼到再无退路就不学
- Android 滚动字幕实现