Servlet学习笔记-Http状态码和多个Servlet之间调用的规则

Http状态码

  1. 介绍
    三位数字组成的符号。
    Http服务器在推送响应协议包之前,根据本次请求处理情况,将Http状态码写入到响应包中的状态行上。
    如果Http服务器针对本次请求,返回了对应的资源文件,通过Http状态码通知浏览器应该如何处理这个结果。
    如果Http服务器针对本次请求,无法返回对应资源文件,通过Http状态码解释不能提供服务的原因。

  2. Http状态码分类
    100~599之间:
    1XX常见的有:
    【100】通知浏览器本次返回的资源文件并不是一个独立的资源文件,需要浏览器在
    接收响应包之后,继续向Http依赖所需要的资源文件。
    2XX常见的有:
    【200】通知浏览器本次返回的资源文件是一个完整的资源文件。
    3XX常见的有:
    【302】通知浏览器本次返回的不是一个资源文件的内容,而是一个资源文件的地址,
    需要浏览器根据这个地址,自动发起请求索要资源文件。
    4XX常见的有:
    【404】通知浏览器,由于服务端没有定位到被访问的资源文件,因此无法提供帮助。
    【405】通知浏览器,在服务端已经定位到被访问的资源文件(servlet),但是这个
    Servlet对于浏览器采用的请求方式不能处理。
    5XX常见的有:
    【500】通知浏览器,在服务端已经定位到被访问的资源文件(servlet),这个Servlet
    可以接收浏览器采用的请求方式,但是Servlet在处理请求期间,由于Java异常导致处理
    失败。

多个Servlet之间调用的规则

  1. 前提条件:
    某些来自于浏览器发送请求,往往需要服务端中多个Servlet协同处理。但是浏览器一次只能访问一个Servlet,导致用户手动通过浏览器发起多次请求才能得到服务。
    这样增加用户获得服务,导致用户放弃当前网站。

  2. 提高用户使用感受规则:
    无论本次请求涉及到多少个Servlet,用户只需要“手动”通知浏览器发起一次请求即可。

  3. 调用规则:
    重定向解决方案
    请求转发解决方案

重定向解决方案

  1. 工作原理
    用户第一次通过“手动方式”通知浏览器访问OneServlet,OneServlet工作完毕后,将TwoServlet地址写入到响应头的location属性中,导致Tomcat将302状态码写入到状态行。
    在浏览器收到响应包之后,会读取到302状态,此时浏览器会自动根据响应头中的location属性地址发起第二次请求,访问TwoServlet去完成请求中剩余的任务。
    在这里插入图片描述

  2. 实现命令:
    responce.sendRedirect(“请求地址”);
    将地址写入到响应包中响应头的location属性中

  3. 浏览器请求次数:
    至少两次,只有第一次是手动请求

  4. 请求地址:
    可以请求当前网站下的资源文件地址,也可以申请外部网站(百度、搜狐…)

  5. 请求方式:
    Get

  6. 缺点
    重定向解决方案需要在浏览器与服务器之间进行多次往返,大量时间消耗在往返次数上,增加用户等待时间。

请求转发解决方案

  1. 工作原理:
    用户第一次通过“手动方式”通知浏览器访问OneServlet,OneServlet工作完毕后,通过当前请求对象代替浏览器向Tomcat发送请求,申请调用TwoServlet。
    Tomcat收到请求后,自动调用TwoServlet,完成剩余任务。
    在这里插入图片描述

  2. 实现命令:
    请求对象代替浏览器向Tomcat发送请求
    //1.通过当前浏览器生成一个“资源文件申请报告”对象
    RequestDispatcher report = request.getRequestDispatcher("/请求资源文件名");
    //2.把当前申请报告对象发送给Tomcat
    report.forward(request,responce);

  3. 浏览器请求次数:
    只有一次

  4. 请求地址:
    只能请求当前网站下的资源文件地址

  5. 请求方式:
    根据客户端发送请求方式决定

  6. 优点:
    无论本次请求涉及到多少个Servlet,用户只需要手动通过浏览器发送一次请求,Servlet直接调用。
    发生在服务器计算机上,节省服务器与浏览器之间的交互次数,增加处理服务速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值