Session和Cookie

嘿嘿 小弟 再来说说 Cookie Session   老话一句 ·· 忘大拿们不要吝啬批评和建议哦

      首先 什么是Cookie ?

             Cookie 就是 本意指的是 点心 还是就着牛奶一起吃的点心哦。但是呢· 在咱学的这个专业里cookie 的意思当然就变得稍微专业点了 ,cookie 指的是 少量信息的意思。

      那么少量指的是多少的量呢? 

           这里的少量指的是4k, 的量。当然针对每个站点 在同一台机器上的cookie 的数量也是有限制的,通常允许每个站点在同一台机器上放上20cookie

    那么什么又是Session 呢?

    Session 是服务器上的一小块内存,至于具体的大小 就不好得到了,Session 的个数大家可以不必担心,session 是可以放心使用的。但是Session 的正常使用是在浏览器没有禁用Cookie 的情况下的。若浏览器禁用了Cookie 我们也只能用URI 重写的方式来使用Session.(cookie 中存放的是SessionSessionID)

下面我们来看看几个cookie 常用的API

1: 创建一个Cookie Cookie cookie = new Cookie(“key”,value); 呵呵这样new 的方式是不是很像我们学过的map 呢?

2 :在一个action 中获得Cookie 的方法是通过 HttpRequest 对象 request 获得一个 Cookie 的数组 Cookie [] cookies = request.getCookie();

Cookie.setMaxAge (int age) age 指的是时间的长度且是以秒为最小的单位的该函数指定了Cookie 在浏览器上能够 存活 的最长的时间

Age>0 指的是在Age 秒后Cookie 失效

Age=0 指的是立即删除

Age<0 则是将Cookie 先缓存在浏览器的缓存中,所以该Cookie 在浏览器关闭以后就失效了。

Cookie.setPath(“uri”);

这个是一个比较恶心的东西, path 中的参数设置得小心了。使用 Cookie 时千万别弄错了哦!要不然就出事了 .Cookie 的访问 是在当前路径和当前路径的子路径下都可以访问。

Cookie.getName() 返回这个 Cookie 的名字如上述的“ key ”值 , Cookie.getValue() 的值 就是上述的“ value” 的值了

删除 Cookie 的操作是 New 出一个与删除的 Cookie name 相同的 Cookie 这里的 name 指的是那个键的值,之后再将 Cookie.setMaxAge (int age) 中的 age 设置为零 再保存就OK 了。

Session 常用的Api

得到一个Session 的方法是 HttpSession  session = request.getSession();

HttpSession  session = request.getSession(true); 找与当前客户端配对的session 对象找不到则新建一个。

Session.isNew ();判断该对象是不是新创建的

Session 赋值的方法是session.setAttribute(“key”,value);    

得到一个Session 的值的方法是 session.getAttribute(“key”);

  设置Session 在服务器端的有效时间 session.setMaxInactiveInterval(time);

当然如果不设置这个的话 tomcat conf 目录下的 web.xml 中对 Session 的有效时间做了一个初始化的工作       

    <session-config>

        <session-timeout>30</session-timeout>

</session-config>

Session 的有效范围是  

1 建立Session 对象的窗口中有效。
    2.
建立Session 对象的窗口中新开链接的窗口

当浏览器的 Cookie 被禁止时 Session 就无法通过 Cookie 来存 SessionID 了,则新得到的 Cookie 当场就失效,为了保证 Session 的正常使用就要用到一个方法重写 URI 使得浏览器每次提交请求时,在地址栏的末尾都会带上一个 Session ID 从而本机又可以对服务器端的 Session 进行了。

Response.encodeURI(request.getRequestURI.toString());

即在转到某个页面时或者是提交时都会提交隐藏的一列,该效果是强制的将 Session id 地址强行的放在地址栏中 从而达到客户端与服务器端的 Session 不失效的效果。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值