Session(会话)

Session

  服务器为每一个浏览器在服务端内存中分配空间,单独穿件一个Session对象,该对象有一个唯一SessionId,并且服务器会将这个SessionId(使用Cookie方式)发送给浏览器;浏览器再次访问服务器,会将SessonId发送给服务器,服务器依据SessionId查找对应Sesson对象.

获取Session

  HttpSession s = request.getSession(boolean flag);

    注:flag默认为true;

使用Session

  1.绑定对象:  void  Session.setAttribute(String name,Object obj);

  2.获取绑定对象:  Object  Session.getAttribute(String name);

  3.移除绑定对象:  void Session.removeAttribute(String name);

删除Session对象

  立即删除:Session.invalidate()

修改Session缺省时间

  void session.setMaxInactiveInterval(int seconds)

浏览器禁用Cookie后果

  1.浏览器禁用Cookie,Session不能用,但有其他方案解决

  2.服务器器默认使用Cookie方式将SessionId发送给浏览器,用户禁用Cookie,则SessionId不会保留在浏览器,服务器可以用URL重写发送SessionId

URL重写

  浏览器访问服务器某个地址,不再使用原来的地址,而是使用改写的地址(在原来地址后面加上SessionId)

  1.链接地址和表单提交,使用response.encodeURL(String url)

  2.重定向,使用response.encodeRedirectURL(String url)

Session优缺点

  优点:

    1)安全(将状态保存在服务端)

    2)Session保存的数据类型丰富,Cookie只能保存字符串

    3)Session保存的数据更多,Cookie大约保存4K

   缺点:

    Session将状态保存在服务器端,占用服务器的内存,如果用户量过大,严重影响服务器的性能.

posted @ 2019-05-28 22:41  hai01  阅读(99)  评论(0)    收藏  举报