一、 HTTP 响应的格式
响应行: HTTP 版本、响应码、响应描述
响应头
空行
消息体
HTTP 默认的文本编码为: ISO-8895-1
二、 响应码的设置
1. 什么是响应码
响应码位于 HTTP 响应的响应行中,他用来描述当前 Servlet 的一些重要信息。常见的响应码有 200.302 , 404 , 500
2. 如何设置响应码
通过 setStatus() 设置状态码,除了 302 和 307 外每个状态码都有一个对应的常量。
特殊的几个状态码设置:
sendError(int code,String info): 用来设置 404 状态码
sendRedirect(String URL): 请求重定向, 302 状态码
3. 响应码的作用
响应码可以把用户重定向到另一个网站( 302 ),可以指示出后面附加的文档是什么类型,可以告诉用户必须提供密码等信息( 404 )。
4. 什么是请求重定向
当外部请求到来时,相应的 Servlet 中没有找到对应的资源的时候就会给客户端发送一个别的服务器的 URL ,让客户端去连接这个资源。这种方式要求客户端发送 2 次请求,会极大浪费资源。
三、 设置响应头
1. 什么是 MIME
MIME 就是表示发送到客户端的内容的格式,我们通过设置 MIME 告诉客户端该用什么形式正确显示响应的内容,比如在网页中显示 EXCEL 电子表格。
2. 响应头的作用
HTTP 响应头能够告诉客户端一些比较重要的信息:比如响应的内容类型,内容的长度,响应的时间等。
3. 怎么设置响应头
通过 setHeader ( String name,String value )设置响应头。特别的比如:
setContextType(“text/html”) 与 setHeader(“Context-type”,”text/html”) 的功能和意义是一样的,只是后者的写法更加简洁。
四、 设置消息体
1. 消息体的内容
HttpServletResponse 本身返回的是一个空的 Response 对象,其内容是需要我们人为输入的。
2. 消息体的设置
我们一般使用 response.getWrite() 获得字符输出流,利用 response.getOutputStream() 获得字节输出流。下载一般用字节流进行传输,因为图片、音乐等的传播都是通过字节进行传播的。
3. 网页自动刷新和跳转的设置
通过 setHeader 方法实现
Response.setHeader(“Refresh”,”time”,”URL”).
4. 实现下载功能的步骤
首先建立字节输入流和一个数组并将文件读入到数组中
接着 response.setHeader(“Content-disposition”,”attachment;filename=”fileName) 来设置好 MIME 。
最后通过输入出输出。