JAVA Web学习 多个servlet的处理

多个servlet间的调用和数据共享

1. 状态码

前面一篇文章中提到,servlet将请求处理的结果交付给响应对象,响应对象会将结果给反馈到浏览器上,由Http服务器在推送响应包之前,根据本次请求处理情况,将Http状态码写入到相应包中状态行中;状态码通知浏览器应该如何处理这个结果
状态码是浏览器接下来如何进行操作的重要依据,也可以用来解释浏览器不能提供服务的原因

1.1 状态码分类

分类:
组成:100-----599;分为五个大类
1xx:
最有特征的是100;通知浏览器本次返回的资源文件并不是独立的资源文件,需要在浏览器接受了响应包之后,继续向服务器索要文件
2xx:
最有特征的是200;通知浏览器本次所返回的资源文件是独立的资源文件,浏览器接手之后不需要向服务器在索要文件
3xx
最有特征的是302,通知浏览器本次返回的不是一个资源文件的地址,而是一个资源文件的地址,需要浏览器根据这个地址自动发起请求来索要资源文件
Response.sendRedirect(“资源文件地址”)写入到响应头中的location位置(是在建立一个servelt之后,doPost或者doGet方法中写入)
4xx
最有特征的是404;通知浏览器,由于在服务器中没有定位到访问的资源文件,服务器无法提供资源文件给浏览器,所以进行解释
最有特征的是405;通知浏览器,在服务端中已经定位到了被访问的资源文件(Servlet),但是这个Servlet对于浏览器采用的请求方式不能处理
5xx
最有特征的是500,在服务端已经定位到被访问的资源文件(Servlet)这个Servlet可以接收浏览器采用请求方式,但是Servlet在处理请求期间,由于java异常导致处理失败
500代表的所写的web程序是有问题的,程序上运行出错,其实是最难处理的问题,有一些时候是因为依赖加入的版本问题,或者是导入的包错误,类的描述是不对的

2. 多个servlet的调用规则

前面的文章中简述了一个servlet在面对请求发送和处理的应用,但很多时候是需要多个servlet对请求进行处理,从而便有了多个servlet之间的调用规则
调用规则有两种,一是重定向解决方案,二是请求转发解决方案
请求转发和重定向二者都可以实现页面的跳转,但请求转发的时候,url不会发生变化,重定向的时候,url地址栏会发生变化

2.1 重定向解决方案

在这里插入图片描述在这里插入图片描述

2.2 请求转发解决方案

在这里插入图片描述
在这里插入图片描述

3. 多个servlet的数据共享

多个servlet处理一个请求的时候,中间要将数据给传递出去,作为共享数据
共享方案有多种
ServletContext接口
Cookie类
HttpSession接口

3.1 ServletContext接口

  • 来自于Servlet规范中一个接口,接口实现类由Http服务器负责提供
  • ServletContext相当于公共仓库,在这个仓库存放的数据就是共享数据而这个共享数 据可以被当前网站中所有的Servlet来使用
  • 开发人员习惯于将ServletContext接口修饰的对象称为【全局作用域对象】
    在这里插入图片描述
    使用方法:
    在这里插入图片描述

3.2 Cookie类

原理:用户第一个访问OneServlet。
OneServlet负责创建一个Cookie对象。并写入共享数据
在OneServlet工作完毕后负责【将Cookie对象写入到响应头】
来交给浏览器进行管理
等到浏览器第二次向当前网站发送请求时,必须无条件的
将当前网站之前推送过来的cookie对象写入到请求协议包
中的请求头进行返回,本次为用户提供服务的Two Servlet
进行服务的同时就可以读取到这个cookie对象,从而读取
到由OneServlet写入到Cookie对象中共享数据
在这里插入图片描述
操作流程:
在这里插入图片描述

3.3 HttpSession接口

工作原理:
用户通过浏览器第一次访问OneServlet。OneServlet在提供服务过程中要求 Tomcat为当前用户开发一个【私人储物柜(HttpSession对象)】.Tomcat在创建这个HttpSessio对象时,生成一个唯一编号.这个编号称为sessionId。在 OneServlet工作完毕后。Tomcat将sessionId作为一个Cookie对象 (‘JSESSIONID’,柜子编号)写入到响应头
然后浏览器在接收到响应包之后,将这个cookie保存在浏览器的内存中等到用户第二次来访问这个网站时,自动发送这个cookie对象此时提供服务的TwoServlet 就可以凭借柜子编号得到用户的私人储物柜并读取由OneServlet写入的共享数据
在这里插入图片描述
操作流程:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值