Servlet技术详解

来源:互联网 发布:java.util string 编辑:程序博客网 时间:2024/04/30 06:41

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

(3)支持可插性;
0 0