response 对象
介绍
对象主要将 JSP 容器处理后的结果传回到客户端。可以通过response变量设置HTTP的状态和向客户端发送数据,如Cookie、HTTP文件头信息等。
部分响应头描述:
响应头 | 描述 |
---|---|
Allow | 告诉浏览器,服务器支持的 request 方法(GET,POST等等) |
Connection | 命令浏览器是否要使用持久的HTTP连接。close值 命令浏览器不使用持久HTTP连接,而keep-alive 意味着使用持久化连接。 |
Content-Encoding | 指定传输时页面的编码规则 |
Content-Language | 表述文档所使用的语言,比如en, en-us,,ru等等 |
Content-Type | 表明文档使用的MIME类型 |
Refresh | 指明浏览器每隔多久请求更新一次页面。 |
Set-Cookie | 指明当前页面对应的cookie |
Expires | 指明啥时候过期并从缓存中移除 |
Content-Length | 表明响应的字节数。只有在浏览器使用持久化 (keep-alive) HTTP 连接时才有用 |
基础结构
response 对象是接口 javax.servlet.http.HttpServletResponse
的对象。
javax.servlet.ServletResponse
接口javax.servlet.http.HttpServletResponse
接口
ServletResponse
只有一个 HttpServletResponse
一个子接口。因为现在浏览器都基于 http
协议,如果由新的只需添加新的子接口。
作用
用来接收客户端发送而来的请求信息,例如:设置头信息,设置Cookie,进行跳转(重定向/客户端跳转)
主要方法
- 添加 Cookie
void addCookie(Cookie cookie)
- 添加头信息
void addHeader(java.lang.String name, java.lang.String value)
- 跳转
void sendRedirect(java.lang.String location) throws java.io.IOException
- 设置响应的 MIME 类型
void setContentType(java.lang.String type)
- 设置响应编码
void setCharacterEncoding(java.lang.String charset)
setCharacterEncoding
和 setContentType
区别
setCharacterEncoding
只是设置字符的编码方式setContentType
除了可以设置字符的编码方式还能设置文档内容的类型
主要几种用法
设置头信息
头信息是指能够随着客户端一起提交到服务器,而后又能够从服务器相应给客户端的一些信息,叫做头信息,头信息的内容有很多,最有用的就是设置定时刷新界面或者进行定时的跳转。
response 对象可以设置头信息的内容,通过 request 对象取得都头信息内容。
通过 request 获取
<%Enumeration e = request.getHeaderNames();while(e.hasMoreElements()){String s = (String)e.nextElement();%><h3>name=<%=s %>--->value=<%=request.getHeader(s) %></h3><% }%>
通过以上代码获取内容示例如下:
name=host--->value=localhost:8080
name=connection--->value=keep-alive
name=cache-control--->value=max-age=0
name=upgrade-insecure-requests--->value=1
name=user-agent--->value=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edg/81.0.416.72
name=accept--->value=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
name=sec-fetch-site--->value=none
name=sec-fetch-mode--->value=navigate
name=sec-fetch-user--->value=?1
name=sec-fetch-dest--->value=document
name=accept-encoding--->value=gzip, deflate, br
name=accept-language--->value=zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
第二次获取的时候,我们可以发现会多一个 cookie,内容是JSESSIONID,实际上这个ID就是第一次访问服务器的时候,服务器自动设置上的,所以第二次访问的时候可以显示,这个ID实际上是服务器区分不同的客户端用的。
那么如何设置头信息呢。
范例:页面定时刷新
<%!//定义全局变量int count = 0;%><%response.addHeader("refresh", "3");//设置头信息(3秒刷新一次)%><h1><%=count++ %></h1>
设置 Cookie
表示的是服务器保存在客户端的一组数据,所以这种数据是不安全的数据。
Cookie本身是一个类,有其常用的操作方法:
- 构造方法
Cookie(java.lang.String name, java.lang.String value)
- 取得Cookie的名称
public java.lang.String getName()
- 取得Cookie的值
public java.lang.String getValue()
- 设置Cookie最大保存时间
public void setMaxAge(int expiry)
- 单位秒
- 设置Cookie的值
public void setValue(java.lang.String newValue)
那么怎么把 Cookie 添加到客户端?使用 response 对象完成。
void addCookie(Cookie cookie)
那么如何取得 Cookie?使用 request 获取
Cookie cookie[] = request.getCookies();//取得客户端上面所有的Cookie
跳转
跳转分两种,一种是转发,一种是重定向
- 转发(服务端跳转):地址栏不会变化,使用jsp:forward进行跳转
- 重定向(客户端跳转):地址栏会变化,表单提交,a标签,设置头信息自动跳转
response 可以使用 sendRedirect()
完成
<%response.sendRedirect("Demo01.jsp");%>
此种形式的跳转也是属于重定向的范畴。
两种跳转区别
- 转发
- 跳转之后,地址栏不会发生变化
- 只要执行到跳转的代码,会立刻无条件跳转
- 重定向
- 跳转之后,地址栏会发生变化
- 是将整个页面执行完成之后,再进行跳转的
response 对象相关推荐
- request 对象和 response 对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...
- SpringMvc4中获取request、response对象的方法
springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...
- java response 对象_82 Java基础 Response对象
1 Response对象概述 负责对浏览器进⾏响应的对象 什么是响应: 服务器接收到请求需要进行处理,将处理以后的结果显示回浏览器端(将这个过程称为是响应Response). 查看Servlet中的s ...
- javaweb学习总结二十五(response对象的用法一)
一:Reponse对象的概念 当客户端发送http请求时,服务器端会对每一次请求,创建request对象和response对象. response对象包括三个部分:响应头.响应状态码以及响应体 二:r ...
- ASP.NET 2.0编程技巧之用Response对象输出图像
一. 简介 作为ASP.NET基本对象之一的Response对象不但可以通过Write()方法直接在页面上输出字符串数据,而且还可以使用BinaryWrite()方法直接显示二进制表示的数据,如图像. ...
- ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法
导读:在ASP.NET的学习中,初步认识了其6大对象(严格说来只能算是属性):Request,Response,Application,Session,Server,OjectContext.这些对象 ...
- jsp response对象
所属接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且ServletResponse也现在只有唯一一个HttpServl ...
- 在ASP程序设计中在使用Response对象
Response对象在ASP程序设计中的主要功能是从浏览器端到服务器端传送数据到浏览器的客户端,我们知道ASP的脚本是在服务器端执行的,他并没有输出"值"的功能.要想拥有输出&qu ...
- ASP.NET之Request和Response对象
经过了牛腩新闻公布系统和html的学习对B/S开发的流程有了些理解.前面尽管用到了非常多知识.但对制作网页仅仅能说知其然.当学到asp.net视频中的解说才干够说開始知其所以然了. 今天来说说clie ...
- JSP具体条款——response对象
response对象 response为响应对象client要求.输出信息到客户.他封装JSP反应生成.发送client在回应client要求. 1.重定向网页 使用response对象的sendRe ...
最新文章
- VS.net中的远程调试
- Javascript的setTimeOut()和setInterval()的定时器用法
- ojdbc14_g.jar与ojdbc14.jar区别
- 你是不是 可替代的Linux运维工程师?
- 柳絮飘,往事忆:家(二)
- c语言 界面编程 毕业设计,基于c语言的毕业设计.docx
- wx:key的使用及wx:key的值
- python如何翻译成中文的代码-Python实现中文数字转换为阿拉伯数字的方法示例
- #树形dp#洛谷 2014 codevs 1378 jzoj 1486 选课
- C语言求CHO的相对分子质量
- File xxx specified for property 'resourceFile' does not exist.解决方法
- 如何计算CPU的算力
- 天翼云服务器的一些问题及解决方式
- 最小公倍数和最大公约数的三种算法
- 云服务器ECS远程监控
- windows命令行下通过cl命令编译动态链接库示例
- php.ini 配置优化,PHP.ini 性能安全优化 | Soo Smart!
- chatgpt赋能python:Python中的4J-Selenium库:从基础到进阶
- html中marquee标签添加2条,HTML marquee标签
- 博图v16组态wincc_48张图,学会西门子WinCC与S71200OPC的通讯方法