Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Servlet生命周期

Servlet生命周期

作者头像
星哥玩云
发布于 2022-09-14 12:53:33
发布于 2022-09-14 12:53:33
21900
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

一、生命周期概述

所谓xxx的生命周期,就是说xxx的出生、服务,以及死亡。Servlet生命周期也是如此!与Servlet的生命周期相关的方法有:

​ void init(ServletConfig);

​ void service(ServletRequest,ServletResponse);

​ void destroy();

二、Servlet的出生

服务器会在Servlet第一次被访问时创建Servlet,或者是在服务器启动时创建Servlet。如果服务器启动时就创建Servlet,那么还需要在web.xml文件中配置。也就是说默认情况下,Servlet是在第一次被访问时由服务器创建的。

而且一个Servlet类型,服务器只创建一个实例对象,例如在我们首次访问http://localhost:8080/helloservlet/helloworld时,服务器通过“/helloworld”找到了绑定的Servlet名称为com.tyschollo.servlet.HelloServlet,然后服务器查看这个类型的Servlet是否已经创建过,如果没有创建过,那么服务器才会通过反射来创建HelloServlet的实例。当我们再次访问http://localhost:8080/helloservlet/helloworld时,服务器就不会再次创建HelloServlet实例了,而是直接使用上次创建的实例。

在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig)方法。请记住, Servlet出生后马上就会调用init()方法,而且一个Servlet的一生。这个方法只会被调用一次。这好比小孩子出生后马上就要去剪脐带一样,而且剪脐带一生只有一次。

我们可以把一些对Servlet的初始化工作放到init方法中!

三、Servlet服务

当服务器每次接收到请求时,都会去调用Servlet的service()方法来处理请求。服务器接收到一次请求,就会调用service() 方法一次,所以service()方法是会被调用多次的。正因为如此,所以我们才需要把处理请求的代码写到service()方法中!

四、Servlet的离去

Servlet是不会轻易离去的,通常都是在服务器关闭时Servlet才会离去!在服务器被关闭时,服务器会去销毁Servlet,在销毁Servlet之前服务器会先去调用Servlet的destroy()方法,我们可以把Servlet的临终遗言放到destroy()方法中,例如对某些资源的释放等代码放到destroy()方法中。

五、测试生命周期方法

修改HelloServlet如下,然后再去访问http://localhost:8080/helloservlet/helloworld

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.tyschool.servlet.demo;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HelloServlet implements Servlet {
	public void init(ServletConfig config) throws ServletException {
		System.out.println("Servlet被创建了!");
	}
	public ServletConfig getServletConfig() {return null;}
	public void destroy() {
		System.out.println("Servlet要离去了!");
	}
	public String getServletInfo() {return null;}

	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		System.out.println("hello servlet!");
	}
}

说明:在首次访问HelloServlet时,init方法会被执行,而且也会执行service方法。再次访问时,只会执行service方法,不再执行init方法。在关闭Tomcat时会调用destroy方法。

测试步骤

​需求:使用Eclipse来创建一个helloservlet项目

A、在Eclipse中创建helloservlet Web项目

B、在项目中创建包

C、在包中创建Servlet

d、手动导入tomcat运行环境

e、把项目部署到server中

f、浏览器测试

