来一servlet规范中的一个接口。在tomcat中存在servlet-api. jar在tomcat中负责提供这个接口的实现类。
如果两个servlet来自同一个网站。那这两个servlet可以通过网站的ServletContext实例对象实现数据共享。
每一个网站都存在一个全局作用域。这个全局作用域对象(相当于一个Map),在这个网站中OneSerclet可以将一个数据存入到全局作用域对象,当前网站中其他Servlet此时都可以从全局作用域中得到这个数据。
ServletContext application=request. getServletContext();
applicaton. setAttribute("key",数据);
ServletContext application=request. getServletContext();
object 数据=aplication. getAttributA("key");
全局作用域里空间有限,只能存入关键数据。内容过多可能会导致死机。
cookie来自于servlet规范中的一个工具类,存在于servlet-api. jar中。
如果两个servlet来自同一个网站,并且为了同一个用户服务,此时可以通过cookie进行数据共享。
用户通过浏览器第一次向网站发送请求申请一个servlet,运行期间,创建一个cookie存储与当前用户相关的数据,在这个servlet工作完毕后,会将cookie写入到响应头之中,交还给浏览器。
浏览器收到响应包之后将cookie存储在浏览器的缓存中,一段时间后,用户通过同一个浏览器,再次向同网站发起请求申请另一个servlet,这个时候浏览器需要无条件的把将网站给的cookie推送回去,写入到请求头之中。
此时这个另一个serclet运行时,就可以通过读取请求头中的cookie中信息,得到第一个servlet提供的共享数据。
cookie card=new cookie(“key”,“数据”);
cookie card1=new cookie("key","数据”);
cookie cookies[ ]=request. getcookies();
String value=card. getvalue();
- httpsession接口来自servlet规范下的一个接口。存在与tomcat中的servlet-api. jar其实现类由http服务提供。tomcat提供jar包。
- 如果两个servlet来自同一个网站那么可以通过httpsession对象数据共享。
- 开发人员习惯将它称为,会话作用域对象。
- 存储位置不同,cookie存放在用户电脑内存中。而httpsession存放在服务器的内存。
- 可以存储的数据类型不同,cokie只能存字符型。而httpsession可以存任意类型。
- 存储数量不同,cookie只能存一个键值对,而httpsession可以存多个键值对。
- cookie相当于会员卡,httpsession相当于保险箱。
在同一个网站中如果两个servlet通过请求转发调用,那么彼此之间使用同一个请求协议包,一个请求协议包对应的是一个请求对象,因此几个servlet之间使用了同一个请求对象,此时可以利用这个请求对象在两个servlet之间共享数据。