一 HTTP响应的格式web
web服务器对客户端的响应通常包含:一个状态行,一些响应报头,一个空行和相应的文档构成。 浏览器
1,状态行:缓存
状态行由HTTP版本,一个状态代码以及一段对应状态代码的简短消息组成,表示请求是否被理解或被知足。HTTP版本由服务器决定。状态码通常由系统自动设置为200。也能够用Servlet设置状态码。消息巍峨自定义。服务器
2,响应报。post
3,空行网站
4,文档url
二 如何设置状态代码spa
在向客户程序发送任何文档内容以前调用方法设置状态代码。.net
使用HttpServletResponse接口的setStatus,sedRedirect或sendError方法设置状态码。code
状态代码由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,从新定位到相关页面。