Spring MVC takes 2 steps to get a HttpServletRequest object in a normal class:
1. Add the following configuration in the Web. xml file
<listener>
<listener-class>org.springframework.web.context.request.requestcontextlistener </ Listener-class>
</listener>
In the Requestcontextlistener class, there is the following code, where red is labeled as the key code:
public class Requestcontextlistener implements Servletrequestlistener {
...
...
...
public void requestinitialized (Servletrequestevent requestevent) {
if (! ( Requestevent.getservletrequest () instanceof HttpServletRequest)) {
throw new IllegalArgumentException ("");
}
HttpServletRequest request = (HttpServletRequest) requestevent.getservletrequest ();
Servletrequestattributes attributes = new Servletrequestattributes (request);
Request.setattribute (Request_attributes_attribute, ATTRIBUTES);
Localecontextholder.setlocale (Request.getlocale ());
Requestcontextholder.setrequestattributes (attributes);
}
...
...
...
}
public class Servletrequestattributes extends Abstractrequestattributes {
...
...
...
Private final httpservletrequest request;
...
...
...
/**
* Create A new Servletrequestattributes instance for the given request.
* @param request Current HTTP request
*/
Public servletrequestattributes (HttpServletRequest request) {
Assert.notnull (Request, "request must not is null");
This.request = Request;
}
}
2. Get the object in the normal class
HttpServletRequest request = ((servletrequestattributes) requestcontextholder.getrequestattributes ()). Getrequest ();