servlet 之 response 回复 字节流 字符流
重定向 设置状态吗为302 添加响应头Location(告诉他重定向到哪里去)
//response.setStatus(302);
//添加响应头Location(告诉他重定向到哪里去)
//response.setHeader("Location", "http://www.baidu.com");
//------------------------------------------------------------
// servlet技术已经提供了一个方法,用来直接重定向.
response.sendRedirect("http://www.baidu.com");
例子3.响应头 相关的.
Refresh "3;http://www.baidu.com"
<meta http-equiv="Refresh" content="3;http://www.baidu.com" /> ==> 也能完成如上功能,区别只是这是html代码(模拟http协议).不属于http协议范畴.
响应正文相关的
例子4:向客户端输出中文.
字节流:
// 1.如何设置服务器端采用什么码表编码
//os.write("你好!!".getBytes("UTF-8"));
// 2.如何告诉浏览器采用什么码表解码
// <meta http-equiv="Content-Type" contet="text/html;charset=utf-8" >
// Content-Type: text/html;charset=UTF-8
字符流:
//要想不乱码只需要取保两端编码一致
//1 服务器端编码 默认值是ISO-8859-1
response.setCharacterEncoding("UTF-8");
//2 浏览器端解码 字符流的获得必须放在设置编码之后. 放在之前的话,writer的编码已经确定了.
response.setHeader("Content-Type", "text/html;charset=UTF-8");
//writer.print("<meta http-equiv='Content-Type' contet='text/html;charset=UTF-8' >");
OutputStream os = response.getOutputStream();
//设定服务器的编码格式
os.write("打搅电风扇电风扇啊".getBytes());
os.write("打搅电风扇电风扇啊".getBytes("utf-8")); //设定浏览器的 采用什么编码
//<meta http-equiv="Content-type" content="text/html;charset=utf-8">
// response.setHeader("Content-type", "text/html;charset=utf-8");
os.write("<meta http-equiv='Content-Type' contet='text/html;charset=utf-8'>".getBytes());
// 字符流
// 要想不乱吗就
// 1、设定服务器段 默认 ios-8859-1
response.setCharacterEncoding("utf-8");
PrintWriter wr = response.getWriter();
// 2、浏览器段
// response.setHeader("Content-type", "text/html;charset=utf-8");
wr.print("<meta http-equiv='Content-Type' contet='text/html;charset=UTF-8' >"); // wr.write("sdfd悲剧啊可是到了");
wr.print("sdfd悲剧啊可是到了");
服务端返回一个图片的
// 1、告诉浏览器我发送给他的是图片类型的
// 2、读取服务器上的那个图片
// 3、输出那个图片 response.setHeader("Content-Type", "img/jpeg");// mime 类型可以在tomcate
// web.xml 中查找
ServletOutputStream os = response.getOutputStream(); String path = getServletContext().getRealPath("/WEB-INF/1.JPG");
FileInputStream sis = new FileInputStream(path);
int len = 0;
byte[] by = new byte[1024];
while ((len = sis.read(by)) != -1) {
os.write(by, 0, len);
}
sis.close();
// 1、告诉浏览器我发送给他的是图片类型的
// 2、读取服务器上的那个图片
// 3、输出那个图片 response.setHeader("Content-Type", "img/jpeg");// mime 类型可以在tomcate
// web.xml 中查找 //建议使用 什么名字保存的
response.setHeader("Content-Disposition","attachment;filename=aa.jpg"); ServletOutputStream os = response.getOutputStream(); String path = getServletContext().getRealPath("/WEB-INF/22.JPG"); FileInputStream sis = new FileInputStream(path);
int len = 0;
byte[] by = new byte[1024];
while ((len = sis.read(by)) != -1) {
os.write(by, 0, len);
}
sis.close();
String type=getServletContext().getMimeType("xx.jpg");
response.setHeader("Content-Type", type);// mime 类型可以在tomcate
// web.xml 中查找
servlet 之 response 回复 字节流 字符流的更多相关文章
- -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
- IO流(字节流,字符流,缓冲流)
一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流 这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: 二:字符字节 ...
- Android笔记:利用InputStream和BufferedReader 进行字节流 字符流处理
通过socket获取字节流处理时最初使用的是BufferedReader和PrintWriter 这种方式在解析字符串时是比较方便的 但是在处理字节时不够方便最终还是回归到InputStream和O ...
- IO 复习字节流字符流拷贝文件
/* 本地文件 URL 文件拷贝 *//*文本文件拷贝 可以通过 字符流,也可以通过字节流*/ /*二进制文件拷贝 只可以通过字节流*//* 希望这个例子能帮助搞懂 字符流与字节流的区别 */ imp ...
- Java之IO流(字节流,字符流)
IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...
- IO—》字节流&字符流
字节流 一.字节输出流OutputStream OutputStream此抽象类,是表示输出字节流的所有类的超类.操作的数据都是字节,定义了输出字节流的基本共性功能方法. FileOutputStre ...
- 【C#IO 操作】stream 字节流|字符流 |比特流
stream的简介 Stream 所有流的抽象基类. 流是字节序列的抽象,例如文件.输入/输出设备.进程中通信管道或 TCP/IP 套接字. Stream类及其派生类提供这些不同类型的输入和输出的一般 ...
- java 输入输出IO流 字节流| 字符流 的缓冲流:BufferedInputStream;BufferedOutputStream;BufferedReader(Reader in);BufferedWriter(Writer out)
什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStr ...
- http中的filter拦截servlet之后获取body,字符流关闭,无法继续传入控制器
https://blog.csdn.net/pyxly1314/article/details/51802652
随机推荐
- ubuntu14.04下简易二进制安装mysql
下载mysql-commnunity的5.6.24通用二进制版 tar解压 我安装到/opt目录,所以mv到/opt/ 可选,建了个软链 ln -s *** mysql 添加运行mysql服务的用户和 ...
- sys
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxi ...
- MyBatis参数传入集合之foreach用法
传入集合list // 账户类型包括门店和分公司 List<Object> scopeList = new ArrayList<Object>(); scopeList.add ...
- $.extend()的用法【转】
1.合并多个对象. 这里使用的就是$.extend()的嵌套多个对象的功能. 所谓嵌套多个对象,有点类似于数组的合并的操作. 但是这里是对象.举例说明. 代码如下: <span style=&q ...
- redis-删除所有key
删除所有Key,可以使用Redis的flushdb和flushall命令 //删除当前数据库中的所有Key flushdb //删除所有数据库中的key flushall 如果要访问 Redis 中特 ...
- ORB-SLAM(二)性能
ORB-SLAM程序提供了运行Monocular.Stereo和RGBD数据的程序.编译成功后,可以通过运行TUM的标准数据来验证程序是否成功.如果想自己测试一些数据,可以通过OpenCV提供的接口调 ...
- 数据结构图文解析之:队列详解与C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- Linux 内核数据结构:双向链表
Linux 内核提供一套双向链表的实现,你可以在 include/linux/list.h 中找到.我们以双向链表着手开始介绍 Linux 内核中的数据结构 ,因为这个是在 Linux 内核中使用最为 ...
- ubuntu下升级R版本
ubuntu下升级R版本 在测试<机器学习 实用案例解析>一书的邮件分类代码时,windows系统下rstudio中无法读取特殊字符,在ubuntu下可以.在ubuntu虚拟机下安装t ...
- web前端基础知识-(二)CSS基本操作
1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:style ...