概述
Servlet的生命周期分为四个部分:
一、创建Servlet实列对象(实例化)
在有一个请求请求当前Servlet时,如果该Servlet的实列对象不存在,则通过调用构方法,创建该Servlet的实列对象
二、初始化
通过第一步创建的实列对象,调用父类的init()方法,执行初始化的逻辑,我们也可重写父类的init()方法来实现我们自己的逻辑
三、服务
通过实例调用HttpServlet父类的service()方法
service()方法中,会根据请求的方式(get或post)的不同
调用子类重写的doGet()或doPost()方法
如果子类没有重写,则响应405
四、销毁
1.服务器重启
2.服务器关闭
3.超出过期时间
以上都会调用Servlet实例的destroy()
方法,使当前的Servlet销毁。
例:HomeSevlet
package com.wzb.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HomeServlet extends HttpServlet {
// 1.实列化
public HomeServlet() {
System.out.println("1.HomeServlet实例化");
}
// 2.初始化
// 重写HttpServlet父类的init()方法
@Override
public void init() throws ServletException {
System.out.println("2.HomeServlet初始化");
}
// 3.服务
// 通过实例调用HttpServlet父类的service()方法
// service()方法中,会根据请求的方式(get或post)的不同
// 调用子类重写的doGet()或doPost()方法
// 如果子类没有重写,则响应405
// 根据请求方式的不同,需要调用不同的请求方法
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("HomeServlet被请求到!");
}
// 4.销毁
@Override
public void destroy() {
System.out.println("4.HomeServlet实例被销毁");
}
}
会依次输出:
1.HomeServlet实列化
2.HomeServlet初始化
4.HomeServlet实例被销毁
最后
以上就是健忘蓝天为你收集整理的Java Servlet的生命周期的全部内容,希望文章能够帮你解决Java Servlet的生命周期所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复