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()
    获取已读取对象中的key cookies.getName()
    获取已读取对象中的value cookies.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的区别

Cookie Session Application
程序运行在哪里 客户端 服务器 服务器
数据存储在哪里 客户端 服务器 服务器
以什么类型存储数据 String Object Object
数据开放权限 存储用户个人数据,浏览器间不通用 存储用户个人数据,浏览器只有读权限 存储所有用户数据,数据完全公开
数据什么时候清除 浏览器清除 服务器重启 服务器重启
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章