Servlet容器的三个功能
- 构建一个
request
对象并保存servlet
可能用到的信息如参数,请求header,cookies,query string,URI等。请求对象是javax.servlet.ServletRequest
接口或javax.servlet.http.ServletRequest
的实例。 - 构建一个
response
对象并保存servlet
发送给客户端的信息。respons
e对象是javax.servlet.ServletResponse
接口或javax.servlet.http.ServletResponse
接口的实例。 - 激活
servlet
的service
方法,并将上述两个对象传递给service
方法。
Servlet是如何工作的
Catalina就是我们要研究的容器,它也是一个非常精致的软件产品。它由connector
和container
两部分组成,一个container
可以由多个connector
连接。
connector
的作用是接收HTTP请求,并依据这个请求创建一个request
对象和一个response
对象,然后将这两个对象交给container
。container
接收这两个对象,并负责调用servlet
的service
方法,同时将这两个对象传递给service
方法。当然,容器需要先执行加载servle
,为用户授权,更新session
等工作。因此容器会调用许多模块来完成上述工作。