Home > FAQs > How can we access the HttpServletRequest |
You can obtain the request by asking the ActionContext or implementing ServletRequestAware. Implementing ServletRequestAware is preferred.
The request is available on the ActionContext instance, which is made available via ThreadLocal.
HttpServletRequest request = ServletActionContext.getRequest();
Preferred
servlet-config
Interceptor is included in the Action's stack.
servlet-config
.setServletRequest
method. You may wish to include a companion getServletRequest
method.getServletRequest
to obtain a reference to the request object.
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.)