session相关知识

来源:互联网 发布:达益网络 编辑:程序博客网 时间:2024/06/05 18:34

       1、Session小结

            ①  Session是存在服务器的内存中;

            ②  一个用户的浏览器是独占一个session域对象;

            ③  Session的生命周期默认为30min,可以通过web.xml文件对生命周期进行修改;

                  修改方式有两种:

                       a、在tomcat中,conf/web.xml文件中进行修改

                            <session-config>

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

                            </session-config>

                        b、在web应用中,web.xml文件

            ④  Session中可以存放多个属性

            ⑤  Session中也可以存放多个对象

            ⑥  Session.setAttribute(‘name’,val),如果名字重复,则会替换该属性。


      PSCookie知识点补充

        在Cookie中,不能够传入中文,否则读取数据出现乱码的情况。

            解决方法如下:

               存放

                 使用java.net.URLEncodder.encode(‘胡蝶’,”utf-8”);

                 可以传入的值转换成为utf-8的格式,

               读取值得时候进行解码

                 使用java.net.URLDecoder.decode(cookie.getvalue(),”utf-8”);


       2、Session的生命周期

              session.getMaxInactiveInterval(20);表示设置的时间为20S

          问题:通过这种方式设置的是session的(间隔时间)发呆时间,那何为发呆时间?

               其实所谓的发呆时间就是指如果在这20s的时间内不去访问这个session中存储的属性,该session中的属性           就会失效,也就是说无法访问到,如果在第19S中的时候对该session中的属性进行访问,那session则会从你             19s访问属性的 这一刻重新计算时间。

               即表示当时间超过了20s,这个session就不存在了。

 

        ¤如果重启tomcat,或者reload web应用或者关机之后,session就会失效。

        ¤我们也可以通过函数的方式,让session失效

             Invalidate()=è该方法是让session中所有的属性失效,一般用于银行的登录系统中,如安全退出。

       对比Cookie

           Cookie设置的是cookie.getMaxAge(20);

          该Cookie设置的生命周期是累计的时间,如果设置为20s那就表示只要超过这20s不访问Cookie中的属性,那该      属性就是失效的。就算在第19S对Cookie中的属性进行访问,在20s之后,Cookie中的属性依然会失效,不会重新      计算时间。


0 0
原创粉丝点击