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页面

相关推荐
村口蹲点的阿三6 小时前
Spark SQL 中对 Map 类型的操作函数
javascript·数据库·hive·sql·spark
重生之Java再爱我一次8 小时前
Hadoop集群搭建
大数据·hadoop·分布式
中东大鹅9 小时前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb
狮歌~资深攻城狮11 小时前
TiDB出现后,大数据技术的未来方向
数据库·数据仓库·分布式·数据分析·tidb
狮歌~资深攻城狮11 小时前
TiDB 和信创:如何推动国产化数据库的发展?
数据库·数据仓库·分布式·数据分析·tidb
雪芽蓝域zzs12 小时前
JavaWeb开发(十五)实战-生鲜后台管理系统(二)注册、登录、记住密码
数据仓库·hive·hadoop
Denodo13 小时前
10倍数据交付提升 | 通过逻辑数据仓库和数据编织高效管理和利用大数据
大数据·数据库·数据仓库·人工智能·数据挖掘·数据分析·数据编织
狮歌~资深攻城狮14 小时前
TiDB 的优势与劣势
数据仓库·数据分析·tidb
狮歌~资深攻城狮14 小时前
TiDB与Oracle:数据库之争,谁能更胜一筹?
数据库·数据仓库·分布式·数据分析·tidb
想做富婆16 小时前
Hive: Hive的优缺点,使用方式,判断Hive是否启动(jps),元数据的存储,Hive和Hadoop的关系
数据仓库·hive·hadoop