java servlet 教程_重学Java - Servlet 简明教程

引言

本篇博文为 Servlet 技术的常见概念及相关细节梳理,意在重学 Java 查漏补缺。

博文随时会进行更新,补充新的内容并修正错漏,该系列博文旨在帮助自己巩固扎实 Java 技能。

毕竟万丈高楼,基础为重,借此督促自己时常温习回顾。

一、概念

Servlet 是 JavaEE 规范之一(接口)

Servlet 是 JavaWeb 三大组件之一

Servlet 程序

Filter 过滤器

Listener 监听器

Servlet 是运行在服务器上的一个 Java 程序,它可以接收客户端发来的请求并响应数据给客户端

二、实现 Servlet 程序

2.1、实现 Servlet 接口

编写一个实现 Servlet 接口的类

实现 service 方法,处理请求并响应数据

web.xml 配置 Servlet 程序的访问地址

df6bbfdcc9fcb656c1b74daae6995ae9.png

2.2、继承 HttpServlet

编写类,继承 HttpServlet

重写 doGet 或 doPost 方法

web.xml 配置 Servlet 程序的访问地址

三、生命周期

第一次访问,创建 Servlet 程序时创建

执行 Servlet 构造器方法

执行 init 初始化方法

每次访问时调用

执行 service 方法

web 工程停止时调用

执行 destroy 销毁方法

四、继承体系

f70155309a07d66756ca8211718c5d05.png

五、常用类/接口

5.1、ServletConfig

Servlet 程序的配置信息类

Servlet 程序和 ServletConfig 对象均由 Tomcat 负责创建

Servlet 程序默认为第一次访问时创建,每个 Servlet 程序创建时便创建一个对应的 ServletConfig 对象传递给 init 方法

常用方法:

String getServletName();

获取 Servlet 程序别名 的值

String getInitParameter(String val1);

获取初始化参数 init-param

ServletContext getServletContext();

获取 ServletContext 对象

5.2、ServletContext

ServletContext 为一个接口,表示 Servlet 上下文对象

一个 web 工程只有一个 ServletContext 对象实例

ServletContext 对象是一个域对象

ServletContext 在 web 工程部署启动时创建,在 web 工程停止时销毁

865630be7b1ac23e0d773fff55647662.png

5.3、HttpServletRequest

只要有请求进入 Tomcat 服务器,Tomcat 便会将请求携带的 HTTP 协议信息进行解析并封装到 Request 对象中,传递给 service 方法(doGet 或 doPost)

可以通过 HttpServletRequest 对象获取到所有请求的信息

常用方法:

getRequestURI()

获取请求的资源路径

getRequestURL()

获取请求的统一资源定位符(绝对路径)

getRemoteHost()

获取客户端的 IP

getHeader(String val1)

获取请求头

getParameter()

获取请求参数

getParameterValues()

获取请求参数(多个值时使用 checkbox)

在处理 POST 请求时

httpServletRequest.setCharacterEncoding("UTF-8");

设置请求体的字符集为 UTF-8 从而解决 POST 请求中文乱码问题

在获取请求参数之前调用才有效

getMethod()

获取请求方法

setAttribute(key, value)

设置域数据

getAttribute(key)

获取域数据

getRequestDispatcher()

获取请求转发对象

5.3.1、请求转发

711f80e914a90afed9a19177aa4f0445.png

5.4、HttpServletResponse

只有有请求进入 Tomcat 服务器,Tomcat 便会创建一个 Response 对象传递给 Servlet 程序

可以通过 HttpServletResponse 对象设置需要返回给客户端的信息

通过流将数据传递给客户端

9c0421e8e50e0b989238711587e97f20.png

六、HTTP 协议

客户端与服务端之间通信,数据传输需要遵守的规则

数据 -> 报文

客户端给服务端发送数据 -> 请求

服务端给客户端发送数据 -> 响应

6.1、GET 请求

796a3c2078ce1b348203f3693afa903d.png

6.2、POST 请求

7414ab8f26e7d8d2d9d994c487a3cbff.png

6.3、响应

3226f29c4cfcfba3f43bedf38ad3e2cd.png

6.3.1、常见响应码

响应码

英文含义

中文含义

200

OK

请求成功

301

Moved Permanently

所请求的页面已转移到一个新的 URL

302

Found

所请求的页面已临时转移到一个新的 URL

401

Unauthorized

所请求的页面需要认证登录

403

Forbidden

禁止访问所请求的页面

404

Not Found

服务器无法找到所请求的页面

405

Method Not Allowed

在请求中指定的方法时不允许的

500

Internal Server Error

未完成的请求,服务器遇到了一个意外的情况

502

Bad Gateway

未完成的请求,服务器从上游服务器收到无效响应

503

Service Unavailable

未完成的请求,服务器暂时超载或死机

504

Gateway Timeout

网关超时

6.3.2、常见 MIME 类型

MIME 即 HTTP 协议中的数据类型

全称:Multipurpose Internet Mail Extensions『多功能 Internet 邮件扩充服务』

格式为:『大类型/小类型』并与某一种文件的扩展名相对应

文件类型

扩展名

MIME 类型

超文本标记语言文本

.html

text/html

普通文本

.txt

text/plain

RTF 文本

.rtf

application/rtf

GIF 图形

.gif

image/gif

JPEG 图形

.jpeg, .jpg

image/jpeg

au 声音文件

.au

audio/basic

MIDI 音乐文件

.mid, .midi

audio/midi, audio/x-midi

RealAudio 音乐文件

.ra, .ram

audio/x-pn-realaudio

MPEG 文件

.mpg, .mpeg

video/mpeg

AVI 文件

.avi

video/x-msvideo

GZIP 文件

.gz

application/x-gzip

TAR 文件

.tar

application/x-tar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值