<分区>
下午好。
为什么 HTTPservlet 的生命周期可以由 WEB 容器管理?
WEB 服务器(例如 Apache Tomcat)能够捕获来自客户端的 HTTP 请求,处理并回复 HTTP 响应; servlet 需要一个 web 容器(例如 Apache Tomcat),因为它没有 main,因此我们可以将 servlet 引擎视为初始化 servlet(简而言之)的 “main”。
好!现在我不明白为什么这件事是可能的。当客户端发送 HTTP 请求时,如果这是该 servlet 的第一次调用,Web 容器将调用 init()。然后,它允许调用 doGet、doPost(和其他方法)。最后,servlet 被销毁[destroy()]。但是 Web 容器是如何做到这一点的呢? servlet 引擎内部发生了什么?
****************************************EDIT*******************************************
我的问题讲的是为什么servlet引擎可以管理servlet的周期。答案真的很简单。 servlet 引擎可以管理 servlet 的循环(因此它可以自动调用 create()、service() 和 destroy() 方法),因为 servlet 有一个公共(public)接口(interface),javax.Servlet.servlet。 此接口(interface)声明具有语义、准确含义的方法:
create() is used just to create servlet
service() is used to handle HTTP methods
destroy() is used to delete the servlet
程序员可以覆盖这些方法,但他们必须尊重方法的语义。