如果希望了解请求和响应的详细内容,可以看我的“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);
}*/
}

最新文章

  1. ZOJ 2771
  2. 快速操作Linux终端命令行的快捷键列表
  3. js 中混乱this
  4. 关于nginx限制IP或IP段的问题2011
  5. 出错处理完美搭配之perror&amp;exit
  6. [ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题
  7. 【HDOJ】3275 Light
  8. IDEA 13》》》14破解
  9. python - 面向对象(一)
  10. C++之单元测试
  11. CF - 96D - Volleyball
  12. React和动态网站接口的经济学
  13. python之路: 线程、进程和协程
  14. openstack初始化Glance数据库时报错解决方式
  15. LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
  16. 修改WordPress后台默认登陆地址提高网站安全性
  17. fasthttp中的协程池实现
  18. hive中left/right join on连接中and与where的使用问题
  19. css3的clip-path方法剪裁实现
  20. Tomcat的四种web应用部署方式详解

热门文章

  1. selenium,phantomJS,python整合的一个小示例,把某个网页画面整体保存成图片格式。
  2. angular中的http拦截器Interceptors
  3. Haproxy的安装与配置
  4. 72.spring boot讨论群【从零开始学Spring Boot】
  5. NYOJ-673悟空的难题~~水题~~
  6. Codeforces 892 A.Greed
  7. [转]android 如何获取第三方app的sha1值
  8. 快速让你明白Objective-C的语法(和Java、C++对比)
  9. UVA 861 组合数学 递推
  10. 离线配置Anaconda3+tensorflow-gpu1.4.0+cuda8.0+cudnn6.0