应用启动时创建Servlet,通常是用于某些后台服务的Servlet,或者需要拦截很多请求的servlet;这种servlet通常作为应用的基础servlet使用,提供重要的后台服务。
配置load-on-startup的servlet有两种方式:
在web.xml文件中通过<servlet…/>元素的<load-on-startup…/>子元素进行配置。
通过@WebServlet Annotation的loadOnStartup属性指定。
<load-on-startup…/>元素或loadOnStartup属性都只接收一个整型值,这个整型值越小,servlet就越优先实例化。
下面是一个简单的servlet,仅仅执行计时器功能,每隔一段时间会在控制台打印当前时间。
@WebServlet(loadOnStartup=1)
public class TimerServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
Timer t=new Timer(1000,new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(new Date());
}
});
t.start();
}
}
Web.xml方式配置
<servlet>
<servlet-name>timer</servlet-name>
<servlet-class>com.xxx.action.TimerServlet</servlet-class>
<!-- 配置应用启动时创建servlet实例 -->
<load-on-startup>1</load-on-startup>
</servlet>