Servlet 之 三种创建方式(一)

Servlet 是什么不多说,直接本主题。

Servlet的生命周期:从Servlet被创建到Servlet被销毁的过程
一次创建,到处服务
一个Servlet只会有一个对象,服务所有的请求,每个请求来,就开启一个线程进行处理
  • 1.实例化(使用构造方法创建对象)
  • 2.初始化 执行init方法(整个生命周期中只执行一次)
  • 3.服务 执行service方法
  • 4.销毁 执行destroy方法

实例化和执行init方法,什么时候执行呢?是在Tomcat装载Servlet的时候才执行的,先实例化,再初始化
你想想,他就是一个类,他不实例化,怎么干事情?吹牛吗?所以,最先实例化。

那么Tomcat又什么时候装载Servlet呢?怎么装载呢?不知道,不知道就对了。
Tomcat装载Servlet有三种情况:
1、在你的web.xml配置文件中(你项目的哈,不是tomcat人家的,不关人家的事),web.xml文件中的之间添加如下代码

<loadon-startup>1</loadon-startup>

数字越小,优先级越高,加了这个配置,你的那个servlet在项目一启动的时候就会去执行实例化和初始化方法。
2、第一次客户端来访问的时候。
3、Servlet类文件被更新后,重新装载Servlet。

现在进入主题
Servlet 创建有三种方式。

一、实现 Servlet 接口

因为是实现 Servlet 接口,所以我们需要实现接口里的方法

Servlet 的执行过程,也就是 Servlet 的生命周期。


public class ServletDemo1 implements Servlet {
	
	//1、这个就是实例化,一般我们不写,为啥,空的构造方法自然可以不写咯0.0
	    //public ServletDemo1(){}

     //2、生命周期方法:当Servlet第一次被创建对象时执行该方法,该方法在整个生命周期中只执行一次
    public void init(ServletConfig arg0) throws ServletException {
                System.out.println("=======init=========");
        }

    //生命周期方法:对客户端响应的方法,该方法会被执行多次,每次请求该servlet都会执行该方法
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        System.out.println("hehe");

    }

    //生命周期方法:当Servlet被销毁时执行该方法
    public void destroy() {
        System.out.println("******destroy**********");
    }
//当停止tomcat时也就销毁的servlet。
    public ServletConfig getServletConfig() {

        return null;
    }

    public String getServletInfo() {

        return null;
    }
}

二、继承 GenericServlet 类

实现了 Servlet 接口除了 service 的方法,不过这种方法我们极少用

public class ServletDemo2 extends GenericServlet {
@Override
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        System.out.println("heihei");
	}
}

三、继承 HttpServlet 方法

public class ServletDemo3 extends HttpServlet {
 @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("haha");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("ee");
        doGet(req,resp);
    }
}

这种方法,也是我们经常用的方法。

这里只简单讲 Servlet 的三种创建方式,关于更详细的应用以及剖析以后再说。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值