Java Servlet的生命周期及其方法
我知道servlet由Java Servlet的生命周期及其方法,java,servlets,lifecycle,Java,Servlets,Lifecycle,我知道servlet由init、service和destroy方法组成。我还知道有可用的doPost和doGet方法。问题是service方法与doPost和doGet方法的关系。在识别请求后,是否从服务方法中调用它们?在实施do方法时是否省略服务?我需要澄清一下 例如,在一个接收单个POST请求的Servlet的生命周期中,我会猜其顺序是: 执行init() 当init()完成时,调用service() service()识别请求并调用doPost()方法 当doPost()和service
init
、service
和destroy
方法组成。我还知道有可用的doPost
和doGet
方法。问题是service
方法与doPost
和doGet
方法的关系。在识别请求
后,是否从服务
方法中调用它们?在实施do
方法时是否省略服务
?我需要澄清一下
例如,在一个接收单个POST
请求的Servlet
的生命周期中,我会猜其顺序是:
- 执行
init()
- 当
完成时,调用init()
service()
识别service()
并调用请求
方法doPost()
- 当
和doPost()
完成时,执行service()
方法destroy()
init()
和destroy()
只调用一次。servlet由容器实例化,并调用其init()
方法。这通常发生在启动时,或者当servlet的第一个请求出现时
然后,所有的请求都由service()
方法处理,该方法根据请求类型()调用相应的doXxx()
方法
然后,当应用程序取消部署(或服务器停止)时,调用destroy()
方法
javadoc是你的朋友。读一下。它包含对您的问题的所有答案。这些规范也可以免费获得。从文档中可以看出,
服务负责根据名为(POST,GET…)的HTTP方法,向相关的servlet方法进行调度
从公共服务方法接收标准HTTP请求,并
将它们分派给此类中定义的doXXX方法。这
方法是的HTTP特定版本
service(javax.Servlet.ServletRequest,
servlet.ServletResponse)方法。没有必要重写
这个方法
这是基本流程,
-servlet是通过调用init()方法初始化的
- servlet调用service()方法来处理客户机的请求
- 服务方法根据请求调用doGet或doPost
如果get请求来自doGet,则类型来自客户端
调用post请求doPost
- 通过调用destroy()方法终止servlet
- 最后,servlet由服务器的垃圾收集器进行垃圾收集
JVM
service()方法是执行实际任务的主要方法。servlet容器(即web服务器)调用service()方法来处理来自客户端(浏览器)的请求,并将格式化响应写回客户端
每次服务器收到servlet请求时,服务器都会生成一个新线程并调用服务。service()方法检查HTTP请求类型(GET、POST、PUT、DELETE等),并根据需要调用doGet、doPost、doPut、doDelete等方法
Servlet生命周期