servlet数据数据通信

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. 命令实现servlet数据数据通信

 

  1. httpservletrequest接口实现共享数据

一      介绍:

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

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

二        实现命令:servlet数据数据通信

 

上一篇:Servlet——HTTP状态 405 - 方法不允许


下一篇:Servlet简单应用