Apache Struts 2 Documentation > Home > FAQs > How can we access the HttpServletRequest |
You can obtain the request by asking the ActionContext or implementing ServletRequestAware. Implementing ServletRequestAwareis preferred.
The request is available on the ActionContext instance, which is made available via ThreadLocal.
HttpServletRequest request = ServletActionContext.getRequest();
Preferred
When the servlet-config Interceptor sees that an Action implements ServletRequestAware, it passes a reference to the request the Action's setServletRequest method. |
It is more difficult to test Actions with runtime dependencies on HttpServletRequest. Only implement ServletRequestAware as a last resort. If the use case cannot be solved by one of the other servet-config interfaces (ApplicationAware, SessionAware, ParameterAware), consider whether an custom Interceptor could be used instead of Action code. (Review how servlet-config works for examples of what can be done.) |
@see struts-default.xml
@see org.apache.struts.action2.interceptor.ServletRequestAware
@see org.apache.struts.action2.interceptor.ServletConfigInterceptor