1. 如果web开发中采用了spring环境,而又自定义了servlet,如果不在web.xml中进行恰当的设置,而直接访问自定义的servlet的话,将会报错:资源不存在!(例如,进行微信公众账号开发,如果接入口为自定义servlet,而又采用了spring环境,就会报这样的错。)
2. 可进行如下设置来解决该问题:
在web.xml中配置如下代码:
<servlet>
<servlet-name>coreServlet</servlet-name>
<servlet-class>com.designer.servlet.CoreServlet</servlet-class>
<init-param>
<param-name>targetProxyClass</param-name>
<param-value>org.springframework.web.servlet.DispatcherServlet</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- url-pattern中配置的/coreServlet用于指定该Servlet的访问路径 -->
<servlet-mapping>
<servlet-name>coreServlet</servlet-name>
<url-pattern>/coreServlet</url-pattern>
</servlet-mapping>
3. 说明:
其中<load-on-startup>2</load-on-startup>标签定义了servlet载入的顺序:
1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet;(实例化并调用其init()方法)
2)它的值必须是一个整数,表示servlet应该被载入的顺序;
2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载;
4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载;
5)当值相同时,容器就会自己选择顺序来加载。
4. 配置好后重启服务器。