Tomcat既是一个容器(Container),下面简单描述了一下servlet生命周期中,容器的作用
?
1。Web服务器得到一个指向servlet的请求时,服务器首先把请求交给部署该servlet的容器。
2。容器“看出来”这个请求要的是一个servlet,于是容器创建了两个对象,HttpServletResponse和HttpServletRequest。
3。接着,容器根据url找到对应的servlet,为这个请求(servlet)创建或分配一个线程,并将上面两个对象传递给这个线程
4。然后,容器会调用servlet的service()方法,这个方法会根据不同的请求类型调用doGet()或doPost()
5。doGet()或doPost()方法里,开发者可以进行一定的操作,如生成响应页面,并把这个页面放进响应对象(HttpServletResponse)中
6。servlet线程结束,容器把响应对象转化成Http响应,将他发回给请求者,然后删除请求和响应对象
?
容器提供给开发者的方便之处:
1.通信支持:容器提供了各种通信的方法,你不用自己做建立ServerSocket、监听接口、创建流等通信相关的事情。只需要专注于实现业务逻辑
2.servlet生命周期管理:容器控制着servlet的生死。它会负责加载类、实例化和初始化servlet、调用servlet的方法和回收“老去的”servlet
3.多线程支持:容器为每个servlet请求创建一个新线程,并控制着该线程的运行。这让你的服务器能支持多任务,而不需要考虑太多并发性问题
4.易于配置:容器使用XML来进行参数配置,而不是将配置编码到类的代码中。易于理解和维护
5.jsp支持。容器负责把jsp页面翻译成servlet
?
参考文献:《Head first JSP》