Servlet的三种实现类型
1、实现servlet接口 (该方式支持最大程度的自定义)
servlet是一个接口,其中有很多种方法,如:init()、service()、destroy()等
先写一个java类,继承servlet接口,重写未实现的方法。其中最关键的是service()方法,之后还需配置web.xml文件,如下:
public class Servlet1 implement Servlet{
@Override
public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException {
System.out.println("这是service方法");
res.getWrite().write("Hello World");
}
}
2、继承GenericServlet类,实现javax.servet.GenericServlet类(必须重写 service 方法,其他方法可选择重写。该方式让我们开发 Servlet 变得简单。 但是这种方式和 HTTP 协议无关。)
public class Servlet1 extend GenericServlet{
public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException {
System.out.println("Servlet1");
}
}
3、HTTPServlrt类 (需要重写 doGet 和 doPost 方法。该方式表示请求和响应都需要和 HTTP 协议相关。)
是GenericServlet的实现类,它可以使用Servlet和GenericServlet类的所有方法(私有方法除外),
使用方法:创建一个类,继承Httpservlet类,它本身也有很多方法:doGet、doPost、doPut、doDelete等,主要是重写doGet,doPost方法。
public class Servlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("第三种实现方式");
}
}
Servlet 生命周期
对象的生命周期,就是对象从出生到死亡的过程。即:出生 -> 活着 -> 死亡。官方说法是对象创建到销毁的过程!
出生:请求第一次到达 Servlet 时,对象就创建出来,并且初始化成功。只出生一次,将对象放到内存中。
活着:服务器提供服务的整个过程中,该对象一直存在,每次都是执行 service 方法。
死亡:当服务停止时,或者服务器宕机时,对象死亡。
结论:Servlet 对象只会创建一次,销毁一次。所以 Servlet 对象只有一个实例。如果一个对象实例在应用中是唯一的 存在,那么我们就称它为单例模式。