JSP session对象
JSP session 是 javax.servlet.http.HttpSession 的实例对象,主要用来访问用户数据,记录客户的连接信息。
HTTP 协议是一种无状态的协议(即不保存连接状态的协议)。每次用户向服务器发出请求,且服务器接收请求并返回响应后,该连接就被关闭了,服务器端与客户端的连接被断开。此时,服务器端不保留连接的有关信息,要想记住客户的连接信息,就用到了 session 对象。
session 对象的常用方法如下:
login.jsp运行结果
index.jsp运行结果
index.jsp运行结果
如果在 web.xml 中配置的是15分钟,则 getMaxInactiveInterval( ) 方法返回 900。
HTTP 协议是一种无状态的协议(即不保存连接状态的协议)。每次用户向服务器发出请求,且服务器接收请求并返回响应后,该连接就被关闭了,服务器端与客户端的连接被断开。此时,服务器端不保留连接的有关信息,要想记住客户的连接信息,就用到了 session 对象。
session 对象的常用方法如下:
方法 | 说明 |
---|---|
void setAttribute(String name, Object value) | 将参数名和参数值存放在 session 对象中 |
Object getAttribute(String name) | 通过 name 返回获取相应的 value 值,如果 name 没有相应的 value 值,则返回 null |
void removeAttribute(String name) | 删除指定的 name 参数 |
Enumeration getAttributeNames() | 获取 session 对象中存储的所有参数 |
long getCreationTime() | 返回 session 对象创建的时间 |
String getId() | 获取 session 对象的 ID 值 |
boolean isNew() | 用于检查 session 对象是不是新对象,如果客户端禁用了 cookie ,则 session.isNew() 始终返回 true |
void invalidate() | 终止 session,即指定 session 对象失效 |
void setMaxInactiveInterval() | 设置 session 对象的有效时间,单位:秒 |
int getMaxInactiveInterval() | 获取 session 对象的有效时间,单位:秒 |
long getLastAccessedTime() | 获取上次访问 session 对象的时间 |
示例
在 login.jsp 页面登录,并跳转到 index.jsp。login.jsp 代码如下:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>编程帮(www.biancheng.net)</title> </head> <body> <h2>用户登录</h2> <form action="index.jsp"> 用户名: <input type="text" name="username" /> <br> <br> 密码: <input type="text" name="pass" /> <br> <br> <input type="submit" value="登录" /> </form> </body> </html>在 index.jsp 中,使用 session.setAttribute() 方法将用户名存储到 session 对象中,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>编程帮(www.biancheng.net)</title> </head> <body> <% String username = request.getParameter("username"); out.print("欢迎" + username + "登录"); session.setAttribute("sessname", username); %> <a href="success.jsp">跳转成功页面</a> </body> </html>在 success.jsp 中,使用 session.getAttribute() 方法获取 session 对象中的用户名,并显示。success.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>编程帮(www.biancheng.net)</title> </head> <body> <% String name = (String) session.getAttribute("sessname"); out.print("您好,您的用户名为:" + name); %> </body> </html>运行结果如下图所示:
login.jsp运行结果
index.jsp运行结果
index.jsp运行结果
拓展
如果使用的是 Tomcat 服务器,可以在 web.xml 文件中添加以下内容来设置 session 的有效时间:<session-config> <session-timeout>15</session-timeout> </session-config>这里单位是分钟,即表示 session 对象的有效时间为 15 分钟,Tomcat 默认有效时间为 30 分钟。
如果在 web.xml 中配置的是15分钟,则 getMaxInactiveInterval( ) 方法返回 900。