Servlet有一个生命周期来定义Servlet是如何加载,如何初始化,如何接收和响应请求的,以及如何进行服务的.在代码中,Servlet的生命周期由javax.servlet.Servlet接口定义, 所有的Servlet都必须直接或者间接的实现javax.servlet.Servlet接口,以便它们可以在servlet 引擎中运行.servlet 引擎提供网络服务,可理解MIME请求,以及运行Servlet容器.
(1):加载,加载 或发生在servlet引擎启动时,或发生当需要响应一个请求时,或者在这两者之间.
(2):初始化,加载完成后,servlet就会被初始化.在初始化期间,servlet可以去读取它所储存的数据,或者初始化数据库连接,或者去引用其他的资源.初始化期间,javax.servlet.Servlet接口的init()方法提供初始化信息,这样servlet可以去配置其本身.The init method takes a servlet configuration object (of type ServletConfig) as
a parameter. The servlet configuration object is implemented in the servlet engine
and allows the servlet to access name-value parameters from the engine’s
configuration information. The servlet configuration object also gives the servlet
access to a servlet context object, of type ServletContext.
(3):Servlet处理请求:servlet初始化后,就可以处理来自客户的请求.用户的请求以ServletRequest的形式封装起来,响应用户请求的信息以ServletResponse封装.当客户传入以个请求时,Servlet引擎将把servlet请求和servlet响应一同传递给servlet的service方法,作为service方法的参数.The servlet can also implement the ServletRequest or ServletResponseinterfaces, or both. The ServletRequest interface gives the servlet access to the
request parameters the client sends, such as form data, request information, and
protocol methods. The servlet can read the request data from an input stream object
(of type ServletInputStream).The ServletResponse interface allows the servlet to set response headers and
status codes. By implementing ServletResponse, the servlet has access to an
output stream object (of type ServletOutputStream) that it can use to return data
to the client..
(4):多线程和映射:在多线程的环境,很多servlet都要去处理多个并发的请求,只有一个例外:就是实现了SingleThreadModel的Servlet,这样的servlet只处理单一的请求.A servlet responds to a client request according to the servlet engine’s mapping. Amapping pairs a servlet instance with an URL to which the servlet returns data, forexample, HelloServlet with /hello/index.html.
(5):servlet的销毁:servlet可以由servlet引擎在任何时候销毁.使用destroy方法.
关于Servlet的生命周期
最新推荐文章于 2022-02-09 16:45:18 发布