Struts2 在Struts 2拦截器中获取HttpServletRequest
要在拦截器中获取Struts2 在Struts 2拦截器中获取HttpServletRequest,struts2,struts2-interceptors,Struts2,Struts2 Interceptors,要在拦截器中获取HttpServletRequest,我使用了以下代码: HttpServletRequest request =(HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST); 我试图在拦截器中实现ServletRequestAware,但没有成功 有没有更好的方法在拦截器中获取HttpServletRequest 您将获得ActionInvocation trygetInvocationContext()它
HttpServletRequest
,我使用了以下代码:
HttpServletRequest request =(HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);
我试图在拦截器中实现ServletRequestAware
,但没有成功
有没有更好的方法在拦截器中获取
HttpServletRequest
您将获得ActionInvocation trygetInvocationContext()
它将返回“ActionContext”的实例try.get(HTTP\U请求)代码>在这上面
或
使用
您需要使用ActionInvocation#getInvocationContext()
来检索您的请求
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext context = invocation.getInvocationContext();
HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
// ...
}
引用servletConfig
interceptor可以获得的servlet内容。调用此拦截器后,您可以从ServletActionContext
获取servlet内容
HttpServletRequest request = ServletActionContext.getRequest();
使用
它对我很有用为什么在拦截器中需要HttpServletRequest
?我想开发一个拦截器,防止Ajax请求直接通过url调用。请看。此拦截器将位于拦截器堆栈中,这将阻止这些请求。这应该是在拦截器内部使用的批准答案。
HttpServletRequest request = ServletActionContext.getRequest();
final HttpServletRequest request = (HttpServletRequest) ActionContext.getContext()
.get(ServletActionContext.HTTP_REQUEST);