一.Servlet,一个请求在容器中是如何处理的
Servlet规定的,相应客户请求访问特定Servlet流程如下:
1.客户端发出请求。
2.Servlet容器接收客户请求解析。
3.Servlet容器创建一个ServletRequest对象。
其中包含客户请求信息及其他关于客户的信息如请求头,请求正文,客户机的IP等。
4.容器创建一个ServletResponse对象。
5.容器调用客户请求的Servlet的service方法,并且把ServletRequest和ServletResponse作为参数传入。
6.Servlet从客户参数中获得客户请求信息,并调用对应的doGet或doPost处理。
7.Servlet利用ServletResponse对象来生产相应结果。
8.Servlet容器把Servlet生成的结果发给客户。
二.Servlet3.0长连接
servlet3.0规范中添加了异步处理,即一部分操作处理完成之后,先行把数据返回来,对于另一部分比较耗时的操作可以放置到另外一个线程中进行处理,该线程保留有连接的请求和响应对象,在处理完成之后可以把处理的结果通知到客户端,实例代码如下:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.AsyncContext;
import javax.servlet.AsyncEvent;
import javax.servlet.AsyncListener;
import j