1、SESSION
session是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为"Session Cookie",以区别Persistent Cookies(通常所说的Cookie).Session Cookie是存储在浏览器中,并不是写在硬盘上的,但是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就可以在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。
通常Session Cookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时可以把SessionID保存在Persistent Cookie中,然后再新的窗口中读出来,就可以得到上一个窗口的SessionID了,这样通过Session Cookie和Persistent Cookie的结合,实现了跨窗口的会话跟踪。
2、COOKIE
所谓Cookie,只是一条极为短小的信息,它能够被网站自动地文本方式放置在一台电脑的硬盘中。通过Cookie,网站可以识别你是第一次访问,或是又一次访问它。网站还可以利用Cookie了解你对哪些内容感兴趣,收集与用户有关的信息,例如记录自动登录的时间限制,记录用户名,投票仅一次的限制等等。在你浏览某些网站的时,网站的程序会在你不知不自觉中将一个小的Cookie(作为一个文本文件)存储在你的硬盘中。如果你想知道自己电脑里都有什么样的Cookie,那么请在Windows目录下寻找Cookie的文件夹。
一个常见的误解是以为session在有客户端访问时就被创建然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。
注意!!!!!!!!
如果JSP没有显示的使用 <%@ page session="false"%>关闭session
则JSP文件在编译成Servlet时将会自动加上这样一条句
HttpSession session = HttpServletRequest.getSession(true)
这也是JSP中隐含的 session对象的来历。
你可以自己去tomcat的work\Catalina\目录下查看编译好的jsp文件。
所以不是按照jsp的运行来看的,而是看你是否调用 HttpServletRequest.getSession(true)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)