Servlet入门 Servlet生命周期 Servlet体系结构

一.Servlet入门

1.Servlet介绍

Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,是sun公司提供一套定义动态资源规范; 从代码层面上来讲Servlet就是一个接口

狭义的Servlet是指Java语言编写的一个接口。

广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet作用:用来接收和处理客户端请求、响应给浏览器的动态资源。

2.Servlet快速入门

编写步骤:

  • 创建类,实现接口Servlet
  • 重写抽象方法,5个 (关注一个方法 service )
  • 编写web.xml核心配置文件
  • 通过浏览器访问

创建类,实现接口Servlet

注意:在此步骤需要依赖servlet-api.jar,按下面步骤导入,

File--->Project Structure

重写抽象方法,5个 (关注一个方法 service )

编写web.xml核心配置文件

通过浏览器访问

3.servlet程序执行原理

  • tomcat开始运行,会加载web项目里面的配置文件web.xml
  • 通过浏览器发送请求,请求首先到达Tomcat服务器
  • 由服务器解析请求URL,然后在部署的应用列表中找到我们的应用。
  • 在应用中找应用里的web.xml配置文件,
  • 在web.xml中找到QuickStartServlet的配置,找到后执行service方法
  • 最后由QuickStartServlet响应客户浏览器

4.Servlet生命周期

Servlet对象从生到死的过程(生命周期),即:出生------活着------死亡。用更偏向 于开发的官方说法就是对象创建到销毁的过程。

Servlet从创建到销毁的过程:

  • 出生:(初始化)用户第一次访问时执行。
  • 活着:(服务)应用活着。每次访问都会执行。
  • 死亡:(销毁)应用卸载。

Servlet生命周期方法:

1. init(ServletConfig servletConfig)

Servlet被创建的时候:执行init方法,只执行一次

Servlet什么时候被创建?

A.默认情况下,第一次被访问时,Servlet被创建

B.可以配置执行Servlet的创建时机:在<servlet>标签下配置

第一次被访问时,创建 <load-on-startup>的值为负数

在服务器启动时,创建 <load-on-startup>的值为0或

正整数

<servlet>

<servlet-name>life</servlet-name>

<servlet-

class>com.lzw.servlet.LifeServlet</servlet-

class>

<load-on-startup>2</load-on-startup>

</servlet>

Servlet的init方法,只执行一次,说明一个Servlet在内存中

只存在一个对像。Servlet是单例的

多个用户同时访问时,可能存在线程安全问题。

解决:尽量不要在Servlet中定义成员变量。即使定义了成员变

量,也不要对修改值

2.service(request,response)

提供服务:执行service方法,执行多次

每次访问Servlet时,Service方法都会被调用一次。

3.destroy()

被销毁:执行destroy方法,只执行一次Servlet被销毁时执行。

服务器关闭时,Servlet被销毁只有服务器正常关闭时,才会执行destroy方法。

destroy方法在Servlet被销毁之前执行,一般用于释放资源

4.其他方法

public ServletConfig getServletConfig()获取ServletConfig对象。

ServletConfig:Servlet的配置对象

public String getServletInfo()

获取Servlet的一些信息,版本,作者等等

5 Servlet体系结构

GenericServlet抽象类:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象。

将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可。

HttpServlet

HttpServlet是一个与HTTP协议相关的Servlet,专门用来

处理HTTP协议的请求响应。

  • 在HttpServlet类的service方法内部,根据HTTP协议请求方式不同,执行不同的doXXX的方法(get请求执行doGet方法,如果是post请求就会执行doPost方法)。
  • 继承了HttpServlet之后不需要重写service方法,只需要重写doGet和doPost方法即可。

二.案例 注册

1 案例需求

在注册的页面中输入用户数据,点击注册按钮完成用户注册。

2 实现步骤

  • 创建数据库表
  • 创建WEB项目
  1. 添加必要的jar,配置文件,工具类,JavaBean(User类)
  2. 创建自己的包
  • 编写页面
  • 编写服务器Servlet

3 代码实现

1 数据库SQL语句

CREATE TABLE tb_user(

id int primary key auto_increment,

username VARCHAR(32),

password VARCHAR(32),

nickname varchar(32),

age int

);

2 JavaBean类

3 html页面

相关推荐
jjjava2.011 小时前
SpringMVC入门指南:从零掌握核心要点
数据仓库·hive·hadoop
Jay_Franklin12 小时前
Python 数据处理工作流:marimo、PyCharm 与数据存储
开发语言·数据仓库·ide·python·pycharm·数据分析·开源
ljs6482739511 天前
Hadoop集群部署常见问题
大数据·hadoop·分布式
TTBIGDATA2 天前
【Ambari Plus】14.Hue 安装
大数据·hadoop·ambari·hdp·hue·cdh·bigtop
RestCloud2 天前
借助ETL工具,实现AI智能体+数据的落地
数据仓库·人工智能·sql·etl·etlcloud·数据集成平台·java脚本
AllData公司负责人2 天前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2501_942389552 天前
特斯拉的车辆摄像头每四天为AI训练集采集的数据量
人工智能·hadoop·zookeeper·oracle·时序数据库·memcache
AllData公司负责人2 天前
数据同步平台|AIIData数据中台实现MySQL、Hive、Kafka 一键接入Doris
大数据·数据库·hive·mysql·kafka·实时同步
RestCloud2 天前
2026数据集成工具最新选型建议:ETL/ELT怎么选,都应该带有什么功能
数据仓库·etl·etlcloud·数据传输·数据同步·数据集成工具·elt
牛奶咖啡132 天前
大数据Hadoop运维应用实践——Hadoop大数据平台基础与架构(hadoop伪分布式的安装部署)
大数据·hadoop·分布式·hadoop是什么?有啥用?·hadoop的适用与不适用场景·hadoop伪分布式的安装部署·hadoop分布式存储操作