This can be achieved in 3 simple steps:
1. Implement HttpRequestHandler
First of all, your servlet class must implement the
org.springframework.web.HttpRequestHandler interface and provide an implementation for the
handleRequest() method just like you would override
doPost().
2. Declare the servlet as a Spring Bean
You can do this by either adding the
@Component("myServlet") annotation to the class, or declaring a bean with a name
myServlet in
applicationContext.xml.
@Component("myServlet")
public class MyServlet implements HttpRequestHandler {
...
3. Declare in web.xml a servlet named exactly as the Spring Bean
The last step is to declare a new servlet in
web.xml that will have the same name as the previously declared Spring bean, in our case
myServlet. The servlet class must be
org.springframework.web.context.support.HttpRequestHandlerServlet.
<servlet>
<display-name>MyServlet</display-name>
<servlet-name>myServlet</servlet-name>
<servlet-class>
org.springframework.web.context.support.HttpRequestHandlerServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myurl</url-pattern>
</servlet-mapping>
Now you are ready to inject any spring bean in your servlet class.
@Component("myServlet")
public class MyServlet implements HttpRequestHandler {
@Autowired
private MyService myService;
My name is Madalin Ilie. Currently I'm a Development Lead at Endava Romania (www.endava.com).