简单完整讲述Servlet生命周期

Servlet生命周期过程

详解:

1.加载web.xml文件——当前只去解析xml文件,知道servlet的存在,此时还没有去创建servlet。

<!-- 声明servlet -->
	<servlet>
	<!-- servlet的别名 -->
		<servlet-name>first</servlet-name>
		<servlet-class>com.etime.servlet.FirstServlet</servlet-class>
	</servlet>
	
	<!-- 将servlet与URL绑定 -->
	
	<!-- servlet映射部分 -->
	<servlet-mapping>
		<servlet-name>first</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>

2.创建构造函数——通过构造函数创建servlet对象
在第一次访问servlet对应的URL时,执行FirstServlet构造函数,对servlet对象进行创建。

	public FirstServlet() {
		System.out.println("正在创建servlet对象");
	}

3.调用init方法——通过init方法初始化servlet

	@Override
	public void init(ServletConfig config) throws ServletException {
		System.out.println("正在初始化servlet对象");
	}

4.访问URL需要servlet提供服务,执行servlet方法——通过service或者doGet、doPost提供服务

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//请求发来的参数
		String name = request.getParameter("name");
		//从前台发来的参数放在这个字符串里
		String html = "<h1 style = 'color:orange'>hello!"+name+"!</h1><hr>";
		System.out.println("返回浏览器的响应数据为:"+html);//这一步是为了更明了的显示运行步骤
		//服务器向浏览器返回的输出流
		PrintWriter out = response.getWriter();
		//通过out对象将html发送回浏览器
		out.println(html);

5.销毁方法——在重启或关闭时自动对servlet进行销毁

	@Override
	public void destroy() { 
		System.out.println("正在销毁servlet对象");
	}

总结:

完整的servlet生命周期流程:
1.加载web.xml文件。
2.通过构造函数创建servlet对象。
3.通过init方法初始化servlet。
4.通过service,或者doGet、doPost提供服务。
5.在重启或关闭时自动对servlet进行销毁。

注意:通过这个例子我们可以知道tomcat全局中有且只有一个servlet对象,当一个servlet被访问时,之后的所有请求都被这一个servlet进行处理。

如图所示:
步骤2、3、4效果图
当再次访问浏览器时,步骤2、3就不再执行了,直接执行第四步service方法。

在这里插入图片描述

service提供的效果如下:

在这里插入图片描述

修改代码后tomcat会自动的重启,对修改后的servlet进行重新加载,所以在重启的时候会自动进行destroy方法

在这里插入图片描述

  • 54
    点赞
  • 238
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值