1.容器
tomcat是一个容器,向Servlet提供HTTP请求和响应,并调用servlet方法。
2.容器处理请求
a)用户点击一个链接,指向一个servlet,而不是一个静态页面
b)容器看出来这个请求是一个servlet,所以容器创建两个对象
HttpServletResponse
HttpServletRequest
c)容器根据请求中的URL找到正确的servlet,为这个请求创建或分配一个线程,并把请求和响应对象传递给这个servlet线程
d)容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法
e)doGet()或doPost()方法生成动态页面,并把这个页面“塞到”响应对象里
f)线程结束,容器把响应对象转换成一个HTTP响应,发回给客户,然后删除请求和响应对象
3.URL映射到servlet
4.由web服务器、web容器或是servlet负责的任务
任务 | web服务器 | 容器 | servlet. 。。。。。。。。。。。。。。。。。 |
创建请求和响应对象 | 在开始线程之前创建 | ||
调用service()方法 | service()方法调用 doGet()或doPost() | ||
开始一个新线程 来处理请求 | 开始一个servlet线程 | ||
把响应对象转换为 一个HTTP响应 | 容器由响应对象中的 数据生成HTTP响应流 | ||
了解HTTP | 通过HTTP与客户 浏览器对话 | ||
把HTML增加到响应对象 | 这是提供给客户 的动态内容 | ||
有响应对象的一个引用 | 容器把它交给servlet | 用它打印响应 | |
在部署描述文件中查找URL | 找到对应请求的 适当servlet | ||
删除请求和响应对象 | servlet一旦结束就删除 请求和响应对象 | ||
协调生成动态内容 | 知道如何转发到容器 | 知道要调用谁 | |
管理生命周期 | 调用服务方法 (及后面将看到的其他方法) | ||
名字与部署描述文件中的 <servlet-class>元素匹配 | 任何公共类 |