java項目中的路徑獲取,request


java web項目中獲取項目根路徑(tomcat可運行的web源碼的路徑)的方式:

分為兩種情況:

 

情況一:

在eclipse、inde等開發工具中獲取(注:如下代碼所在的類必須是控制層所在包下的類):

String basePath = Thread.currentThread().getContextClassLoader().getResource("").getPath().split("/target/")[0]+"/target/xiyinli-web-1.0-SNAPSHOT/";

其中xiyinli-web-1.0-SNAPSHOT根據自己maven的web項目中pom.xml的配置進行相應修改,我這里的如下:

    <groupId>com.xiyinli</groupId>
<artifactId>xiyinli</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>

 

情況二:

項目部署以后,在tomcat中運行時獲取:

方式一:

接口中傳入:HttpServletRequest

String basePath = request.getSession().getServletContext().getRealPath("/");

定時器中獲取request:

        RequestAttributes ra = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes sra
= (ServletRequestAttributes)ra;
HttpServletRequest request
= sra.getRequest();

方式二(一般無法拿到HttpServletRequest對象時使用,如spring定時器等):

                WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
ServletContext servletContext
= webApplicationContext.getServletContext();
String basePath
= servletContext.getRealPath("/");

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com