Servlet API 详解

news2024/11/15 13:04:01

 

 

目录

一、HttpServlet

① init() 方法

② service() 方法

③ destroy() 方法

④ doGet()方法

⑤ doPost()方法

⑥ doPut/deDelete/doOptions

常见面试题: 请你谈谈Servlet的生命周期

二、Http请求:HttpServletRequest

1. 获取请求行信息

2. 获取请求头信息(header信息)

3. 获取 form 表单的数据(queryString或者body信息)

三、Http响应:HttpServletResponse

1. 设置响应行的信息

2. 设置响应头信息

 3. 设置响应体信息

四、大致总结


 

一、HttpServlet

 

① init() 方法

在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行(也就是HttpServlet实例化之后)。 无论有多少客户机访问 Servlet,都不会重复执行 init() 。

② service() 方法

service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。

③ destroy() 方法

destroy() 方法仅执行一次,即在服务器停止执行该方法。有可能会调用不到,比如杀进程或者电脑直接断电。

④ doGet()方法

收到GET请求的时候调用(由service方法调用,Tomcat收到请求,会先调用Service,再调用doxxx,实际开发中很少重写Service,一般重新doxxx方法即可)

⑤ doPost()方法

收到POST请求的时候调用(由service方法调用)

⑥ doPut/deDelete/doOptions

收到其他请求的时候调用 (由service方法调用)

 

常见面试题: 请你谈谈Servlet的生命周期

二、Http请求:HttpServletRequest

1. 获取请求行信息

返回值方法名描述
StringgetMethod()该方法用于获取 HTTP 请求方式(如 GET、POST 等)
StringgetRequestURI()该方法用于获取请求行中的资源名称部分,即位于 URL 的主机和端口之后,参数部分之前的部分
StringgetQueryString()该方法用于获取请求行中的参数部分,也就是 URL 中“?”以后的所有内容
StringgetContextPath()返回指示请求上下文的请求URI部分
StringgetRemoteAddr()该方法用于获取客户端的 IP 地址

2. 获取请求头信息(header信息)

返回值类型方法声明

描述

EnumerationgetHeaderNames()返回一个枚举,包含请求中所有的头名(.header的头名)
StringgetHeader(String name)通过头名返回头名的值(如这个头名有多个,只返回第一个)
EnumerationgetHeaders(String name)该方法返回指定头名所有的值(适用于有这个头名有多个)
返回值类型方法声明

描述

StringgetContentType()该方法用于获取 Content-Type 头字段的值。
intgetContentLength()该方法用于获取 Content-Length 头字段的值 。
StringgetCharacterEncoding()该方法用于返回请求消息的字符集编码 。

3. 获取 form 表单的数据(queryString或者body信息)

返回值类型方法声明功能描述
Enumeration getParameterNames ( )以枚举集合的形式返回请求中所有参数名
String getParameter(String name)返回指定参数名的参数值
String [ ] getParameterValues (String name)以字符串数组的形式返回指定参数名的所有参数值(HTTP 请求中可以有多个相同参数名的参数)

三、Http响应:HttpServletResponse

1. 设置响应行的信息

返回值类型方法描述
voidsetStatus(int status)

用于设置 HTTP 响应消息的状态码,并生成响应状态行。

2. 设置响应头信息

返回方法描述
voidaddHeader(String name,String value)添加一个有名称和值的header,存在也不覆盖,继续添加
voidsetHeader (String name,String value)添加一个有名称和值的header,存在直接覆盖
voidaddIntHeader(String name,int value)增加 值为 int 类型的响应头字段,不覆盖
voidsetIntHeader(String name, int value)设置 值为 int 类型的响应头字段,覆盖
voidsetContentType(String type)设置 Servlet 输出内容的 MIME 类型 和 字符编码格式。
voidsetCharacterEncoding(String charset)设置输出内容 的字符编码格式。

 3. 设置响应体信息

返回值类型方法描述
voidsendRedirect重定向URL
OutputStreamgetOutputStream()向body中写入二进制格式数据
PrintWritergetWriter()向body中写入  文本 格式数据

四、大致总结

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

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

相关文章

一个redux使用案例模板

目录 redux 纯函数和高阶函数: redux 开发工具使用 react-redux redux 1. 结构: count--index.jsx import React, { Component } from react import store from ../../redux/store import { acDecrement,acIncrement,acAsyncIncrement } from ../..…

不会向上管理的人,做不好项目经理和PMO【附具体行动清单】

在职场中,向上管理基本是最重要的一件事儿,升职涨薪奖金都离不开向上管理!当你的向上管理做得好,机会都会迎面扑来。 你是不是也遇到过被领导批评时,感到非常委屈或愤怒,情绪经常被领导左右,那…

Three.js一学就会系列:02 画线

