JSP数据交互(二)application cookie
一、application
作用于整个web项目,项目启时创建,项目关闭时销毁,由项目创建保存于服务器内存中 。
因此application可以实现多个用户之间的数据共享
全部方法见 application方法大全
内置对象作用域:
二、cookie
什么是cookies?
大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.
Cookie在远程浏览器端存储数据并以此跟踪和识别用户的机制。从实现上说,Cookie是存储在客户端上的一小段数据,浏览器(即客户端)通过HTTP协议和服务器端进行Cookie交互。
Cooke独立于语言存在,严格地说,Cookie并不是由PHP、Java等语言实现的,而是由这些语言对Cookie进行间接操作,即发送HTTP指令,浏览器收到指令便操作Cookie并返回给服务器。因此,Cookie是由浏览器实现和管理的。
当我们连接web项目并获得响应时,会自动生成cookie(session基于cookie实现,在session创建完成后当响应时客户端时会将session id随着响应发送给cookie储存起来)。
当我们发送请求时,如果session建立完成,就已经响应,那么此时响应里没有session id 当session建立完成后如果再发送请求,响应时session id此时会随着响应一起发送给客户端cookie.由此说明,响应并不是必须有session才能响应。
平时浏览器上自带的存储账号密码功能使用的cookie并不是自动生成的cookie而是当用户选择保存后,浏览器预先写好的代码执行创建一个额外的cookie用来保存账号密码,与浏览器自动生成的不是同一个。
实际应用:
创建: Cookie newCookie = new Cookie(String key, String value);
写入:response.addCookie(newCookie);
读取:Cookie[] cookies = request.getCookies();
方法:1.setMaxAge(mm) 设置cookie有效期,单位秒
2.int getMaxAge(); 获取cookie有效期,单位秒
3.setValue(String value),对cookie进行赋值
4.String getValue(); 获取cookie值
5.String getName(); 获取cookie名称
服务器建立cookie,会随着response发送到前台,所以建立cookie后添加至response,当客户端请求后服务器响应时发送到客户端。
当对服务器发送请求时会将session及cookie自动发送过去,然后后台使用request获取。