zoukankan      html  css  js  c++  java
  • 四种会话跟踪技术

    1.Cookie:

    Cookie它是存储在客户端或者客户端浏览器上的文本文件,很容易就可以查看到.
    所以,不能使用Cookie存储敏感数据,比如银行卡密码
    不能使用Cookie来做必要的功能。
    Cookie不能存储中文
    使用URL编码来简介存储中文
    username = URLEncoder.encode(username)
    //解码
    name = URLDecoder.decode(name)

    2.Session

    Session:会话
    用户使用浏览器,进行一系列的访问,这一个过程就是一个会话
    也就是说,多个请求共享一个会话
    会话在第一次访问的时候就被创建

    HttpSession:默认有效时间是30分钟
    使用代码设置session的失效时间
    session.setMaxInactiveInterval(100);
    使用配置文件设置session的失效时间
    <session-config>
    <session-timeout>200</session-timeout>
    </session-config>
    让session立刻失效
    session.invalidate();
    注意:
    当使用代码和配置文件同时配置session的失效时间的时候
    以小的时间为准[注意,他们的单位都是分钟]

    Session实现的机制:它是基于Cookie
    当用户第一次访问的时候,会自动生成一个Cookie,用来记录当前Session的ID值。
    这个Cookie的key是JSESSIONID value就是Session 的ID值

    当Cookie被阻止,应该强制把JSESSIONID传过去,使用URL重写
    <a href=<%=response.encodeURL("ViewAllUserServlet")%>>查看所有用户强制传送JSESSIONID</a>

    3.Hidden

    .隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话应用。

    4.url 重写

    URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。 见 http://blog.csdn.net/xh16319/article/details/8464055

    为了防止用户禁用cookie,可以使用URL重写技术来实现会话跟踪!

    url重写原理:当服务器程序调用request.getSession();代码时,其会先看request.getCookies()方法中有没有名为JSESSIONID的cookie带过来,如果没有,就看URL有没有被重写(即附带JSESSIONID),如果有,则从服务器中找key为JSESSIONID的session对象,如果都没有,则创建一个新的session。如果用户禁用了cookie,则只能通过URL重写方式实现会话跟踪!

  • 相关阅读:
    Git 简要教程
    SDK更新失败问题解决
    常用安卓操作
    MongoDB本地安装与启用(windows 7/10)
    windows 快捷键收集
    windows 常用命令
    Lambda Expression Introduction
    对 load_breast_cancer 进行 SVM 分类
    Support Vector Machine
    使用 ID3 对 Titanic 进行决策树分类
  • 原文地址:https://www.cnblogs.com/arvins/p/8419228.html
Copyright © 2011-2022 走看看