Java Servlet

版本

  • Servlet 1.0:定义了Servlet组件,一个Servlet组件运行在Servlet容器(Container)中,通过与容器交互,就可以响应一个HTTP请求;
  • Servlet 2.0:定义了JSP组件,一个JSP页面可以被动态编译为Servlet组件;
  • Servlet 2.4:定义了Filter(过滤器)组件,可以实现过滤功能;
  • Servlet 2.5:支持注解,提供了ServletContextListener接口,增加了一些安全性相关的特性;
  • Servlet 3.0:支持异步处理的Servlet,支持注解配置Servlet和过滤器,增加了SessionCookieConfig接口;
  • Servlet 3.1:提供了WebSocket的支持,增加了对HTTP请求和响应的流式操作的支持,增加了对HTTP协议的新特性的支持;
  • Servlet 4.0:支持HTTP/2的新特性,提供了HTTP/2的Server Push等特性;
  • Servlet 5.0:主要是把javax.servlet包名改成了jakarta.servlet
  • Servlet 6.0:继续增加一些新功能,并废除一部分功能。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 ┌────────────────────────────────┐
│ ServletContext │
│ │
│HttpServletRequest ┌─────────┐ │
─┼───────────────────▶│ Filter │ │
│HttpServletResponse └─────────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ Filter │ │
│ └─────────┘ │
│ │ │
│ ┌─────────┐ ▼ │
│ │Listener │ ┌─────────┐ │
│ └─────────┘ │ Filter │ │
│ ┌─────────┐ └─────────┘ │
│ │Listener │ │ │
│ └─────────┘ ▼ │
│ ┌─────────┐ ┌─────────┐ │
│ │Listener │ │ Servlet │ │
│ └─────────┘ └─────────┘ │
└────────────────────────────────┘