Servlet实现方式及其生命周期

在Servlet开发中,实现servlet有三种方式:1.实现javax.servlet.Servlet接口  2.继承javax.servlet.GenericServlet   3.继承javax.servlet.HttpServlet,其层次关系为:

一、servlet接口如下所示:

package javax.servlet;
public interface Servlet  {    
    void init(javax.servlet.ServletConfig servletConfig) throws javax.servlet.ServletException;    
    javax.servlet.ServletConfig getServletConfig();    
    void service(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse) throws javax.servlet.ServletException, java.io.IOException;    
    java.lang.String getServletInfo();    
    void destroy();
}

其主要方法描述如下:

init:在servlet加载并实例化后首先调用,在servlet生命期间仅仅调用一次,所以我们可以再其中做一些初始化的工作,例如加载数据库驱动等操作

另外如果我们的servlet采用的是直接实现javax.servelet.Servlet接口的话,则需要定义一个变量来保存ServletConfig,以便在getServletConfig中使用

service: 每次浏览器调用服务的响应方法,一次调用执行一次,我们主要响应业务都在其中实现

destroy:在web服务器关闭或者重新加载web应用的时候才执行一次,用以释放一些相关资源,也是在其生命周期仅仅执行一次

getServletConfig:返回在init方法中保存的servletConfig变量


二 、GenericServlet类实现了javax.servlet.Servlet接口,实现了一些常用的功能,如上面提到在init方法中保存ServletConfig变量及在getServletConfig方法中返回等,如果我们从GenericServlet继承的话,仅仅需要重载其service方法

另外如果重载init做一些初始化的操作,则必须调用基类的init(super.init(serviceConfig);),否则不会保存servletConfig,在调用getServletConfig的时候返回null

三、HttpServlet根据http请求特点细化了service操作,也就是说在service方法中会根据http请求类型(get,post等)分别调用doGet,doPost等方法

另外同二如果我们重载init,一定要调用super.init


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值