补充:用实现Servlet接口的方式创建Servlet

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Servlet生命周期
Servlet生命周期 先创建一个简单的项目 目录结构如下: 创建HelloServlet类,实现Servlet接口 为了方便演示,这里对每个方法进行了打印操作。 package com.zhen
手撕代码八百里
2020/07/28
3420
Servlet生命周期
servlet反射、生命周期、接口
Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:
eadela
2019/09/29
3800
servlet反射、生命周期、接口
JavaWeb day6 Servlet快速入门 学习和编写Servlet程序及模拟Servlet生命周期
介绍完Servlet是什么以后,接下来我们就按照快速入门->执行流程->生命周期->体系结构->urlPattern配置->XML配置的学习步骤,一步步完成对Servlet的知识学习,首选我们来通过一个入门案例来快速把Servlet用起来。
小小程序员
2023/02/18
7120
JavaWeb day6 Servlet快速入门 学习和编写Servlet程序及模拟Servlet生命周期
Java Web Servlet (Part A)- Servlet & HttpServlet
Servlet是JavaEE规范的一种,主要是为了扩展Java作为Web服务的功能,统一接口。由其他内部厂商如tomcat,jetty内部实现web的功能。如一个http请求到来,容器将请求封装为servlet中的HttpServletRequest对象,调用init(),service()等方法输出response,由容器包装为httpresponse返回给客户端的过程。
RiemannHypothesis
2022/09/26
6600
Java Web Servlet (Part A)- Servlet & HttpServlet
Servlet 详解
1、什么是 Servlet? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程
IT可乐
2018/01/04
1.2K0
Servlet 详解
Java Servlet详解(体系结构+注解配置+生命周期)
顾名思义:服务端的小程序 Servlet只是一个接口,定义了Java被浏览器访问到(Tomcat)的识别规则,我们需要定义一个类来实现Servlet接口
一只胡说八道的猴子
2020/09/27
5080
Java Servlet详解(体系结构+注解配置+生命周期)
八、 Servlet生命周期和特性
当用户第一次访问Servlet时,由容器调用Servlet的构造器创建具体的Servlet对象。也可以在容器启动之后立刻创建实例。使用如下代码可以设置Servlet是否在服务器启动时就创建。
Qwe7
2022/07/24
2190
第71节:Java中HTTP和Servlet
什么是协议,就是规则,规范,用于双方在交互,通讯的时候遵循的一种规范,规则.而http协议是对网络上的客户端和服务端在执行http请求的时候遵循的一种规范,其实就是规定了客户端在访问服务器端的时候,要带上一些东西,服务端返回数据的时候,也要带点东西,礼尚往来嘛!!!
达达前端
2019/07/03
5510
第71节:Java中HTTP和Servlet
Servlet的生命周期
HttpServletservice()http methodservletdoXXX
高大北
2022/06/14
1810
Servlet 学习笔记
Servlet 运行在服务器上的 java 类; Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据。 现在我们知道了 Servlet 是运行在服务器上的 Java 类,那么什么是服务器?我们平常最常用的服务器都有哪些呢?   服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应;   最常用的Web服务器是Apache和Microsoft的Internet信息服务器。 对于现在大多
bgZyy
2018/05/16
6700
Java随记 —— Servlet 教程笔记
Servlet – 接口 ↓ GenericServlet – 抽象类 ↓ HttpServlet – 抽象类
繁依Fanyi
2023/05/07
1860
Java随记 —— Servlet 教程笔记
JavaWeb入门之Servlet基础 1
首先来简单介绍一下Servlet,它是和平台无关的服务器端组件,运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应的模式”。
黄桂期
2018/05/13
9821
Servlet技术
1、Servlet 是 JavaEE 规范之一。规范就是接口 2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。 3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
愷龍
2022/09/26
2340
Servlet技术
javaweb之Filter生命周期和FilterConfig
我们前面学习过Servlet的生命周期,同样FilterConfig的生命周期也差不多。这篇来学习Filter的生命周期和FilterConfig这两个知识点。
凯哥Java
2019/08/07
3520
javaweb之Filter生命周期和FilterConfig
6. Servlet入门 - Servlet概述
Servlet 运行在服务端(tomcat) 的Java小程序,是sun公司提供一套规范. 就是动态资源
Devops海洋的渔夫
2022/01/14
3.2K0
6. Servlet入门 - Servlet概述
JavaWeb第一讲 Servlet的工作原理及生命周期
由上图可以看出,在Tomcat下有一个Container容器,这个容器有什么作用?它装载了我们所有的JavaWeb项目,当我们每创建一个JavaWeb项目,Tomcat就会把它“装进”Container容器里。而在这个大容器下,它又“装载着”Servlet容器,可是它是我们今天的主角吗?依然不是。
易兮科技
2020/09/26
8730
Web---演示servlet技术(servlet生命周期),解决中文乱码问题
本节讲解决中文乱码问题的4种方法。 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学。
谙忆
2021/01/21
4940
Web---演示servlet技术(servlet生命周期),解决中文乱码问题
解读 Servlet 源码:GenericServlet,ServletConfig,ServletContext
Servlet 必须重写的五方法分别为:init(),service(ServletRequest request, ServletResponse response),getServletConfig(),getServletInfo(),destroy(),还有一个无参构造器 什么时候创建的,什么时候调用的,什么时候销毁的。
RainbowSea
2023/03/20
7670
Servlet的生命周期和使用
当浏览器请求服务器对应服务时,服务器会根据请求url查找是否创建了对应url的servlet;如果已经创建则直接调用对应的service方法进行服务的处理,如果没有创建,则会创建对应的servlet并调用对应servlet的init方法进行servlet的初始化工作,之后继续调用service方法进行服务的处理,当服务器正常关闭时,在销毁删除servlet对象之前,会调用对应servlet的destory方法,进行资源释放或关闭执行功能的执行
张哥编程
2024/12/13
1700
Tomcat与Servlet——浅入
本篇文章整理自我的CSDN,是我以前学习的时候总结的,当时使用的IDE是MyEclipse,内容没什么问题,可能过于书面化,等我整理完毕我的CSDN相关内容后,会开始更新进阶内容。
东边的大西瓜
2022/05/05
6050
Tomcat与Servlet——浅入
相关推荐
Servlet生命周期
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验