ttp协议是无状态的,即信息无法通过http协议本身进传递。为了跟踪用户的操作状态,asp应用session对象。jsp使用一个叫httpsession的对象实现同样的功能。httpsession 是一个建立在cookies 和url-rewriting上的高质量的界面。 session的信息保存在服务器端,session的id保存在客户机的cookie中。事实上,在许多服务器上,如果浏览器支持的话它们就使用cookies,但是如果不支持或废除了的话就自动转化为url-rewriting,session自动为每个流程提供了方便地存储信息的方法。
session一般在服务器上设置了一个30分钟的过期时间,当客户停止活动后自动失效。session 中保存和检索的信息不能是基本数据类型如 int, double等,而必须是java的相应的对象,如integer, double.
httpsession具有如下api:
getid 此方法返回唯一的标识,这些标识为每个session而产生。当只有一个单一的值与一个session联合时,或当日志信息与先前的sessions有关时,它被当作键名用。
getcreationtime 返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可将此值传给date constructor 或者gregoriancalendar的方法settimeinmillis.
getlastaccessedtime 返回session最后被客户发送的时间。最小单位为千分之一秒。
getmaxinactiveinterval 返回总时间(秒),负值表示session永远不会超时。
getattribute 取一个session相联系的信息。(在jsp1.0中为 getvalue)
integer item = (integer) session.getattrobute("item") //检索出session的值并转化为整型
setattribute 提供一个关键词和一个值。会替换掉任何以前的值。(在jsp1.0中为putvalue)
session.setattribute("itemvalue", itemname); // itemvalue 必须不是must简单类型
在应用中使用最多的是getattribute和setattribute.现以一个简单的例子来说明session的应用, test1.jsp(信息写入session),test2.jsp(从session读出信息)。
test1.jsp
<html>
<head>
<title> document </title>
</head>
<body bgcolor="#ffffff">
session.setattribute("str",new string(“this is test”));
</body>
<head>
<title> new document </title>
</head>
<body bgcolor="#ffffff">
<%
string ls_str=null;
ls_str=(string)session.getattribute("str");
out.println(“从session里取出的值为:”+ls_str);
%>
</body>
</html>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器