在Struts 2拦截器中获取HttpServletRequest

时间:2013-10-08 07:24:35

标签: java jsp struts2

要在我使用下面代码的拦截器中获取HttpServletRequest

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

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

有没有更好的方法在拦截器中获取HttpServletRequest

4 个答案:

答案 0 :(得分:7)

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

public String intercept(ActionInvocation invocation) throws Exception {
    ActionContext context = invocation.getInvocationContext();
    HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
    // ...
}

答案 1 :(得分:5)

你可以引用servletConfig拦截器的servlet内容。调用此拦截器后,您可以从ServletActionContext获取servlet内容。

HttpServletRequest request = ServletActionContext.getRequest();

答案 2 :(得分:1)

使用

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

它对我有用

答案 3 :(得分:0)

你会得到ActionInvoction试试getInvocationContext()它将返回“ActionContext”的实例,试试.get(HTTP_REQUEST);

使用

ServletActionContext.getRequest()