【Servlet篇3】HttpServletResponse的常用方法

news2024/12/22 22:41:23

HttpServletResponse代表的是一个HTTP请求对应的响应。

在这一篇文章当中,已经提到了HTTP响应是由哪几部分组成的:

【网络原理7】认识HTTP_革凡成圣211的博客-CSDN博客HTTP抓包,Fiddler的使用https://blog.csdn.net/weixin_56738054/article/details/129148515?spm=1001.2014.3001.5502

第一部分:HTTP响应行(包含HTTP版本、状态码、对于状态码的简单描述);

第二部分:HTTP报头(多组键值对);

第三部分:HTTP响应体(body)。

目录

void setStatus(int snc)

resp.setHeader(k,v)和resp.addHeader(k,v)

void setContentType(String type)

  如何让浏览器自动刷新(每隔一段时间就刷新一下)

 void setCharacterEncoding(字符集编码)

void sendRedirect(跳转的URL);


void setStatus(int snc)

  这一个方法用于设置响应的状态码:常见的状态码有200/400等等。

resp.setStatus(400);

 打开开发者工具,可以看到一个400的响应码:

 需要注意的是,通过这个方法设置的状态码并不影响浏览器的对于body的响应


resp.setHeader(k,v)和resp.addHeader(k,v)

在前面的文章当中,我们也提到了:HTTP的响应头是由多组键值对组成的。

以上两个方法,都是在HTTP响应头当中设置新的响应头的方法。

但是,也是有不同的:

        对于resp.setHeader(k,v),将会设置一个带有给定名称的值的header。如果已经有一个键了,那么这个值就会覆盖掉原来的值。

        对于resp.addHeader(k1,v1),如果已经有旧的键值对(k1,v0)新增的一致(k1,v1)。那么将会新增一个键值对(k1,v1)

 //会覆盖掉旧的key对应的value
 resp.setHeader("hello","hello1");

 //不会覆盖掉旧的key,而是新增一个key,value结构的键值对
 resp.addHeader("hello2","hello2");

可以看到,此时新增的内容就可以通过Fidller抓包看到了: 


void setContentType(String type)

前面我们也提到了,HTTP响应头当中有一个属性叫做:Content-Type

那么,resp就可以通过这个方法来设置响应头的格式:如:

resp.setContentType("text/html");

text/htmltext/jsontext/json等等的格式。

 

  如何让浏览器自动刷新(每隔一段时间就刷新一下)

  需要在HTTP响应头当中设置一个属性:Refresh,并且指定隔多久刷新一次。

//设置响应字符集
resp.setCharacterEncoding("utf-8");
//在HTTP响应头当中新增一个属性:Refresh,并且设置每隔1秒刷新一次
resp.setHeader("Refresh","1");
resp.getWriter().write("时间戳:"+System.currentTimeMillis());

   运行效果(每隔1秒刷新一次)

 


 void setCharacterEncoding(字符集编码)

设置被发送到客户端的响应的字符编码

resp.setCharacterEncoding("utf-8");

void sendRedirect(跳转的URL);

描述的是重定向到哪一个URL。

注意事项:

这一个URL必须是完整的URL,不可以是/servlet3这样的。

重定向一般都是get请求

 resp.sendRedirect("http://localhost:8080/ServletLearning_war_exploded/servlet3");

当然,也可以直接设置resp.setHeader(Location,需要跳转的资源)来实现重定向。

resp.setHeader("Location","https://www.baidu.com");

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

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

相关文章

ChIP-seq 分析:数据与Peak 基因注释(10)

动动发财的小手,点个赞吧! 1. 数据 今天,我们将继续回顾我们在上一次中研究的 Myc ChIPseq。这包括用于 MEL 和 Ch12 细胞系的 Myc ChIPseq。 可在此处[1]找到 MEL 细胞系中 Myc ChIPseq 的信息和文件可在此处[2]找到 Ch12 细胞系中 Myc ChIP…

UE5 报错记录

文章目录The following modules are missing or built with a different engine versionXXX could not be compiled. Try rebuilding from source manaually添加组件时提示未定义标识符或函数名法一方法二方法三The following modules are missing or built with a different e…

MediaTek 天玑 8000 5G移动平台详细参数

MediaTek 天玑 8000 移动平台 采用先进的 台积电 5nm 工艺,拥有出众的性能和能效,为高端智能手机用户提供出色的高帧率游戏和 5G 移动体验。 天玑 8000 采用了 MediaTek 诸多先进技术,内置 MediaTek Imagiq 780影像引擎、第五代 AI 处理器APU…

【存储】存储阵列结构

存储阵列结构存储是什么DAS(Direct Attached Storage)DAS遇到的挑战SAN(Storage Area Network)FC SAN与IP SAN比较SAN存储应用NAS(Network Attached Storage)NAS SAN DAS架构SAN与NAS存储的基本区别存储架构…

2023年湖北省建设厅特种工电工架子工怎么报考?甘建二告诉你

2023年湖北省建设厅特种工考试,本人来走过场,即可通过考试哟 2023年湖北省建设厅特种工工种:(官方公布) 建筑电工,建筑架子工,建筑起重信号司索工,建筑起重机械司机,塔式…

蓝桥杯 python datetime基础

