【声明】文章为本人学习时记录的笔记。 原课程地址:www.liaoxuefeng.com/wiki/154595…
1、为什么一个Java Web App基本上可以无修改地部署到多种Web服务器上呢?
Servlet规范是Java Servlet API的规范,用于定义Web服务器如何处理HTTP请求和响应。Servlet规范有一组接口,对于Web App来说,操作的是接口,而真正对应的实现类,则由各个Web Server实现。
2、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:继续增加一些新功能,并废除一部分功能。
3、Servlet处理流程
当Servlet容器接收到用户的HTTP请求后,由容器负责把请求转换为`HttpServletRequest`和`HttpServletResponse`对象,分别代表HTTP请求和响应,然后,经过若干个Filter组件后,到达最终的Servlet组件,由Servlet组件完成HTTP处理,将响应写入`HttpServletResponse`对象
4、Servlet三大组件
Servlet、Filter和Listener