【Java】Servlet API

news2024/11/15 18:38:38

Servlet API

  • HttpServlet
    • 核心方法
    • Servlet生命周期
  • HttpServletRequest
    • 核心方法
  • HttpServletResponse
    • 核心方法

HttpServlet

我们写 Servlet 代码的时候, 首先第一步就是先创建类, 继承自 HttpServlet, 并重写其中的某些方法.

核心方法

方法名称调用时机
init在 HttpServlet 实例化之后被调用一次
destory在 HttpServlet 实例不再使用的时候调用一次
service收到 HTTP 请求的时候调用
doGet收到 GET 请求的时候调用(由 service 方法调用)
doPost收到 POST 请求的时候调用(由 service 方法调用)
doPut/doDelete/doOptions/…收到其他请求的时候调用(由 service 方法调用)

我们实际开发的时候主要重写 doXXX 方法, 很少会重写 init / destory / service .

Servlet生命周期

在这里插入图片描述

webapp刚被加载的时候,调用servlet的init方法
每次收到请求的时候,调用service方法
webapp要结束的时候,调用destory方法

HttpServletRequest

当tomcat通过Socket API读取HTTP请求,并且按照HTTP协议的格式把字符串解析成HttpServletRequest对象

核心方法

方法描述
String getProtocol()返回请求协议的名称和版本。
String getMethod()返回请求的 HTTP 方法的名称,例如,GET、POST 或 PUT。
String getRequestURI()从协议名称直到 HTTP 请求的第一行的查询字符串中,返回该请求的 URL 的一部分。
String getContextPath()返回指示请求上下文的请求 URI 部分。
String getQueryString()返回包含在路径后的请求 URL 中的查询字符串。
Enumeration getParameterNames()返回一个 String 对象的枚举,包含在该请求中包含的参数的名称。
String getParameter(String name)以字符串形式返回请求参数的值,或者如果参数不存在则返回null。
String[] getParameterValues(String name)返回一个字符串对象的数组,包含所有给定的请求参数的值,如果参数不存在则返回 null。
Enumeration getHeaderNames()返回一个枚举,包含在该请求中包含的所有的头名。
String getHeader(String name)以字符串形式返回指定的请求头的值。
String getCharacterEncoding()返回请求主体中使用的字符编码的名称。
String getContentType()返回请求主体的 MIME 类型,如果不知道类型则返回 null。
int getContentLength()以字节为单位返回请求主体的长度,并提供输入流,或者如果长度未知则返回 -1。
InputStream getInputStream()用于读取请求的 body 内容. 返回一个 InputStream 对象.

通过这些方法可以获取到请求中的各种信息

请求对象是服务器收到的内容,不应该修改,因此上面的方法都是读方法而不是写方法

HttpServletResponse

Servlet中的doxxx方法的目的就是根据请求计算得到响应,然后把数据设置到HttpServletResponse对象中,tomcat会把这个HttpservletResponse对象按照Http请求协议的格式转换成一个字符串,通过Socket写会给服务器

核心方法

方法描述
void setStatus(int sc)为响应设置状态码
void setHeader(String name,String value)设置一个带有给定的名称和值的 header. 如果 name 已经存在,则覆盖旧的值
void addHeader(String name, String value )
void setContentType(String type)设置被发送到客户端的响应的内容类型。
void setCharacterEncoding(String charset)设置被发送到客户端的响应的字符编码(MIME 字符集)例如,UTF-8。
void sendRedirect(String location)使用指定的重定向位置 URL 发送临时重定向响应到客户端
PrintWriter getWriter()用于往 body 中写入文本格式数据
OutputStream getOutputStream()用于往 body 中写入二进制格式数据

响应对象是服务器要返回给浏览器的内容,这里的内容都是我们设置的,因此上面的方法都是写方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1033490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

李宏毅机器学习第一课

