1、web.xml
web.xml是Servlet规范中定义的Web应用发布的描述文件,它与tomcat完全独立。它的主要作用是,装载DispatcherServlet类,设置一些初始化参数,加入标记库,设置如:*.do、*、form的映射等。
每个Servlet请求都是由一个线程而不是一个全新的进程来处理的。
注意:Servlet不是线程安全的,因为每个Servlet只加载一次,它是共享数据的,相当于单例模式。如果需要线程安全就需要自己处理(如何处理呢?)
2、Servlet的生命周期
(1)Web容器加载一个Servlet,调用init方法初始化。
(2)调用service方法,传递一个请求和相应对象。
(3)如果要移除一个Servlet,可调用Servlet的destroy方法来结束该Servlet。
3、处理请求:
(1)每个请求都是ServletRequest类型,同时Servlet使用ServletResponse返回该请求的处理结果。
(2)容器可能同时将多个客户端的请求发送给一个实例的service方法,这就意味着开发者必须确保编写的Servlet可以处理并发问题。如果开发者想禁止这种默认的行为发生,那么它可以编写Servlet实现SingleThreadModel这个类。这样就可以保证一次只会有一个线程在执行service方法并且一次性执行完。
4、Filter技术原理
Filter包含:
(1)在Servlet调用之前截获。
(2)在Servlet调用之前检查Servlet的request。
(3)根据需要修改requeset头和request数据。
(4)根据需要修改response头和response数据。
(5)在Servlet调用之后截获。
最初版本的Filter需要实现javax.servlet.Filter接口的三个方法:
(1)setFileterConfig();(2)getFilterConfig();(3)doFilter();
最新的版本只需要实现javax.servlet.Filter接口的两个方法:
(1)init();(2)doFilter();
5、Servlet3.0新特征
(1)支持异步处理;
(2)支持注解;
a、servlet注解:@WebServlet
b、初始化参数注解:@WebInitParam
c、过滤器注解:@WebFilter