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

相关推荐
不剪发的Tony老师2 小时前
Apache Hop:开源版本的Kettle
数据仓库·etl
知初~7 小时前
出行项目案例
hive·hadoop·redis·sql·mysql·spark·database
m0_7482359511 小时前
Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider
hadoop·python·flask
B站计算机毕业设计超人1 天前
计算机毕业设计hadoop+spark旅游景点推荐 旅游推荐系统 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计
大数据·hadoop·爬虫·深度学习·机器学习·数据可视化·推荐算法
专注API从业者1 天前
分布式电商系统中的API网关架构设计
大数据·数据仓库·分布式·架构
我要用代码向我喜欢的女孩表白2 天前
hive迁移补数脚本细粒度 表名-分区唯一键
数据仓库·hive·hadoop
隔壁老登2 天前
查询hive指定数据库下所有表的建表语句并生成数据字典
数据库·hive·hadoop
m0_748233643 天前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
薇晶晶3 天前
如何安装Hadoop
大数据·hadoop·分布式
人类群星闪耀时3 天前
数据湖与数据仓库:初学者的指南
大数据·数据仓库·spark