spring 怎么连接servlet,spring整合servlet,spring管理servlet
1.在web.xml中的配置:
<!-- 配置一个servlet -->
<servlet>
<servlet-name>AbcServlet</servlet-name>
<servlet-class>
com.xx.servlet.common.DelegatingServletProxy
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AbcServlet</servlet-name>
<url-pattern>/AbcServlet</url-pattern>
</servlet-mapping>
<!-- 配置spring -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:context/applicationContext*.xml
</param-value>
</context-param>
2.在applicationContext.xml中配置:
<bean id="AbcServlet" class="com.xx.servlet.AbcServlet" />
3.DelegatingServletProxy代理:
-------------------------
package com.xx.servlet.common;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class DelegatingServletProxy extends GenericServlet {
private String targetBean;
private Servlet proxy;
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
proxy.service(req, res);
}
@Override
public void init() throws ServletException {
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
this.targetBean = getServletName();
this.proxy = (Servlet) wac.getBean(targetBean);
proxy.init(getServletConfig());
}
}