在java普通类中获取容器路径

1,在web.xml中加入一个参数和listener

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webapp.root</param-value>
</context-param>
<listener>
    <listener-class>org.sunsf.core.listener.ApplicationListener</listener-class>
</listener> 
2,在listener类中继承ContextLoaderListener 类重写contextInitialized方法,并设置webapp.root
package org.sunsf.core.listener;

import javax.servlet.ServletContextEvent;

import org.springframework.web.context.ContextLoaderListener;


public class ApplicationListener extends ContextLoaderListener {

    public void contextInitialized(ServletContextEvent sce) {
        String webAppRootKey = sce.getServletContext().getRealPath("/");
        System.setProperty("webapp.root", webAppRootKey);
    }
} 

 
3,在普通类中就可以通过下面的代码
获取容器的路径
 System.getProperty("webapp.root");
说明:如果有自定的启动类可以直接copy到启动类中
String webAppRootKey = sce.getServletContext().getRealPath("/");
System.setProperty("webapp.root", webAppRootKey);
 

猜你喜欢

转载自babablog.iteye.com/blog/1870545