Jsp使用httpsession的对象来跟踪用户的操作状态。Httpsession是一个建立在cookies和URL-rewriting上的高质量的界面。Session的信息保存在服务器端,session的id保存在客户机的cookies中,实际上,许多服务器上,如果浏览器的支持的话他们聚使用cookie,但是如果不支持或者废除了的话就自动转化为url-rewriting,session 自动为每个流程提供了方便存储信息的方法。
Session一般在服务器上设置了一个30分钟的国旗时间,当客户停止活动后自动失效。Session中保存和检索的信息不能使基本的数据类型 如 int,double等,而必须是Java的相应的对象,如Double,Integer。
注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);
这也是JSP中隐含的 session对象的来历。由于session会耗费内存资源,因此,如果不盘算使用session,应当在所有的JSP中关闭它。
Httpsession具有如下api
getid 此方法返回唯一的标识,这些标识为每个session二产生。只有一个单一的值与一个Session联合时,或当日志信息与先前的session有关时,它被当做键名用。
GetCreationTime 返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可以将此值传给date constructor 或者gregorian calendar得方法set timelnmillis。
GetLastAccessesTime 返回session最后被客户发送的时间。最小单位为千分之一秒。
GetMaxinActiveInterval 返回总时间(秒)负值表示session永远不会超时。
getAttribute 取一个session相联系的信息。
Integer item =(Integer) session.getAttrobute(“item”);
setAttribute 提供一个关键词和一个值。会替换掉任何以前的值。
Session.setAttribute(“itemvalue”,itemname);
在应用中setAttribute和getAttribute用的最多 例子如下:
1、test1.jsp
<html>
<head>
<tittle>Document</tittle>
</head>
<body bgcolor=”#ffffff”>
Session.setAttribute(“str”,new String(“this a test”));
</body>
</html>
2、test2.jsp
<html>
<head><title>new Document </title>
</head>
<body bgcolor=”#ffffff”>
<%String is_str=null;
is=str=(String)session.getAtribute(“str”);
Out.println(“从session 里取出的值为:”+is_str);
</body>
</html>