随笔 - 7  文章 - 3  trackbacks - 0
<2011年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜





会话跟踪,其原理是什么。

我们都知道,为了在WEB服务器中识别发出请求的用户,对于每一个访问者WEB服


务器都会给其创建一个session。在会话的创建于使用中,比较容易犯错误的地


方主要是当我们需要读取出保存在session的数据时,没有转化为相应的格式,


导致程序出错。比如:

HttpSession session=request.getSession();


|\\\\\\\\\\


注意Session在为进行HttpSession session=request.getSession();之前


out.println(request.getSession());


HttpSession hs=request.getSession();
out.println(hs);
两者执行的结果相同;


第一个是获得Tomcat内置的默认Session (就是会话建立时自动生成的Session唯一标记本次会话)


第二次 是把 唯一的标识Session 通过request.getSession()获取内存地址 给hs 然后hs


会获取Session 然后对其操作  其实本质上是对本次会话的唯一Session进行操作.


\\\\\\\\\\\\\\

String MyName="Hello Accp";

session.setAttribute("name",MyName);

String name=seeeion.getAttribute("name");//错误的

String name=(String)seeeion.getAttribute("name");//正确的

由于WEB服务器为用户创建的Session会占用系统内存,所以通常服务器都需要及


时的删除Session信息以释放资源,方法有:

①关闭浏览器,关闭Session。

②调用HttpSession的invalidate()方法,删除HttpSession对象和数据。

③两次访问时间间隔大于Session定义的非活动时间。

在Servlet中的HttpRequestServlet对象创建HttpSession对象有两种方法:

①HttpSession session=request.getSession(boolean value);

②HttpSession session=request.getSession();

第一中方法中,布尔值为true时,如果存在于当前请求相关联的会话,就返回该


会话,否则就返回一个新会话。反之,布尔值为false时,如果存在当前请求相


关联的会话,就返回该会话,否则就返回null。

第二种方法与第一种方法的第一种情况相同。通常我们都喜欢使用第二种方法。

posted on 2011-10-16 21:29 Tomas 阅读(226) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: