大家都知道,就是我们在开大项目时现在都比较热衷于用SpringMVC框架,说道SpringMVC框架就不得不说DispatcherServlet,可以说该Servlet就是该框架的核心,所有的请求处理及返回都要经过该Servlet,于是我们必须在web.xml里面配置该Servlet,大多时候我们在配置该Servlet的时候都会顺手配置一下:<load-on-startup>数值</load-on-startup>元素。起初就是以为加载DispatcherServlet的,直到某天被问到其作用的时候默然了,于是查阅相关资料在此整理记录一下,也方便其他跟我一样的小伙伴们参考,关于load-on-startup具体作用如下:
1、load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。
2、它的值必须是一个整数,表示servlet应该被载入的顺序
3、当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
4、当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。
5、正数的值越小,该servlet的优先级越高,应用启动时就越先加载。
6、当值相同时,容器就会自己选择顺序来加载。
所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。
web.xml里面的运用片段:
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-timer.xml,classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
下面贴一道测试题:(摘自:
XZC.Log)
2.web.xml中不包括哪些定义(多选)
a.默认起始页
b.servlet启动延迟时间定义
c.error处理页面
d.jsp文件改动后重新载入时间
答案:b,d
通常大多数Servlet是在用户第一次请求的时候由应用服务器创建并初始化,
但<load-on-startup>n</load-on-startup> 可以用来改变这种状况,
根据自己需要改变加载的优先级!