Struts2 拦截器问题

在拦截器的init方法中怎么获取到tomcat的物理路径还有在web.xml中配置的环境参数?

6个回答

想法是好的,但是你在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里初始化并使用。

那你这样做的目的是什么?咱们是为了解决问题,也许并非只能拦截器获取才能解决你的问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问