2024年4月27日发(作者:)

JSP session对象方法

session对象是ssion类的一个实例,当客户第一次访问J

SP页面时,JSP容器(Tomcat)就会自动创建一个session对象,用来存储客户在

访问各个页面提交的各种信息,即一个session对象对应一个访问客户。

被创建的这个session对象会被分配一个ID号,用来标识不同访问客户信息。J

SP容器会将这个ID号发送到客户端,保存在客户端的cookie中,这样session对

象和客户之间就建立起一一对应的关系。

在JSP的程序中,通常不需要任何代码,就可以直接使用session对象。但是为

了确认,可以加入以下代码,以表示需要启动Session功能:

<%@page session="true"%>

如果设置page指令中session属性为false,则禁用session功能。session对象的

类为HttpSession,它提供了很多使用的方法,以用于维护服务器与用户之间的会话

连接。

从另一个角度来看,其实session对象就像是一把个人的密匙,当任何一个用

户进入某一个JSP页面时,系统就为他生成一个独—无二的session对象来记录该用

户信息。即使用户由—个页面跳转到另一个页面,该session对象内的信息也仍然存

在。session对象的方法如表4-7所示。

表4-7 session对象方法表

方法

void

value)

Object getAttribute(String name)

getId( )

void removeAttribute(String name)

long getCrertionTime( )

long getLastAccessedTime( )

void setMaxInactiveInterval(int interval)

setAttribute(String

说明

name,Object 将value对象以name名称绑定到会话,变成其name

属性。如果name属性已经存在,其对应的对象被转换

为value对象

从会话Session对象中取得name属性,如果name属

性不存在,则返回null

此方法返回会话的标识

从会话中删除name属性。如果name属性不存在,则

这不会执行其他操作,也不会抛出异常

返回创建时间,单位为毫秒,从1970年1月1目算起

返回在会话创建的时间内Web容器接收到客户最后一

次发出请求的时间

设定允许客户请求之间的最长时间间隔。如果请求之

间超过这个时间,JSP容器则会认为请求属于两个不同

的会话

int getMaxInactiveInterval( ) 返回在会话期间内客户请求的最长时间间隔,以秒为

单位

String getld( )

boolean isNew( )

void invalidate( )

返回会话标识SessionID

检查当前客户是否属于新的会话

使会话失效,同时删除其属性对象

例如,当客户登录时,可以给该用户生成一个Session对象,用于跟踪用户在

该网站所做的任意操作。

首先,创建一个用户登录页面,如还使用页面,用来判断用户

是否为合法的用户。如果登录成功,则创建Session对象。

文件名:

<%@ page language="java" import=".*" pageEncoding="UTF-8"%>

用户登录

用户登录信息

cellspacing="1">

密 码: 用户名:

通过上述代码,将用户名和密码内容传递到下面的文件中,并判断用户名和密

码是否合法。如果合法,则创建session对象,并跳转到页面。

文件名:

<%@ page language="java" import=".*" pageEncoding="UTF-8"%>

<%

%>

} else {

}

ror(400, "用户名或密码错误,登录失败!");

racterEncoding("UTF-8");

String username = ameter("user");

String pwd = ameter("password");

if (("admin") && ("admin")) {

ribute("name",username);

direct("");

上述代码中,使用session对象的ribute("name",username)方法将u

sername变量的值和名称name进行关联,这样在其他页面就可以使用name名称获

取绑定的值。

文件名:

<%@ page language="java" import=".*" pageEncoding="GB2312"%>

%>

登录成功

您已经登录成功!

<%String name=(String)ribute("name");

("用户名:"+name);

上述代码中,使用session对象的getAttribute()方法,获取上一个页面绑定nam

e对象关联的值,并输入用户名信息。

例如,在MyEclipse中浏览网页,并输入用户名和密码内容,

如图4-11所示。

然后,通过页面进行判断,并跳转到显示用户

名内容,如图4-12所示。

图4-11 输入用户名和密码 图4-12 显示用户名