响应报文分析

常见状态码:

状态码状态码描述说明
200OK请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
302Move temporarily重定向,请求的资源临时从不同的地址响应请求。
304Not Modified从浏览器缓存中读取数据,不从服务器重新获取数据。例如,用户第一次从浏览器访问服务器端图片资源,以后在访问该图片资源的时候就不会再从服务器上加载而直接到浏览器缓存中加载,这样效率更高。
404Not Found请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
403Forbidden服务器已经理解请求,但是拒绝执行它
405Method Not Allowed请求行中指定的请求方法不能被用于请求相应的资源
500Internal Server Error服务器内部错误。通常程序抛异常

常见的响应头 :

响应头Key响应头value
location指定响应的路径,需要与状态码302配合使用,完成重定向
content-Type响应正文的类型(MIME类型,属于服务器里面的一种类型,例如文件在window系统有自己的类型,.txt .doc .jpg。文件在服务器中也有自己的类型),同时还可以解决乱码问题。例如:text/html;charset=UTF-8
content-disposition通过浏览器以附件形式解析正文,例如:attachment;filename=xx.zip
refresh页面刷新,例如:3;url=www.itcast.cn //三秒刷新页面到www.itcast.cn

小结

  • 响应行
  • 协议版本号 状态码
    • 状态码:
      • 200(一切正常)
      • 404(找不到资源路径)
      • 500(服务器报异常)
  • 响应头
  • location
    • 指定响应的路径
  • content-type
    • 告诉浏览器文件格式
    • 解决中文乱码问题
    • 告诉浏览器不要解析HTML
  • refresh
    • 定时刷新
  • content-disposition
    * 以附件形式展示图片等资源
  • 响应体
  • 服务器处理的结果响应到浏览器中

定时刷新

  • 实现Servlet控制浏览器跳转页面
    • 要设置响应头信息,并指定跳转页面
    //利用Response对象,设置响应头
    response.setHeader("refresh","x秒;url地址");
    
    

处理响应乱码

  • 发生乱码的原因:
    • Servlet发送浏览器的数据有中文时,是由tomcat响应给浏览器,而tomcat默认的编码为iso-8859-1,浏览器收到tomcat响应的中文数据时,使用iso-8859-1字符集进行解码(iso-8859-1不支持中文),就会出现乱码
  • 解决乱码的方案:
    • 在给浏览器响应时,告知浏览器响应的文本数据采用的编码表
       response.setContentType("text/html;charset=UTF-8")  
       
      

重定向

重定向可以去一个servlet,也可以去一个html静态资源

方法说明
response.setStatus(302);
response.setHeader(“location”, “/otherServlet”);
通过设置响应状态码和响应头实现重定向
response.sendRedirect("/otherServlet");//指定了一个Servlet路径重定向的简写方式
response.sendRedirct(“跳转页面”);//指定了一个html页面重定向的简写方式

注意: 开发中通常使用response.sendRedirect("/otherServlet");来实现重定向
小结

  • 当服务器需要浏览器重新定向(重新请求)时,需要告知浏览器状态码为:302
  • 在开发中,通常使用:response.sendRedirect("/请求路径") 来实现请求重定向
    • 特点:浏览器中的url地址栏中的内容会改变
  • 重定义的特点:一次请求、响应 变为 两次请求、响应

转发和重定向的区别

区别点转发重定向
实现原理服务器内部浏览器执行
请求次数一次两次
浏览器地址栏地址不变化变为第二次请求的地址
能否共享request域能够共享不能共享
作用共享request域对象完成跳转

重定向和请求转发的区别

  • 浏览器地址栏:
    • 重定向:会改变url的地址
    • 请求转发:不会改变url的地址
  • 请求、响应:
    • 重定向: 两次请求、两次响应
    • 请求转发:1次请求、1次响应
  • 功能:
    • 重定向: 页面跳转
    • 请求转发: 页面跳转 、 实现request域中数据共享

请求转发是在当前的服务器上完成,重定向是由浏览为主导,可以在不同的服务器上进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值