datetime datetime对象可以用来表示精确的日期和时间,其实例化方法如下: import datetime today datetime.datetime(year2022,month9,day21)print(today)print(today.year)#返回datetime对象中的年份print(today.month)#返回datetime对象中的月份prin…

CentOS 7.9安装Zabbix 4.4《保姆级教程》

CentOS 7.9安装Zabbix 4.4一、配置一览二、环境准备设置Selinux和firewalld设置软件源1.配置ustc CentOS-Base源2.安装zabbix 4.4官方源3.安装并更换epel源4.清除并生成缓存三、安装并配置Zabbix Server安装zabbix组件安装php安装mariadb并创建数据库修改zabbix_server.conf设置…

volatile底层-CPU缓存一致性协议MESI

目录 volatile底层-CPU缓存一致性协议MESI CPU高速缓存(Cache Memory) 带有高速缓存的CPU执行计算的流程 目前流行的多级缓存结构 多核CPU多级缓存一致性协议MESI MESI协议缓存状态 MESI状态转换 多核缓存协同操作 ​编辑单核读取 双核读取 修…

Modelsim 操作结构和流程

用到的命令一般都写到.do文件中,使用脚本语言进行批量处理。Step 1: Map librariesStep 2: Compile the designStep 3: Optimize the design (OPTIONAL)Step 4: Load the design into the simulatorStep 5: Run the simulationStep 6: Debug the design Note: Desig…

10、DNS部署和安全(图文解析)~千锋

目录 概述 域名组成 监听端口 客户机的域名解析过程 DNS解析分类 DNS服务器搭建 概述 Domain Name Service 域名服务 作用:为客户机提供域名解释服务器 域名组成 域名组成概述 “www.sina.com.cn”是一个域名,从严格意义上讲”sina.com.cn”才…

CV学习笔记-Faster-RCNN

Faster R-CNN 文章目录Faster R-CNN1. 目标检测算法1.1 计算机视觉有五大应用1.2 目标检测任务1.3 目标检测算法概述2. 边框回归(Bounding-Box regression)2.1 IoU2.2 统计学中的指标2.3 边框回归3. Faster-RCNN网络3.1 Conv layers3.2 Region Proposal …

Python每日一练(20230304)

目录 1. 移除链表元素 ★ 2. K 个一组翻转链表 ★★★ 3. 三角形最小路径和 ★★ 1. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入&…

曹云金回归、于谦电影杀青,德云社想不火都难

说起民间最大的相声社团,首屈一指的要属德云社,之所以说德云社最大,主要是优秀相声演员够多。德云社在郭德纲的带领下,如今已经是人才济济,听说最近队伍会进一步壮大,前徒弟曹云金也要回归了。 当年曹云金作…

c语言期末突击讲义+笔记

【祝逢考必过&#xff0c;心想事成~~~~】 【一定能过&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;】 C 语言第一课 一、 固定格式 例 1&#xff1a; #include<stdio.h> int main() { return 0; }### 二、 printf 语句 例 1&#xff1a; #inclu…

springsession中redis键值过期后,后置处理

Redis键空间通知&#xff08;说明&#xff09; 基于redis的发布订阅功能&#xff0c;实现&#xff0c;当对一个key做出操作后&#xff0c;可以对改建进行监听&#xff0c;来做后续的处理。 在spring-session中支持当一个session过期后&#xff0c;来做一些后续的操作。那是如何…

Spring-注解注入

一、回顾XML注解 bean 配置 创建 bean public class Student { } 配置 xml bean <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSche…

2023年人工智能技术趋势

随着DALL-E 2、ChatGPT等越来越多应用的出现&#xff0c;人们越来越期待人工智能在2023年给人们带来的突破性改进。2023年人工智能技术趋势人工智能(AI)的应用越来越具有创新性&#xff0c;广泛的应用程序使用 AI 从头开始创建令人印象深刻的文本、视频和图像。越来越多的新应用…

【深度学习】扩散模型(Diffusion Model)详解

【深度学习】扩散模型&#xff08;Diffusion Model&#xff09;详解 文章目录【深度学习】扩散模型&#xff08;Diffusion Model&#xff09;详解1. 介绍2. 具体方法2.1 扩散过程2.2 逆扩散过程2.3 损失函数3. 总结4. 参考1. 介绍 扩散模型有两个过程&#xff1a; 扩散过程&…

蓝桥杯2012年省赛棋盘放麦子

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 你一定听说过这个故事。国王对发明国际象棋的大臣很佩服&#xff0c;问他要什么报酬&#xff0c;大臣说&#xff1a;请在第 11 个棋盘格放 11 粒麦子&#xff0c;在…

【宝藏博客系列】用C语言中的普通数组构建一棵特殊的完全二叉树----堆(内容超劲爆的喔~)

目录 0.前言 1. 用数组表示存储一棵完全二叉树 2. 数组表示的完全二叉树的性质 3. 堆的基本概念 3.1 堆的核心性质 3.2 堆顶的性质 3.3 堆的单支性质 3.4 堆的左右支关系 4. 用代码实现堆 4.1 堆类的实现 4.2 堆的初始化 4.3 堆的销毁 4.4 获取堆顶的数据 4.5 …