ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

servlet数据数据通信

2022-01-12 19:31:55  阅读:151  来源: 互联网

标签:数据通信 作用域 servlet 对象 cookie 全局 数据 请求


1.servlet数据共享方案提供的4种方案:

  1. servletContext接口;
  2. cookie类;
  3. HttpSession接口;
  4. HttpServletRequest接口;

  1. ServletContext接口:

1.介绍:

            来一servlet规范中的一个接口。在tomcat中存在servlet-api. jar在tomcat中负责提供这个接口的实现类。

            如果两个servlet来自同一个网站。那这两个servlet可以通过网站的ServletContext实例对象实现数据共享。

         开发人员习惯于将这个接口称为,全局作用域对象。

2.工作原理:

           每一个网站都存在一个全局作用域。这个全局作用域对象(相当于一个Map),在这个网站中OneSerclet可以将一个数据存入到全局作用域对象,当前网站中其他Servlet此时都可以从全局作用域中得到这个数据。

3.全局作用域对象生命周期:

         在Http服务器启动过程中,自动生成一个全局作用域对象。

          在服务器运行期间,一个网站只能有一个全局作用域对象。

          在服务器运行期间,全局作用域对象一直存活。

          在服务器关闭时,服务器关闭全局作用于对象。

全局作用域对象生命周期贯穿网站整个运行期间

4.命令实现:

存入:

          1)通过请求对象向tomcat索要当前网站中全局作用域对象

ServletContext    application=request. getServletContext();

          2)将数据添加到全局作用域对象作为共享数据。

applicaton. setAttribute("key",数据);

提取:

      1)通过请求对象向tomcat索要网站中全局作用域对象。

ServletContext    application=request. getServletContext();

      2)从全局作用域对象得到指定关键字对应数据。

object   数据=aplication. getAttributA("key");

全局作用域里空间有限,只能存入关键数据。内容过多可能会导致死机。

2. cookie

  1. 介绍:

          cookie来自于servlet规范中的一个工具类,存在于servlet-api. jar中。

           如果两个servlet来自同一个网站,并且为了同一个用户服务,此时可以通过cookie进行数据共享。

           cookie存放当前用户的私人数据,共享数据中提高服务质量

          在生活中,cookie相当于用户在服务端得到的“会员卡”

        2.原理:

        用户通过浏览器第一次向网站发送请求申请一个servlet,运行期间,创建一个cookie存储与当前用户相关的数据,在这个servlet工作完毕后,会将cookie写入到响应头之中,交还给浏览器。

       浏览器收到响应包之后将cookie存储在浏览器的缓存中,一段时间后,用户通过同一个浏览器,再次向同网站发起请求申请另一个servlet,这个时候浏览器需要无条件的把将网站给的cookie推送回去,写入到请求头之中。

        此时这个另一个serclet运行时,就可以通过读取请求头中的cookie中信息,得到第一个servlet提供的共享数据。

         3.实现命令:

       创建一个cookie对象。

  cookie   card=new   cookie(“key”,“数据”);

  cookie card1=new  cookie("key","数据”);

  这个cookie也相当于map

一个cookie只能存一对键值对

这个键值对只能是两个字符串

        将cookie写入到响应头,交给浏览器

      resp. addcookie(card);

      resp. addcookie(card1);

另一个servlet怎么调用这个数据

先调用请求对象从请求头里得到浏览器返回的cookie

  cookie   cookies[ ]=request. getcookies();

  通过遍历得到每一个key和value

  for(Cookie   card:cookies)

{

String   key=card. getname();

String   value=card. getvalue();

}

HttpSeession接口:

  1. 介绍
  1. httpsession接口来自servlet规范下的一个接口。存在与tomcat中的servlet-api. jar其实现类由http服务提供。tomcat提供jar包。
  2. 如果两个servlet来自同一个网站那么可以通过httpsession对象数据共享。
  3. 开发人员习惯将它称为,会话作用域对象。
  1. httpsession与cookie的区别
  1. 存储位置不同,cookie存放在用户电脑内存中。而httpsession存放在服务器的内存。
  2. 可以存储的数据类型不同,cokie只能存字符型。而httpsession可以存任意类型。
  3. 存储数量不同,cookie只能存一个键值对,而httpsession可以存多个键值对。
  4. cookie相当于会员卡,httpsession相当于保险箱。
  1. 命令实现

 

  1. httpservletrequest接口实现共享数据

一      介绍:

在同一个网站中如果两个servlet通过请求转发调用,那么彼此之间使用同一个请求协议包,一个请求协议包对应的是一个请求对象,因此几个servlet之间使用了同一个请求对象,此时可以利用这个请求对象在两个servlet之间共享数据。

习惯被称之《请求作用域对象》。

二        实现命令:

 

标签:数据通信,作用域,servlet,对象,cookie,全局,数据,请求
来源: https://blog.csdn.net/qq_55471073/article/details/122460463

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有