一 HTTP响应的格式
web服务器对客户端的响应一般包含:一个状态行,一些响应报头,一个空行和相应的文档构成。
1,状态行:
状态行由HTTP版本,一个状态代码以及一段对应状态代码的简短消息组成,表示请求是否被理解或被满足。HTTP版本由服务器决定。状态码一般由系统自动设置为200。也可以用Servlet设置状态码。消息巍峨自定义。
2,响应报。
3,空行
4,文档
二 如何设置状态代码
在向客户程序发送任何文档内容之前调用方法设置状态代码。
使用HttpServletResponse接口的setStatus,sedRedirect或sendError方法设置状态码。
状态代码由3位数字组成,第一个数字定义了响应的类别,后面两位数字没有具体的分类。
在servlet中使用HttpServletResponse中定义的常量来引用状态代码。
1 设置任意状态代码:setStatus(int)方法
在用PrintWriter实际返回如何内容之前调用setstatus方法。
参数可以为int类型状态代码,也可以为HttpServletResponse中定义的常量。
2 设置302和404状态代码:sendRedirect(String url)和sendError(int code,String msg)方法。 二者抛出IOException。
状态代码302命令浏览器连接到新的url。sendRedirect方法生成302响应及Location报头,给出新的url放入Location报头之前,系统自动将相对url转换为绝对url。
状态代码404用于服务器没有找到文档的情况。sendError方法发送状态代码及小段简短信息,信息被自动安排在HTML文档中发送给用户。
三 状态代码的作用
四 重新连接,重定位,刷新的区别:
重新连接不显示任何中间页面。
刷新的时候浏览器会临时显示一个中间页面。
重定位由另外的Servlet或网页生成结果,而非该ServletB本身。
重定位作用:
预先知道目的地,可以验证相关数据后再转送到相关目的地。 通过自己的网站公布用户需要访问的网站链接,跟踪用户的行为,统计访问等。得到相关信息后,再将用户重定向到实际需要访问的网站。
五 进行重新定位和跳转到错误页面
使用sendRedirect(String url)方法向浏览器发送302状态代码,浏览器自动重新连接到Location响应报头中sendRedirect方法给出的URL,重新定位到相关页面。
使用sendError(response.SC_NOT_FOUND,String msg)方法设置输出的错误提示信息。
六 根据浏览器的不同将用户重新定位到相关页面的Servlet。
获取User-Agent请求报头区分不同的浏览器类型,使用sendRedirect(String url)方法向浏览器发送302状态代码,浏览器自动重新连接到Location响应报头中sendRedirect方法给出的URL,重新定位到相关页面。
服务器响应的生成:HTTP状态代码——HttpServletResponse接口应用,布布扣,bubuko.com
服务器响应的生成:HTTP状态代码——HttpServletResponse接口应用
原文:http://www.cnblogs.com/zyn1990/p/3873152.html