在Spring中配置servlet
在servlet的编程中,如果想用到Spring的注入功能,其实很简单:
看个例子程序:
<servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ServletToBeanProxy</servlet-name> <servlet-class>en.filter.ServletToBeanProxy</servlet-class> <init-param> <param-name>targetBean</param-name> <param-value>userLoginServlet</param-value> </init-param></servlet><servlet-mapping> <servlet-name>UserLogin</servlet-name> <url-pattern>/UserLogin</url-pattern></servlet-mapping>
?首先,我们来理清一下代码的执行顺序。当我们在客户端输入网址:http://localhost:8080/ProjectName/UserLogin的时候,服务器就会去调用这个代理的servlet。然而这个代理的servlet到底做了什么呢?可以分几步来描述:一:获得init参数,这个参数就是实际要访问的servlet,他会在Spring的配置文件中定义。二:通过WebApplicationContext去Spring容器中得到目标servlet,当然名字就是init参数中配置的名字。三:将获得的servlet强制转换为Servlet,然后执行目标servlet。OK,这样就完成了注入。
????? 那么,如果我们有另外一个业务的servlet怎么办呢?是不是还要在写一个ServletToBeanProxy 似地代理类呢?当然是不用的。我们只需要修改web.xml就行了。需要修改的地方只有init参数和url-parrten两处。代理类的代码是完全一样的,可以重用。这样,在servlet中就能感知到Spring的注入了。? 而要注意的是,目标servlet是不需要在web.xml当中配置的。
?