要在我使用下面代码的拦截器中获取HttpServletRequest
:
HttpServletRequest request =(HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);
我试图在拦截器中实现ServletRequestAware
,但它没有用。
有没有更好的方法在拦截器中获取HttpServletRequest
?
答案 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()