Servlet API 详解(HttpServlet、HttpServletRequest、HttpServletResponse)
系列文章目录
Servlet 的运行原理_crazy_xieyi的博客-CSDN博客
如何创建一个Servlet项目(Maven)?_crazy_xieyi的博客-CSDN博客
Tomcat下载、安装及使用介绍_crazy_xieyi的博客-CSDN博客
文章目录
- 一、HttpServlet
- 二、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 。注意: HttpServlet 的实例只是在程序启动时创建一次. 而不是每次收到 HTTP 请求都重新创建实例。
那么Servlet的生命周期是多少呢?
Servlet在实例化之后调用一次 init 方法;Servlet在每次收到请求的时候调用一次service;Servlet在销毁之前调用一次destory。
二、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
方法 | 描述 |
void setStatus(int sc)
|
为该响应设置状态码
|
void setHeader(String name,
String value)
|
设置一个带有给定的名称和值的 header. 如果 name 已经存在, 则覆盖旧的值
|
void addHeader(String
name, String value)
|
添加一个带有给定的名称和值的 header. 如果 name 已经存在, 不覆盖旧的值, 并列添加新的键值对
|
void setContentType(String
type)
|
设置被发送到客户端的响应的内容类型
|
void
setCharacterEncoding(String
charset)
|
设置被发送到客户端的响应的字符编码(MIME 字符集)例如,UTF-8
|
void sendRedirect(String
location)
|
使用指定的重定向位置 URL 发送临时重定向响应到客户端
|
PrintWriter getWriter()
|
用于往 body 中写入文本格式数据
|
OutputStream
getOutputStream()
|
用于往 body 中写入二进制格式数据
|
Servlet API 详解(HttpServlet、HttpServletRequest、HttpServletResponse)相关推荐
- ServletFileUpload API详解
ServletFileUpload1.ServletFileUpload upload=new ServletFileUpload(factory);创建一个上传工具,指定使用缓存区与临时文件存储位置 ...
- DiskFileItemFactory API详解
核心API介绍1.DiskFileItemFactory作用:可以设置缓存大小以及临时文件保存位置. 默认缓存大小是 10240(10k).临时文件默认存储在系统的临时文件目录下.(可以在环境变量中查 ...
- Java Servlet关键点详解
Java Servlet关键点详解 1.理解Servlet的生命周期 Servlet引擎控制着Servlet的生命周期 Servlet的生命周期由以下三个方法进行描述(五个生命周期阶段) 1)初始化 ...
- 百度PaddleOCR及云平台OCR API详解及示例
百度PaddleOCR及云平台OCR API详解及示例 目录 百度PaddleOCR及云平台OCR API详解及示例 使用百度开源的PaddleOCR 多个开源代码库比较
- Java 8 Stream API详解--转
原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java 8引入 ...
- 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization
<<小白学PyTorch>> 扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积.激活.初始化.正则 扩展之Tensorflow2.0 | 20 TF ...
- Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】
目 录 推荐网址 抠图片上的某一角下来 8.2.2 Bitmap引起的OOM问题 8.3.1 三个绘图工具类详解 画线条 8.3.16 Canvas API详解(Part 1) 1.transla ...
- EXT核心API详解(二)-Array/Date/Function/Number/String
EXT核心API详解(二)-Array/Date/Function/Number/String Array类 indexOf( Object o ) Number object是否在数组中,找不到返 ...
- java nio详解,Java NIO API详解
Java NIO API详解 在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API.对于大多数应用来说,这样的API使用很方 便,然而,一些对 ...
最新文章
- PHP-Zend引擎剖析之Hello World(二)
- 为什么375×667是移动端原型设计的最佳分辨率:flutter 设计稿尺寸最好也是375×667...
- 【洛谷P5114】八月脸【边分治】【闵可夫斯基和】
- 原根(扩展欧几里得+欧拉函数)
- Sublime Text 3.1 3170正式版+Patch注册机
- java声明代码是什么_java安全编码指南之:声明和初始化说明
- 当知识图谱遇上预训练语言模型 -- 留言送书
- 520表白网页代码html 爱心网页制作
- Linux: 介绍make menuconfig中的每个选项含义【转】
- 网络图片嗅探工具driftnet
- php openssl iv,PHP-openssl_encrypt,openssl_decrypt密钥,iv
- Python 正则表达式提取文件后缀名
- DDU(Display Driver Uninstaller) 18.0.3.5 显卡驱动彻底卸载清理工具,支持卸载NVIDIA, AMD, Intel
- pycharm报错The directory *** is registered as a Git root与 Can't start Git: git.exe
- 竞价域名是干什么的?为什么要进行域名竞价?
- 机器学习中的数学基础--特征函数与中心极限定理,统计学基本概念,极大似然估计,最大后验估计
- 只有中国人才懂!回家过年,是一种执念
- 转载:SFC /SCANNOW发现损坏文件应对方法参考
- 如何将极客时间课程制作成kindle电子书
- 海伦公式求三角形垂线长度
热门文章
- CentOS8 生命周期结束切换源
- 06 工厂生产模式(创建型模式)
- 2023华为OD机试真题C++实现【密室逃生游戏】
- 手机旺信服务器文件,查找「旺信卖家」安卓应用 - 豌豆荚
- 2020校招4399游戏开发岗笔试编程题题解部分
- gif演示python循环_用Python将动态GIF图片倒放播放的方法
- 寻找最幸福情侣,“百里挑一”胜“快女”海选
- java multiset_java代码之美(5)---guava之Multiset
- EMC Symmetrix V-Max:革命者?集大成者?
- 专注于自媒体短视频领域四年后的运营问题汇总-第二集