servlet学习_days_03

servlet生命周期

加载----->创建----->执行----->销毁

①servlet():

  • 当Web-Client访问时,创建servlet对象。

②init():

  • 在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。

③service():

  • 它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。
  • 请求到了的时候,tomcat会执行service() 方法来判断请求的方式(doGet还是doPost)。所以每一次请求过来的时候都会调用一次service() 方法。

④destory():

  • 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

创建servlet对象的时机

  1. Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。

  2. 在Servlet容器启动后:Web-Client首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据Web-Client的请求创建HttpRequest、HttpResponse对象,从而调用Servlet对象的service方法。

    这里要注意:当请求第一次抵达时,创建一个servlet对象,当请求第二次抵达时,由于之前已经创建了对象,就不会再创建了。(只会创建一个servlet,然后所有走该路径的请求都会使用这一个servlet对象

  3. Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。

<servlet>
    <servlet-name>register</servlet-name>
    <servlet-class>控制器.注册控制器</servlet-class>
    <
    <load-on-startup>1</load-on-startup>		//启动Tomcat的时候直接创建这个servlet
</servlet>
    <servlet-mapping>
        <servlet-name>register</servlet-name>
        <url-pattern>/register.do</url-pattern>
    </servlet-mapping>

这里给大家推荐一下大神的文章,以供参考。大神文章…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值