在拦截器的init方法中怎么获取到tomcat的物理路径还有在web.xml中配置的环境参数?
想法是好的,但是你在int中获取不到你想要的东西。要不你写一个Listener吧,在Listener初始化的时候把你想要的参数和tomcat路径放到静态变量里,在拦截器的int方法里调用就行了。。。
你看看ActionContext和ServletContxt里有吗,这里封装了Action的上下文和Servlet的上下文,应该有的,或者参考下这两个类的API。
ServletActionContext.getServletContext()返回的是ServletContext,这里有web.xml配置的参数。ServletActionContext.getRequest()返回的是request,requst里有tomcat的路径。
ServletContext servletContext = ServletActionContext.getServletContext();
String rootPath = servletContext.getRealPath("/");
你是想要init里初始化一些东西想在intercept方法中用是吧?那么你直接在intercept中获取你要的数据多好。因为intercept(ActionInvocation invocation)方法的参数invocation里能得到ActionContext,而ActionContext里能得到request和ServletContext。你就把intercept当成init用,在intercept里初始化并使用。
那你这样做的目的是什么?咱们是为了解决问题,也许并非只能拦截器获取才能解决你的问题。