? ? ? ?Web成为当今主流的互联网web应用技术之一,而Servlet是Java Web技术的核心基础,因而掌握Servlet的工作原理是每一个Java Web技术开发人员的基本要求。
? ? 一、 ?Servlet创建的两种方法:
? ?二、Servlet运行时一般都遵循如下生命周期:
? ?三、Servlet的工作原理:
? ? ? ? 首先,客户端发出一个请求,servlet调用service方法对请求进行响应,service()方法对请求方式进行匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,对客户做出响应。
? ? ? ? 在Servlet接口和GenericServlet中是没有doGet和doPost等方法的,HttpServlet中定义了这些方法,但都返回的是error信息,所以,我们每次在定义一个Servlet的时候,都要实现doGet或doPost方法,每个自定义的servlet都必须实现Servlet接口,Servlet接口中定义了5个方法,其中比较重要的三个方法涉及到servlet的生命周期,分别是上面提到的init()方法,service()方法,destroy()方法,GenericServlet是一个通用的,不特定与任何协议的Servlet,他实现了Servlet接口,而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口,所以我们自己定义Servlet的时候只需要继承HttpServlet即可,Servlet接口和GenericServlet是不特定于任何协议的,而HttpServlet是特定于Http协议的类,所以HttpServlet实现了service()方法,并将请求ServletRequest和ServletResponse强制转换成HttpRequest和HttpResponse。
? ? ? Servlet响应请求阶段:对于用户到达Sevlet请求,Servlet容器会创建特定于这个请求的ServletRequest和ServletResponse对象,然后调用servlet的service方法,service方法从ServletRequest对象获取用户请求信息,处理该请求,并通过ServletResponse对象对客户做出响应
? ? ? Servlet终止阶段:当Web应用被终止或Servlet容器终止运行,或Servlet容器重新装载Servlet实例时,Servlet容器会先调用Servlet的destroy()方法,在destroy()方法中可以释放掉servlet所占用的资源。
?
对Servlet的更多了解可以参考http://www.ibm.com/developerworks/cn/java/j-lo-servlet/