第一种:Servlet
建WEB项目
增加web.xml
1 | <servlet> |
其中
1 | <load-on-startup>0</load-on-startup> |
表示servlet在何时初始化,Web容器启动时初始化,还是用户请求某个Servlet时对其初始化 。
设置为0时, 表示容器在应用启动时就加载并初始化这个servlet
写个servlet实现类
1 | package servlet.asyn; |
访问
第二种:使用Filter
web.xml配置
1 | <filter> |
类实现注意使用javax.servlet的接口:
第三种:使用Listener
1 | <listener> |
实现ServletContextListener接口
第四种:注解注册(Servlet3.0+)
1 | @WebServlet(asyncSupported = false, |
第五种:ServletContext 动态注册
Servlet,Listener,Filter由ServletContext去加载,无论是使用xml配置还是使用Annotation注解配置,均由Web容器进行初始化,读取其中的配置属性,然后向Web容器中进行注册。Servlet 3.0 可以由ServletContext动态进行注册,因此需在Web容器初始化的时候(即建立ServletContext对象的时候)进行动态注册。
- 自定义ServletContextListener
- 改写其方法contextInitialized,在该方法中动态注册Servlet,Filter,Listener
- Servlet
需要配置Servlet的参数为:loadOnStartup,urlMapping,initParameter,asyncSupport,MultipartConfig等。
1 | javax.servlet.FilterRegistration.Dynamic filterRegistration = servletContext.addFilter("threedr3am", threedr3am); |