Servlet 受容器的控制(Servlet 的一生全部由容器控制)
- 容器会创建请求和响应对象
- 容器会为servlet创建一个新的线程或分配一个线程去处理请求
- 容器会调用servlet的service()方法,并传递请求和响应对象的引用作为参数
举例如下:
用户点击一个链接,链接的URL指向一个servlet。
容器“看出”这个请求指向一个servlet,所以容器创建两个对象。
- HttpServletRequest
- HttpServletResponse
容器根据请求中的URL查找正确的servlet,为这个请求创建或分配一个线程,并调用servlet的service()方法(传递请求和响应对象作为参数)。
service()方法根据客户发出的HTTP方法(GET、POST等),确定调用那个servlet方法。客户发送一个HTTP GET请求,所以service()方法会调用servlet的doGet()方法,并传递请求和响应对象作为参数。
servlet使用响应对象将响应写至客户。响应通过容器传回。
service() 方法结束,所以线程要么撤销,要么返回到容器管理的一个线程池。请求和响应对象引用已经出了作用域,所以这些对象已经没有意义(可以垃圾回收)。客户得到响应。