机器学习就是让机器找一个函数f,这个函数f是通过计算机找出来的 如果参数少的话,我们可以使用暴搜,但是如果参数特别多的话,我们就要使用Gradient Descent Regression (输出的是一个scalar数值) Classification (在…

美团2024届秋招笔试第一场编程[汇总](上课口胡一下)

一.小美的好矩阵 口胡:模拟题,数据和题意灰常清楚。 俩层循环枚举每个3﹡3的小矩阵,然后枚举每个小矩阵,12个if判断俩俩相邻的字符是否相等。这里有个技巧:拿出中间的字符,这样就能使用一个偏移…

基于紫光同创FPGA的图像采集及AI加速

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL50H开发平台(盘古50K开发板) 本篇优秀作品:2023集创赛全国总决赛紫光同…

Lua学习笔记:词法分析

前言 本篇在讲什么 Lua的词法分析 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠ 一级标题…

stm32之PWM呼吸灯

呼吸灯是灯从渐亮到渐灭周而复始形成的一个效果。由于51没有PWM所以需要定时器模拟PWM才能实现呼吸灯的效果,但是stm32的通用定时器是有PWM模式的,所以不需要再用软件模拟,精准度也高。 本实验用的基于stm32f103C8t6。在PB8引脚上接了一个le…

stm32之串口/蓝牙控制led灯

该文章记录学习stm32串口遇到的一些问题,完整代码地址。 一、项目描述 通过串口或蓝牙发送指令来控制led灯。 open ------> led 亮close ------> led 灭其它 -------> 反馈给串口或蓝牙错误指令 二、项目用到的模块 stm32 串口1,PA9(TX), PA10(RX)HC…

计算机组成与设计硬软件接口学习2

并行处理器:从客户端到云 任务级并行或进程级并行:通过同时运行独立的多个程序来使用多处理器 并行处理程序:同时在多个处理器上运行的单个程序 通过增加硬件的方式,将取指令和指令译码实现并行,一次性取出多条指令…

MQTT 协议概要

01 MQTT协议 MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的支持在各方之间异步通信的消息协议。MQTT在空间和时间上将消息发送者与接收者分离,因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输,但它与消息…

[RF学习记录][ssh library][execute Command】关键字的返回值

有时候需要判断通过ssh在远程机器上执行的命令是否正常,使用关键字Execute Command可以在远程机器上运行命令,但是默认不加任何参数的话,没有看到范返回值,而这个关键字是带了几个参数的,简单的试验了下这几个参数&…

点云从入门到精通技术详解100篇-单期点云的高斯曲率定位桥梁潜在损伤技术研究

目录 前言 国内外研究现状 三维激光扫描对桥梁损伤检测的研究现状 基于点云高斯曲率损伤检测的研究现状 柱体偏差检测技术研究现状 存在的问题 法向量约束高斯曲率的 TLS 桥面潜在损伤区域探测 2.1 高斯曲率探伤的基本理论 2.2 点云拓扑关系建立的方法比较 2.2.1 KD-…

机器学习第十三课--主成分分析PCA

一.高维数据 除了图片、文本数据,我们在实际工作中也会面临更多高维的数据。比如在评分卡模型构建过程中,我们通常会试着衍生出很多的特征,最后就得到上千维、甚至上完维特征;在广告点击率预测应用中,拥有几个亿特征也是常见的事…

【数学建模】2023华为杯研究生数学建模F题思路详解

强对流降水临近预报 我国地域辽阔,自然条件复杂,因此灾害性天气种类繁多,地区差异大。其中,雷雨大风、冰雹、龙卷、短时强降水等强对流天气是造成经济损失、危害生命安全最严重的一类灾害性天气[1]。以2022年为例,我国强对流天气引发风雹灾害造成的死亡失踪人数和直接经济…

git:一、GIT介绍+安装+全局配置+基础操作

版本管理系统(SVN和Git): 集中式版本控制系统(SVN) SVN是集中式版本控制系统,版本库是集中放在中央服务器的. 工作流程如下: 1.从中央服务器远程仓库下载代码 2.修改后将代码提交到中央服务器远程仓库…

基于微信小程序的电影院订票系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言运行环境说明用户微信小程序端的主要功能有:管理员的主要功能有:具体实现截图详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考论文参考源码获取 前言 💗博主介绍&…

原生js的animate()方法详解

1.介绍 Element 接口的 animate() 方法是创建一个新的 Animation 的便捷方法,将它应用于元素,然后运行动画。它将返回一个新建的 Animation 对象实例。 同时通过Element.getAnimations() 方法可获取元素所有的Animation实例。 2.语法 Element.animate…

读高性能MySQL(第4版)笔记14_备份与恢复(中)

1. 在线备份 2. 离线备份 2.1. 关闭MySQL做备份是最简单、最安全的 2.2. 所有获取一致性副本的方法中最好的 2.3. 损坏或不一致的风险最小 2.4. 根本不用关心InnoDB缓冲池中的脏页或其他缓存 2.5. 不需要担心数据在尝试备份的过程中被修改 2.5.1. 服务器不对应用提供访问…

Redis淘汰策略-架构案例2020(三十六)

上篇案例回顾: 解释器,管道过滤,隐式调用优缺点? 解释器 则是独立的语法规则,可以通过解释器来解析,可扩展性很高,灵活性强。 管道过滤则是侧重于数据的输入和输出,上一个模块的数…

stm32之看门狗

STM32 有两个看门狗,独立看门狗和窗口看门狗,独立看门狗又称宠物狗,窗 口看门狗又称警犬。可用来检测和解决由软件错误引起的故障。两个看门狗的原理都是当计数器达到给定的超时值时,产生系统复位,对于窗口型看门狗同…

2023.9.20 简单了解 HTTP协议 及 Fiddle 安装使用

目录 HTTP 协议基本概念 Fiddle 下载 HTTP 请求格式 HTTP 响应格式 HTTP 协议基本概念 应用层使用最广泛的协议浏览器 基于 HTTP协议 获取网站是 浏览器 和 服务器 之间的交互桥梁HTTP协议 基于传输层的 TCP协议 实现HTTP 全称为 HyperText Transfer Protocol,中…

Java IO流实现文件复制

目录 前言 文件复制底层逻辑 代码实现 ​编辑 重点!!! 完整代码 改善思考 前言 Windows文件复制时我们是使用Ctrl C复制Ctrl V粘贴,上一篇文章Java基础入门对存储文件的相关操作 我们学习了Java IO流对文件的读写操作&…