(14)javaWeb中的HttpServletResponse类详解
2024-09-25 22:02:26
如果希望了解请求和响应的详细内容,可以看我的“HTTP协议”系列文章
响应体的简单概述:
a,响应报文结构:
b,常见的状态码,返回服务器处理的结果:
c,常见的响应头:
HttpServletResponse常用的方法
1,设置返回内容类型
response.setContentType("text/html");
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。
Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。
类型分类:
<option value="image/bmp">BMP</option>
<option value="image/gif">GIF</option>
<option value="image/jpeg">JPEG</option>
<option value="image/tiff">TIFF</option>
<option value="image/x-dcx">DCX</option>
<option value="image/x-pcx">PCX</option>
<option value="text/html">HTML</option>
<option value="text/plain">TXT</option>
<option value="text/xml">XML</option>
<option value="application/afp">AFP</option>
<option value="application/pdf">PDF</option>
<option value="application/rtf">RTF</option>
<option value="application/msword">MSWORD</option>
<option value="application/vnd.ms-excel">MSEXCEL</option>
<option value="application/vnd.ms-powerpoint">MSPOWERPOINT</option>
<option value="application/wordperfect5.1">WORDPERFECT</option>
<option value="application/vnd.lotus-wordpro">WORDPRO</option>
<option value="application/vnd.visio">VISIO</option>
<option value="application/vnd.framemaker">FRAMEMAKER</option>
<option value="application/vnd.lotus-1-2-3">LOTUS123</option>
2,设置字符编码
response.setCharacterEncoding("UTF-8");
3,设置响应状态码
response.setStatus(200);
4,设置响应头
response.setHeader("privateUser", "yangzi");//也可以添加一些私人的头部信息
5,发送返回内容
response.getWriter().writer(); 发送字符实体内容
response.getOutputStream().writer() 发送字节实体内容
6,重定向
/** * 需求: 跳转到adv.html
* 使用请求重定向: 发送一个302状态码+location的响应头
*/
/* response.setStatus(302);//发送一个302状态码
response.setHeader("location", "/day09/adv.html"); //location的响应头
*/
//请求重定向简化写法
response.sendRedirect("/day09/adv.html");
7,定时刷新
/**
* 定时刷新
* 原理:浏览器认识refresh头,得到refresh头之后重新请求当前资源
*/
//response.setHeader("refresh", "1"); //每隔1秒刷新次页面 /**
* 隔n秒之后跳转另外的资源
*/
response.setHeader("refresh", "3;url=/day09/adv.html");//隔3秒之后跳转到
8,返回内容+contentType配合使用
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 设置响应实体内容编码
*/
//response.setCharacterEncoding("utf-8"); /**
* 1. 服务器发送给浏览器的数据类型和内容编码
*/
//response.setHeader("content-type", "text/html");
response.setContentType("text/html;charset=utf-8");//和上面代码等价。推荐使用此方法
//response.setContentType("text/xml");
//response.setContentType("image/jpg"); //response.getWriter().write("<html><head><title>this is tilte</title></head><body>中国</body></html>");
response.getOutputStream().write("<html><head><title>this is tilte</title></head><body>中国</body></html>".getBytes("utf-8")); /*File file = new File("e:/mm.jpg");
*//**
* 设置以下载方式打开文件
*//*
response.setHeader("Content-Disposition", "attachment; filename="+file.getName());
*//**
* 下载图片
*//*
*//**
* 发送图片
*//*
FileInputStream in = new FileInputStream(file);
byte[] buf = new byte[1024];
int len = 0; //把图片内容写出到浏览器
while( (len=in.read(buf))!=-1 ){
response.getOutputStream().write(buf, 0, len);
}*/
}
最新文章
- ZOJ 2771
- 快速操作Linux终端命令行的快捷键列表
- js 中混乱this
- 关于nginx限制IP或IP段的问题2011
- 出错处理完美搭配之perror&;exit
- [ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题
- 【HDOJ】3275 Light
- IDEA 13》》》14破解
- python - 面向对象(一)
- C++之单元测试
- CF - 96D - Volleyball
- React和动态网站接口的经济学
- python之路: 线程、进程和协程
- openstack初始化Glance数据库时报错解决方式
- LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
- 修改WordPress后台默认登陆地址提高网站安全性
- fasthttp中的协程池实现
- hive中left/right join on连接中and与where的使用问题
- css3的clip-path方法剪裁实现
- Tomcat的四种web应用部署方式详解
热门文章
- selenium,phantomJS,python整合的一个小示例,把某个网页画面整体保存成图片格式。
- angular中的http拦截器Interceptors
- Haproxy的安装与配置
- 72.spring boot讨论群【从零开始学Spring Boot】
- NYOJ-673悟空的难题~~水题~~
- Codeforces 892 A.Greed
- [转]android 如何获取第三方app的sha1值
- 快速让你明白Objective-C的语法(和Java、C++对比)
- UVA 861 组合数学 递推
- 离线配置Anaconda3+tensorflow-gpu1.4.0+cuda8.0+cudnn6.0