- Servlet的请求
假如你已经安装好了Eclipse或者其他IDE,现在就建一个Servlet文件试试看,你会发现建立的Servlet会默认继承javax.servlet.http.HttpServlet类,就算你没有安装Eclipse也无所谓,知道我们编写的Servlet是需要继承javax.servlet.http.HttpServlet类就可以啦。
现在打开这个类看看,看看Servlet的老爸长得如何,public abstract class HttpServlet extends GenericServlet implements Serializable; 从这看得出,Servlet还有一个爷爷,它是javax.servlet.GenericServlet,还实现了一个序列化的功能(java.io.Serializable),序列化的就不说啦,老实说,我也没用过序列化这功能,仅处于知道有这个地球上有这么一个东西而已。再接着看看Servlet爷爷长得是啥样,public abstract class GenericServlet extends Object implements Servlet, ServletConfig, Serializable; 我们这需要留意的是Servlet的爷爷是实现了Servlet的接口的,你打开Servlet接口,里面有这样一句话:Defines methods that all servlets must implement. 换一句话,它是Servlet的老祖宗,所有的Servlet必须要实现这个接口,要不就不能称之为Servlet。我们Web用的HTTP协议所以就是HttpServlet,同样的道理,如果将来出现XTTP协议,也许你会看到一个XttpServlet,它必定也是实现了Servlet接口(当然啦,技术出现了大变革除外)。Servlet的爸爸,爷爷的方法这么多,不可能每一个都说。就挑一些常用的(也就是Servlet生命周期的几个函数)说说:
void init(); //Servlet初始化
void service (ServletRequest req, ServletResponse res);
void doGet (ServletRequest req, ServletResponse res);
void doPost (ServletRequest req, ServletResponse res);
…………
Servlet各种服务
void destroy(); //Servlet的销毁
记得李兴华老师当时是这样说的:Servlet的生命周期其实就是人一生的写照,Tomcat就是这个社会。人的经历首先是从出生开始的,对Servlet而言就是调用init()方法,想想看,人的一生能出生多少次啊?就一次,Servlet中init()的方法也只能调用一次,一般都是在Servlet第一次运行时加载init()方法,你也可以设置为服务器启动的时候加载。人出生后,随着年纪的增长,你就必须得投入到工作去,身体有缺陷的例外,而且工作不是说你只做一次,只要有需要,你就必须得做,重复的做。BOOS的命令,谁敢不服从,要不立刻吵你鱿鱼。对Servlet而言也是一样,只是它没有抵触情绪而已,哈。它也是不断的运行doGet(), doPost()等方法,当中有可能出现异常。人总有一天是会死亡的,死亡的确定有两种,一种是的的确确死了,他的尸体就躺在你面前,另外一种是他失踪了多少年,从法律的角度上判断,他是死亡了,他的老婆拥有了合法改嫁的权利。对Servlet而言,它的死亡方式也有两种:一种是服务器关闭,也就是的的确确死了,另外一种是该Servlet长时间不使用,Tomcat判断其死亡,Servlet的生命周期到此结束。
2. Servlet响应
使用响应只是为了向客户发送数据,会对响应调用两个方法:
setContentType()
getWriter()