首页
学习
活动
专区
圈层
工具
发布

SpringFramework之学习javax.servlet.Servlet

    注:在阅读下文前,建议先去查看JCP的Servlet规范。

1.先来看Servlet接口中定义的方法

                                                         图1 Servlet接口中定义的方法

    Servlet life cycle:每个Servlet都会经历初始化、接收请求、终止服务,分别对应Servlet的init方法、service方法、destroy方法。

  • init方法:Servlet容器在加载了Servlet之后,初始化Servlet时,会先调用init方法,每个Servlet的init方法只会被调用一次。传入到init方法的ServletConfig是个接口,通过ServletConfig可以获得ServletContext。要注意的是如果我们自己覆写了init方法,那么这个方法不能抛出异常,否则容器不会让这个Servlet提供服务。
  • service方法:容器每次接收到请求后,都会将请求封装为ServletRequest,调用Servlet的service方法,比如A、B俩个请求都转发到同一个Servlet,那么A、B俩个请求是由俩个线程来处理的。由于每次请求都会调用service方法,所以HttpServlet覆写了service方法,并根据Http的请求方法,分别调用不同的方法,比如doGet、doPost、doDelete方法等,doGet、doPost、doDelete方法是HttpServlet中新增的,Servlet中并没有这些方法。

    End of Service:每个Servlet,被容器初始化后,Servlet实例不一定会一直存在,比如容器有可能会过段时间后,关闭该Servlet实例。关闭Servlet实例时会调用destroy方法。如果容器又需要该Servlet实例时,那么此时容器需要新建一个Servlet实例。

(adsbygoogle = window.adsbygoogle || []).push({});

下一篇
举报
领券