当前位置: 首页 > news >正文

HttpServletResponse对象

 1.介绍

在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP响应消息。由于HTTP响应消息分为状态行、响应消息头、消息体三部分,因此,在HttpServletResponse接口中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法。

2.发送状态码相关的方法

a.setStatus(int status)方法

该方法用于设置HTTP响应消息的状态码,并生成响应状态行。由于响应状态行中的状态描述信息直接与状态码相关,而HTTP版本由服务器确定,因此,只要通过setStatus(int status)方法设置了状态码,即可实现状态行的发送。需要注意的是,正常情况下,Web服务器会默认产生一个状态码为200的状态行。

常见的状态码:200 响应成功
                  302 重定向
                  404 请求资源找不到
                  500 服务器代码出异常。

b.sendError(int sc)方法

该方法用于发送表示错误信息的状态码,例如,404状态码表示找不到客户端请求的资源。在response对象中,提供了两个重载的sendError(int sc)方法,具体如下:


在上面重载的两个方法中,第一个方法只是发送错误信息的状态码,而第二个方法除了发送状态码外,还可以增加一条用于提示说明的文本信息,该文本信息将出现在发送给客户端的正文内容中。

 3.发送响应消息头相关方法

当Servlet向客户端发送响应消息时,由于HTTP协议的响应头字段有很多种,为此,在HttpServletResponse接口中,定义了一系列设置HTTP响应头字段的方法,如表所示。

4.发送响应消息体相关方法

由于在HTTP响应消息中,大量的数据都是通过响应消息体传递的,因此,ServletResponse遵循以IO流传递大量数据的设计理念。在发送响应消息体时,定义了两个与输出流相关的方法,具体如下。

a.getOutputStream()方法

该方法所获取的字节输出流对象为ServletOutputStream类型。由于ServletOutputStream是OutputStream的子类,它可以直接输出字节数组中的二进制数据。因此,要想输出二进制格式的响应正文,就需要使用getOutputStream()方法。

b.getWriter()方法

该方法所获取的字符输出流对象为PrintWriter类型。由于PrintWriter类型的对象可以直接输出字符文本内容,因此,要想输出内容全为字符文本的网页文档,需要使用getWriter()方法。

5.发送响应消息体案例

6.解决中文输出乱码问题

7.实现网页定时刷新或跳转到其他页面(Refresh头字段)

8.实现请求重定向

http://www.lryc.cn/news/188600.html

相关文章:

  • 在SSL中进行交叉熵学习的步骤
  • 10月TIOBE榜Java跌出前三!要不我转回C#吧
  • 优盘中毒了怎么办?资料如何恢复
  • 如何查看端口占用(windows,linux,mac)
  • Photoshop与Web技术完美融合,Web版Photoshop已正式登场
  • 易点易动:提升企业固定资产管理效率的完美解决方案
  • SRE实战:如何低成本推进风险治理?稳定性与架构优化的3个策略
  • APK大小缩小65%,内存减少70%:如何优化Android App
  • 传统工厂如何搭建蒸汽流量远程无线抄表系统?
  • 睿趣科技:抖音店铺怎么取名受欢迎
  • 面试经典 150 题 22 —(数组 / 字符串)— 28. 找出字符串中第一个匹配项的下标
  • 儿童产品亚马逊CPC认证审核不通过的原因解析
  • 项目_数据可视化| 折线图.散点图.随机漫步
  • Android 项目增加 res配置
  • MySQL数据库的MVCC详解
  • AI:10-基于TensorFlow的玉米病害识别
  • vue3前端开发系列 - electron开发桌面程序(2023-10月最新版)
  • 前端uniapp生成海报并保存相册
  • 0基础学习VR全景平台篇 第104篇:720全景后期软件安装
  • CMakeLists编译前拷贝文件或目录
  • mysql面试题35:MySQL有关权限的表有哪些?
  • ES6:什么是Symbol_
  • E. Li Hua and Array
  • 【项目】在线oj
  • 第十章-输入输出系统
  • TensorFlow学习:使用官方模型进行图像分类、使用自己的数据对模型进行微调
  • Matlab地理信息绘图—研究区域绘制
  • [CSAWQual 2019]Web_Unagi - 文件上传+XXE注入(XML编码绕过)
  • ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的问题解决
  • 什么是函数库和动态链接库?