servlet容器

servlet容器
 
servlet没有main()方法。它们受控于另一个java应用,这个java应用研究称为容器(Container)。
 
web服务器应用得到一个指向servlet的请求,服务器不会把这个请求交个servlet本身,而是交给servlet容器。由 容器向servlet 提供http 请求和响应,由 容器调用servlet的 方法(如doPost()、doGet())。
 
容器如何处理请求(摘自head first servlet & jsp P42)
 
  1. 用户点击一个链接,指向一个servlet而不是一个静态页面。
  2. 容器“看出来”这个请求要的是一个servlet,所以容器创建两个对象:HttpSerlvetResponse、HttpServletRequest
  3. 容器根据请求中的URL找到正确的servlet,为这个请求创建或分配一个线程,并把请求和响应对象传递给这个servlet线程。
  4. 容器调用servlet的service()方法。根据请求的不同类型,service方法会调用doGet()或doPost()方法。
  5. doGet()或doPost()方法生成动态页面,并把这个页面“塞到”响应对象里。要记住,容器还有响应对象的一个引用!
  6. 线程结束,容器把响应对象转换为一佧HTTP响应,把它发回给客户,然后删除请求和响应对象。
 任务 web服务器  容器  servlet 
 创建请求和响应对象    yes  
 调用service()方法    yes  
 开始一个新线程处理请求    yes  
 把响应对象转换为一个HTTP响应    yes  
 了解HTTP  yes    
 把HTML增加到响应对象      yes
 有响应对象的一个引用    yes  
 在DD中查找URL    yes  
 删除请求和响应对象    yes  
 协调生成动态内容  yes  yes  
 管理生命周期    yes  
 名字与DD中的<servlet-class>匹配      yes
 
容器为Web应用提供了通信支持、生命周期管理、多线程支持、声明方式的安全、还支持JSP,这样你就能全神贯注地开发你自己的业务逻辑。
 
 

你可能感兴趣的:(servlet,职场,容器,休闲)