java servlet 执行 多次_JavaWeb学习(12): servlet 的生命周期(执行流程)

Servlet 的执行流程:

加载 和 卸载 : Servlet 容器自动处理。

加载

初始化: init() 该方法会在 Servlet被加载并实例化的以后 执行

服务 :service() ->doGet() doPost

销毁 :destroy() Servlet被系统回收时执行

卸载

6d9291aa688fbd4de51a069a59403393.png

各个阶段的执行次数:

加载和卸载:Servlet 容器自动处理。

init: 默认第一次访问 Servlet 时会被执行(只执行这一次)。

可以修改为在启动服务器时就自动执行。

i.Servlet2.5: web.xml

...

1

其中的“1”代表第一个。

ii.Servlet3.0

@WebServlet( value="/WelcomeServlet" ,loadOnStartup=1 )

service:(主要是 doget() 方法 和 dopost() 方法)

doGet(): 主要处理 get 提交方式的请求。

doPost(): 主要处理 Post 提交方式的请求。

调用几次,执行几次。

destroy():

关闭 Tomcat 服务器时,执行一次。

效果展示:

默认第一次访问时调用 init() 方法:

323a61c92bbe7f7389cd39aa6af0beb7.png

修改后服务器启动时自动调用 init() 方法:

49efe9883166f5938b1abdb29b23cd96.png

Service 服务调用几次执行几次:

aff71b15ce47ccbf7eb92a99e40bc619.png

销毁时自动调用 destroy() 方法:

72048fbd7685ba019d6c1e8bb3a45240.png

代码展示(3.0):

index.jsp

pageEncoding="UTF-8"%>

Insert title here

WelcomeServlet

WelcomeServlet.java

package org.servlet3;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

// loadOnStartup = 1 : 修改为Tomcat服务器启动时自动调用 init() 方法

@WebServlet(value = "/WelcomeServlet" ,loadOnStartup=1)

public class WelcomeServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override

public void init() throws ServletException {

System.out.println("init...");

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("doGet...");

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("doPost...");

//doGet(request, response);

}

@Override

public void destroy() {

System.out.println("destroy...");

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值