web之Respone
服务器处理请求的流程:
服务器每次收到请求时,都会为这个请求开辟一个新的线程。
服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!(袋子)
服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。(手机)
------------------
response:其类型为HttpServletResponse
ServletResponse-->与协议无关的类型
HttpServletResponse-->与http协议相关的类型
回忆一下http协议!http协议中响应的内容包含哪些东西呢?
* 状态码:200表示成功、302表示重定向、404表示客户端错(访问的资源不存在)、500表示服务器端错
> sendError(int sc) --> 发送错误状态码,例如404、500
> sendError(int sc, String msg) --> 也是发送错误状态码,还可以带一个错误信息!
> setStatus(int sc) --> 发送成功的状态码,可以用来发送302
案例:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendError(404,".............");
}
> 发送404
* 响应头:Content-Type、Refresh、Location等等
头就是一个键值对!可能会存在一个头(一个名称,一个值),也可能会存在一个头(一个名称,多个值!)
> *****setHeader(String name, String value):适用于单值的响应头,例如:response.setHeader("aaa", "AAA");
> addHeader(String name, String value):适用于多值的响应头
response.addHeader("aaa", "A");
response.addHeader("aaa", "AA");
response.addHeader("aaa", "AAA");
> setIntHeader(String name, int value):适用于单值的int类型的响应头
response.setIntHeader("Content-Length", 888);//设置长度
>addIntHeader(String name, int value):适用于多值的int类型的响应头
> setDateHeader(String name, long value):适用于单值的毫秒类型的响应头
response.setDateHeader("expires", 1000 * 60 * 60 * 24);//过期时间24小时
> addDateHeader(String name, long value):适用于多值的毫秒类型的响应头
案例:
> 发送302,设置Location头,完成重定向!

代码:

-*****************************************************************************

快捷的方法重定向:
response.sendRedirect("http://www.baidu.com");
> 定时刷新:设置Refresh头,你可以把它理解成,定时重定向!
代码:

其中:response.setHeader("Refresh", "5;URL=/day10_1/Eservlet"); 意思是5秒后跳转到URL=/day10_1/Eservlet"
> 禁用浏览器缓存:Cache-Control、pragma、expires:过期
代码;

> <meta>标签可以代替响应头:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
* 响应体:通常是html、也可以是图片!
> response的两个流:
<> ServletOutputStream,用来向客户端发送字节数据。 ServletOutputStream out = resopnse.getOutputStream();
<> PrintWriter,用来向客户端发送字符数据!需要设置编码。 PrintWriter writer = response.getWriter();
<> 两个流不能同时使用!否则让出现异常

案例:
> 使用PrintWriter发送字符数据

> 使用ServletOutputStream发送字节数据(图片)

* 重定向:设置302,设置Location!其中变化的只有Location,所以java提供了一个快捷方法,完成重定向!
> sendRedirect(String location)方法
web之Respone的更多相关文章
- day10(java web之request&respone&访问路径&编码问题)
day10 请求响应流程图 response response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletR ...
- Web利器---fidder使用
fiddler工具,主要看中其三点优势:1.功能强大,其他工具有的功能它也有,其他工具没有的功能它也有,支持http,https,ftp等协议:2.完全免费,长期免费.3.所有的浏览器可以使用,所有的 ...
- Node.js高级编程读书笔记 - 4 构建Web应用程序
Outline 5 构建Web应用程序 5.1 构建和使用HTTP中间件 5.2 用Express.js创建Web应用程序 5.3 使用Socket.IO创建通用的实时Web应用程序 5 构建Web应 ...
- 【概念笔记】JavaEE - web part2
IT`huhui前言录 续JavaEE - web part1 链接http://www.cnblogs.com/ithuhui/p/5930745.html, 持续修改更新. Cookie 1. 定 ...
- ASP.NET中的Request和Respone对象的使用
前台<body>中的表单代码: ASP.NET对象有如下几个: 本文从“asp.net中通过from表单submit提交到后台的实例”来谈谈Request和Response ...
- day04 Java Web 开发入门
day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...
- python 全栈开发,Day66(web应用,http协议简介,web框架)
一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...
- 【转】HTTP学习---Web 缓存
[原文]https://www.toutiao.com/i6592743068623962632/ 1. 前端缓存概述 前端缓存主要是分为HTTP缓存和浏览器缓存.其中HTTP缓存是在HTTP请求传输 ...
- Java Web 从入门到精通(明日科技)
目录结构: 第一章:Java Web 应用开发概述 第二章:html与css网页开发基础 第三章:JavaScript脚本语言 第四章:搭建开发环境 第五章:JSP语言基础 第六章:JSP内置对象 第 ...
随机推荐
- ZeroMQ初探
概述 ZeroMQ(也称为 ØMQ,0MQ 或 zmq)是一个可嵌入的网络通讯库(对 Socket 进行了封装). 它提供了携带跨越多种传输协议(如:进程内,进程间,TCP 和多播)的原子消息的 so ...
- [Hadoop] - TaskTracker源码分析
在Hadoop1.x版本中,MapReduce采用master/salve架构,TaskTracker就是这个架构中的slave部分.TaskTracker以服务组件的形式存在,负责任务的执行和任务状 ...
- LruCache原理解析
LruCache是一个泛型类,它内部采用LinkedHashMap,并以强引用的方式存储外界的缓存对象,提供get和put方法来完成缓存的获取和添加操作.当缓存满时,LruCache会移除较早的缓存对 ...
- mysql 命令备份
导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将 ...
- JavaScript设计模式之构造器、模块和原型
JavaScript面向对象 JavaScript是一种无类语言,但可以使用函数来模拟,这就涉及到设计模式.模式是一种已经验证过的可复用的解决方案,可用于解决软件设计中遇到的常见的问题,通常将这些解决 ...
- Nginx+IIS+Redis 处理Session共享问题 2
接下来主要说下利用nginx来测试 两台Windows server 1.10.120.131.210 - 端口84部署demo 2.10.120.131.211 - 端口84部署demo ngi ...
- 3386/1752: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
3386/1752: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家 Time Limit: 1 Sec Memory Limit: 128 MBSubmit ...
- JSP +++SERVIET总复习
一. JSP基础概念 软件架构 B/S架构:Browser/Server,浏览器-服务器 最大的优点就是:一次部署,处处访问. C/S架构:Client/Server,客户端-服务器 功能.事件丰富, ...
- Maven工具的使用总结
Maven作为构建工具,现在项目开发使用的越来越多,相对于ant和gradle,我更喜欢使用maven,先总结maven使用的一系列知识: 一.maven相关的网址: 名称 地址 其他 maven官网 ...
- git remote log error
使用git pull的时候收到以下信息: error: there are still refs under 'refs/remotes/origin/xxxx'From 10.1.25.57:yyy ...