1. ?servlet容器是如何工作的?
- 创建一个Request对象,填充一些信息比如参数、headers、cookies、查询字符串、URI等。一个Request对象是javax.servlet.ServletRequest或javax.servlet.http.ServletRequest接口的实例。
- 创建一个Response对象,用于调用的servlet向客户端传递响应信息。其是javax.servlet.ServletResponse或javax.servlet.http.ServletResponse的实例。
- 调用servlet的service方法,传递request和response对象。servlet从request对象中读取值,向response对象中写入值。
2.Catalina主要模块
- Connector,连接器主要是连接请求到容器。它的工作是为每一个接收到http请求构建一个request和response对象,接下来传递给待处理的容器。
- Container,容器从连接器接收到request和response对象,负责调用servlet的service方法。
连接器和容器是多对1的关系(*对1)
?
3.tomcat4和5对比
- tomcat5支持servlet2.4和jsp2.0规范,tomcat4支持servlet2.3和jsp1.2
- tomcat5拥有比tomcat4更高效的默认连接器
- tomcat5使用更少的资源。因为tomcat5共享一个后台处理的线程,而tomcat4的每个模块都有自己的后台处理线程。
- tomcat5代码更简洁。因为不需要一个mapper组件来找到一个子组件。