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
随机推荐
- Java中的instanceof关键字
instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boo ...
- jquery富文本在线编辑器UEditor
UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. UEditor的功能非常强大,官方 ...
- 直接启动tomcat时为tomcat指定JDK
第一种: 在windows环境下以批处理文件方式启动tomcat,只要运行<CATALINA_HOME>/bin/startup.bat这个文件,就可以启动Tomcat.在启动时,star ...
- 使用TaskManager爬取2万条代理IP实现自动投票功能
话说某天心血来潮想到一个问题,朋友圈里面经常有人发投票链接,让帮忙给XX投票,以前呢会很自觉打开链接帮忙投一票.可是这种事做多了就会考虑能不能使用工具来进行投票呢,身为一名程序猿决定研究解决这个问题. ...
- sql server 排名函数:DENSE_RANK
一.需求 之前sql server 的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 来实现分页:今天逛园,看到另一个内置排名函数还不错,自己顺便想了 ...
- C#基础系列——异步编程初探:async和await
前言:前面有篇从应用层面上面介绍了下多线程的几种用法,有博友就说到了async, await等新语法.确实,没有异步的多线程是单调的.乏味的,async和await是出现在C#5.0之后,它的出现给了 ...
- 理解web缓存 浏览器缓存
为了: 控制缓存 遇到的现象: 1.开发的时候,浏览器会缓存你的文件,使得你的改动是无效的! 开发过程中:我们是不希望有缓存的. 但正是发布以后,我们是希望页面能够在浏览器缓存,这样用户的体验就会提高 ...
- Eclipse+maven创建webapp项目<二>(转)
原文地址:http://www.cnblogs.com/candle806/p/3439469.html 1.开启eclipse,右键new-->other,如下图找到maven project ...
- cmd命令快速修改dns
新建cmd文件,修改红色ip部分,以 ANSI 编码保存,双击运行即可快速修改dns配置 netsh interface ip set dns "本地连接" source=stat ...
- 通过CAGradientLayer制作渐变色效果(转)
转载自:http://blog.it985.com/7986.html 看了极客学院的视频之后写的一篇博客,觉得不错,还是作为笔记使用. 简单介绍一下CAGradientLayer吧. Gradien ...