JSP:数据的存储

数据的存储

  • Cookie
  • Session
  • Application

解决乱码问题

设置编码格式String URLEncoder.encode(变量,编码格式)
设置解码格式String URLDecoder.decode(变量解码格式)
  • 编码和解码通常一起使用
  • 适用于多种场合

Cookie

  • 什么是Cookie:数据存储对象之一

  • Cookie的作用:临时以文件的形式将数据存储在用户的计算机上

  • 保存数据的形式:key-value

  • 保存数据的位置:浏览器的temp文件夹(每个浏览器的temp文件夹互相独立)

  • 保存数据的种类:账户信息(不存密码)、搜索记录、…

注意:

  • 同一个浏览器下,Cookie对于该浏览器中打开的所有网站都是透明的!!!
  • 不同浏览器不能获取对方的cookie
  • Cookie的使用:

    创建Cookie对象Cookie cookie = new Cookie(String key,String value)
    保存Cookie对象response.addCookie(Cookie cookie)
    设置Cookie的保存时间cookie.setMaxAge(int time)
    读取Cookie对象Cookie[ ] cookies=request.getCookies()
    获取已读取对象中的keycookies.getName()
    获取已读取对象中的valuecookies.getValue()

注意:

  • Cookie保存在客户端,服务器没有权限控制客户端的内存,所以只能以String类型存储键值对
  • Cookie对象由response保存
    • 保存不能放在转跳之后,因为保存Cookie是浏览器行为,如果保存放在转跳之后,虽然代码会正常执行,但是浏览器不会保存Cookie
  • Cookie对象的保存时间以为单位
  • Cookie对象由request读取
    • 使用Cookie数组接收读取到的对象

session(会话)

  • 什么是会话:浏览器与服务器之间的一次通话,每次打开浏览器将自动产生一个新的会话对象,在原浏览器不关闭的情况下,访问任何网站都不改变会话对象

注意:重新打开浏览器或者打开新的浏览器,都算一次新的会话

  • 会话的作用:可以在多次请求中保存和使用数据
  • 如何区别会话:每一次会话,服务器都会给客户端分配一个全服务器唯一的sessionid,客户端向服务器发起请求时会携带该sessionid**(服务器重启时,sessionid才会从服务器上消失)**

注意:因此浏览器无法得到其他浏览器的会话数据,也得不到该浏览器上一次的会话数据

  • session运行在哪里:服务器

  • session的生命周期:通常为20分钟作用(如果用户长时间不进行网页操作)

  • session的使用:

    session对象保存数据session.setAttribute(String key,Object value)
    session对象获取数据session.getAttribute(String key,Object value)

注意:由于session运行于服务器,所以session对象有控制内存的权限,也因此session的value能以Object的形式存储(Object—>要开辟空间—>要运行Java代码)

application

  • 什么是application: 当网站服务器开启时,application对象就被创建,所有用户访问该网站时共用同一个application对象**(服务器关闭时,application对象被清除)**

  • application的作用:存储所有用户的数据

  • application的缺点:服务器运行时间较长时,application占用的内存较大

  • application运行在哪里:服务器

  • application的使用:

    application对象保存数据application.setAttribute(String key,Object value)
    application对象保存数据application.getAttribute(String key)

Cookie、session、application的区别

CookieSessionApplication
程序运行在哪里客户端服务器服务器
数据存储在哪里客户端服务器服务器
以什么类型存储数据StringObjectObject
数据开放权限存储用户个人数据,浏览器间不通用存储用户个人数据,浏览器只有读权限存储所有用户数据,数据完全公开
数据什么时候清除浏览器清除服务器重启服务器重启
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值