Servlet生命周期
1.servlet可以在web.xml 配置映射路径
<servlet> <servlet-name>welcome</servlet-name> <servlet-class>org.test.welcome</servlet-class> </servlet>
<servlet-mapping>
<servlet-name>welcome</servlet-name>
<url-pattern>/en/welcome</url-pattern>
<url-pattern>/zh/welcome</url-pattern>
</servlet-mapping>
2.web应用启动就加载servlet
servlet是单实例多线程,对象变量线程不安全,局部变量线程安全
默认servlet要在第一次请求时才创建加载(所有线程共用这个servlet实例),所以servlet的init 方法在web应用启动时不会被调用,但是可以通过web.xml配置启动web应用时就创建实例加载,同时还可以配置servlet加载顺序,这样init方法在tomcat启动时就会被调用了
在servlet标签下添加<load-on-startup> 数字越小优先级越高:
<servlet> <servlet-name>welcome</servlet-name> <servlet-class>org.test.welcome</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
监听器
1.监听器的注册可以在web.xml文件中,按照注册顺序启动监听
2.在servlet3.0中也可以使用注解@WebListener 但是没有顺序
启动顺序,监听器 -》过滤器-》servlet
监听器分类:
servletContextListener:监听整个web应用的启动和销毁---加载初始化信息
HttpSession:监听session对象的创建和销毁---访问量统计
servletRequest:监听客户端发起请求和结束