7

为了得到HttpServletRequest一个拦截器,我使用了下面的代码:

HttpServletRequest request =(HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);

我试图ServletRequestAware在拦截器中实现,但没有奏效。

有没有更好HttpServletRequest的方法进入拦截器?!

4

4 回答 4

9

您需要使用ActionInvocation#getInvocationContext()来检索您的请求。

public String intercept(ActionInvocation invocation) throws Exception {
    ActionContext context = invocation.getInvocationContext();
    HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
    // ...
}
于 2013-10-08T07:35:16.370 回答
5

您可以获得引用servletConfig拦截器的 servlet 东西。调用此拦截器后,您可以从ServletActionContext.

HttpServletRequest request = ServletActionContext.getRequest();
于 2013-10-08T08:05:16.647 回答
1

采用

final HttpServletRequest request = (HttpServletRequest) ActionContext.getContext()
                                               .get(ServletActionContext.HTTP_REQUEST);

它对我有用

于 2015-03-17T06:10:20.227 回答
0

你会得到 ActionInvoction 尝试getInvocationContext()它会返回“ActionContext”的实例尝试.get(HTTP_REQUEST);这个。

或者

采用

ServletActionContext.getRequest()
于 2013-10-08T07:34:01.443 回答