如何在Web项目中的service业务层获取项目根路劲(转载)
2017-09-28 18:10
267 查看
这里我们有两个前提
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 就拿到项目根路径
第二种个应该是较为常用的,不错吧,(^__^) 嘻嘻……。
相关文章推荐
- 怎样在Web项目中的service业务层获取项目根路劲
- 如何使用Exchange Web Service Managed API获取公共文件夹日历(包括循环会议)
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件(转载)
- J2EE web项目,绝对路径和相对路径如何设置与获取
- 去哪网实习总结:如何获取Web项目的根目录(JavaWeb)
- 获取JAVA[WEB]项目相关路径的几种方法(转载)
- <个人收藏>如何获取web项目的访问路径、项目路径
- 如何用Maven创建web项目(具体步骤)转载
- 如何用代码方式获取Web.config中system.serviceModel/client节点的address
- java web 项目如何获取客户端登录帐号信息(用于SSO或其他)
- 项目中一个普通的Java类如何获取service接口(一)
- 【web】项目中如何获取ip地址和端口号
- 如何做好项目需求获取与分析(转载)
- java WebService发布如何获取不同平台的IP
- 如何获取web项目hibernate.cfg.xml配置文件中的数据
- Web项目启动初始化监听器如何获取spring bean
- 做web网页项目中如何获取跳转的来源url和当前url.
- 【转载】如何用IntelliJ IDEA 14 创建Web项目
- web项目如何获取容器中的bean对象?