HttpServletResponse的说明
来源:互联网 发布:怎么在淘宝上投诉卖家 编辑:程序博客网 时间:2024/06/16 00:02
①http响应
一个http响应代表服务器向客户端会送的数据
http响应结构
状态行
消息头
空行
实体内容
状态行:
http/1.1 状态码 描述
200 表示成功
302 表示转向
response.sendRedirect("地址");
等同于
response.setStatus(302);
response.setHeader("Location","地址");
可以看看sendRedirect()这个函数是如何实现的,其实就是调用了response.setStatus()和
response.setHeader("Location","地址");
404 找不到资源
500 服务器端错误
http响应消息头的详解
Location:http://www.baidu.com/index.jsp
让浏览器重新定位到url
Server:apache tomcat
告诉浏览器服务器是什么
Content-Encoding:gzip
告诉浏览器我使用了gzip压缩
Content-length:80
数据大小
Content-language:
Content-Type:text/html;charset=gb2312
内容格式
Last-Modified:
告诉浏览器最近的更新的时间
Refresh:1;url=
过多久,刷新到url
Content-Disposition:
attachment;filename=
告诉浏览器有文件下载.
String filename="a1.jpg";
response.setHeader("Content-Disposition","attachment;filename="+filename);
//1获取要下载文件的全路径
String path=this.getServletContext().getRealPath("/images/"+filename);
//2创建文件输入流
FileInputStream fis=new FileInputStream(path);
//做一个缓冲字节数组
byte buff[]=new byte[1024];
int len=0;//表示实际每次读取了多少个字节
OutputStream os=response.getOutputStream();
while((len=fis.read(buff))>0) {
os.write(buff,0,len);
}
//关闭
os.close();
fis.close();
//传输的编码
Transfer-Encoding:chunked
Set-cookie: //cookie信息,后面在介绍
Expires:-1 //告诉浏览器如何缓存页面
Cache-Control:no-cache
Pragram:close/Keep-Alive
举例说明Refresh
response.setHeader("Refresh","5;url=");
表示隔5秒刷新到地址为url的页面
(1)有些网站对及时性要求很高,如股票网站等
所以需要指定该网站不能被缓存
//指定该页面不缓存 response.setDateHeader("Expires",-1);
//为了兼容 response.setHeader("Cache-Control","no-cache"); response.setHeader("pragma","no-cache");
(2)有些网站要求每隔多长时间缓存一次
例如每隔1天缓存一次
response.setDateHeader("Expires",System.currentTimeMillis()*3600*1000*24);
HttpServletResponse的说明
①getWriter()和getOutputStream();区别:
(1)getWriter()用于向浏览器会送字符数据
(2)getOutputStream()向浏览器回送二进制数据和字符数据.
如何选择
如果是回送字符数据,使用getWriter(),
如果 是回送字节数据,使用getOutputStream();
这两个流不能同时使用.比如OutputStream os=response.getOutputStream();
os.write("hello world".getBytes());
PrintWriter out=response.getWriter();
out.println("abc");
为什么会出现这样的情况?
(3)SendRedirect()实现重定向.
通过该方法将信息传送给下一个页面:比如
sendRedirect("welcome?uname=shunping")的形式
优点:传送信息的速度比较快
缺点:它只能传送字符串,而不能传送一个对象
- HttpServletResponse的说明
- HttpServletResponse说明
- JAVA -- HttpServletResponse 的状态码含义及方法说明
- HttpServletResponse的常用方法
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse常用的方法
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- HttpServletResponse的应用
- Qt使用HTTP通信(以调用百度翻译api为例)
- tensorflow实例(3)--传入量的定义与使用
- 分支管理
- Tensorflow下运行数字识别
- 2017年——迷茫的一年
- HttpServletResponse的说明
- Java运行结果返回的是@加一串乱七八糟时
- 2. Add Two Numbers
- kettle的入门
- 刷题笔记:C/C++专项练习7
- Unable to open debugger port (127.0.0.1:63777): java.net.BindException "Address already in use: JVM
- python 标准库 —— 线程与同步(threading、multiprocessing)
- <剑指offer 面试题5>替换空格(Java)
- Java/OSGi ClassLoader