系列文章目录 Three.js一学就会系列:01 第一个3D网站 文章目录系列文章目录[Three.js一学就会系列:01 第一个3D网站](https://blog.csdn.net/u012551928/article/details/128205373)前言一、省略部分二、使用方法创建一个场景创建一个透视摄像机将渲染器…

详解CSS层叠上下文(解析z-index不生效的原因)

为什么会有层叠上下文 在CSS2.1规范中,每个盒模型的位置是三维的,分别是平面画布上的X轴,Y轴以及表示层叠的Z轴。一般情况下,元素在页面上沿X轴Y轴平铺,我们察觉不到它们在Z轴上的层叠关系。而一旦元素发生堆叠&#x…

查询网站的谷歌PR权重复杂吗?查询谷歌PR权重最简单的方法

查询网站的谷歌PR权重复杂吗?用对方法一点也不复杂哦! 查询谷歌PR权重最简单的方法——用网站批量查询工具。 网站批量查询工具根据网站的域名可以查询到网站的权重值、网站信息、域名信息、域名备案情况、域名是否安全,来作为网站数据分析的参考。 具体…

C语言基础7:结构体类型、声明、成员类型、定义、初始化、成员访问、传参

文章目录C语言基础7:结构体类型、声明、成员类型、定义、初始化、成员访问、传参1. 结构体类型的声明1.1 结构体的基础知识1.2 结构体的声明1.3 结构体成员的类型1.4 结构体变量的定义和初始化2. 结构体成员访问4. 结构体传参C语言基础7:结构体类型、声明…

SAP S4HANA MM模块后台配置详解

目录 1. 常规设置 1.1 定义国家 1.2.计量单位配置 1.3.货币设置 1.4.维护日历 1.4.1 概念及功能说明 1.4.2 业务示例 1.4.3 配置步骤 2. 企业结构 2.1 定义和分配公司 2.2 设定评估级别、定义/分配工厂 2.2.1. 概念及功能说明 2.2.1. 业务示例 2.2.2. 配置步…

java 八股文

java 八股文 java篇 java 面向对象有哪些特征 封装 多态和继承 arrayList 和 LinkedList 的区别 数据结构不同,一个是数组一个是链表 arrayList 适合 随机访问 读多,插入和删除少 LinkedList 适合插入 和删除 多,按次序遍历的情况 再…

数据结构实验-折半插入排序-双向冒泡排序

目录 分析: 折半插入排序 双向冒泡排序 折半插入排序 思想: 代码 运行结果 双向冒泡排序 代码 运行结果 分析: 折半插入排序 折半插入排序,折半插入排序是在直接插入的改进,通过折半查找得到插入位置&#xf…

java自定义类加载器来加载本地class文件,用demo来解析类加载的双亲委派机制、沙箱机制、打破双亲委派机制

1、首先将class文件放入指定本地目录下 2、编写自定义类加载器demo代码来加载class文件 /*** author WuSong* version 1.0* date 2022/12/7 12:07* description*/ public class MyClassLoaderTest {/*** 1:继承ClassLoader类* 2:重写findClass方法*/sta…

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一小程序源码

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一系统 系统特点: 目前已接入的 CPS 渠道: 充值:话费充值、电费充值、影视会员充值、会员卡券充值 本地团购:联联周边游 电商平台:京东、拼多多、唯品会、淘宝、抖音美团:外卖、闪购、酒店、到店、优选饿了么:外卖、商超 出行服务:…

高压放大器在压电驱动器的机翼除冰方法研究中的应用

实验名称:高压放大器基于压电驱动器的机翼除冰方法研究 研究方向:压电效应、多普勒激光测振 实验原理:多普勒激光测振仪是基于多普勒激光测振原理工作的,当四边固支的矩形板通过驱动器激振起来时,通过激光扫描铝板上的…

知识图谱-KGE-语义匹配-双线性模型(打分函数用到了双线性函数)-2012:LFM(Latent Factor Model)

【paper】 A latent factor model for highly multi-relational data 【简介】 这篇文章是法国的研究团队发表在 NIPS 2012 上的文章,还挂了 Antoine Bordes 的名字。文章提出了 LFM(Latent Factor Model),主要贡献有两点&#x…

机床测头应用一:仿形加工功能,降低废品率

机床测头是一种可安装在大多数数控机床上,并在加工循环中自动对工件的尺寸及位置进行测量的装置,使用合适的测量程序,还可以根据测量结果实现自动刀路补偿,可以保证“第一件和第一百件尺寸一致”,是批量生产中不可缺少…

PLC程序实例三:ModBusRTU客户端编程实例与测试方法

一、需求描述 1、设备作为ModBusRTU服务端时,需要给出对应的测试方法,即 PLC 作为主站,设备作为从站使用(本文编写的是PLC主站程序) 2、业务与上一篇文章ModBusTCP网络触发业务逻辑一致,描述如下&#xf…

SpringCloud学习笔记 - Nacos服务注册中心 - Nacos Discovery

1. Nacos简介 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您…

Git实战 | 让工作更高效,搞定Git的分支管理

上一篇讲到Git的分支管理实操,在线合并和本地合并都进行了实操。毕竟:光说不练是假把式。而只练不整理,只能是傻把式了。分支管理到底如何进行管理呢? 先以GitLab上的一张经典的图打头,作为一个总体概览,也…

汇编语言程序设计期末复习

汇编期末复习 第一章 汇编语言基础知识 机器指令:cpu能直接识别并遵照执行的指令,用二进制编码表示,由操作码,操作数组成,编码只含二进制0或1 机器语言:用二进制编码组成的机器指令的集合和一组使用机器…

java swing(GUI) MySQL实现的视频播放器系统源码+运行教程

今天给大家演示一下由Java swing实现的一款简单的多媒体播放器,项目源码我会放在我的网站上,并配有视频配置教程,保证运行起来的。这个小播放器实现了视频、音频文件的播放、暂停、快进、快退、停止、全屏等功能,还有历史记录功能…

Nacos学习

Nacos NacosNacosNacos 简介核心特性:Nacos 启动启动运行(windows)standalone(单节点)cluster模式Nacos Server 的配置数据是存在哪里呢?测试demo项目结构统一配置中心命名空间、分组、文件新建bootstrap.properties文件依赖contr…