JSP session 是 javax.servlet.http.HttpSession 的实例对象,主要用来访问用户数据,记录客户的连接信息。
HTTP 协议是一种无状态的协议(即不保存连接状态的协议)。每次用户向服务器发出请求,且服务器接收请求并返回响应后,该连接就被关闭了,服务器端与客户端的连接被断开。此时,服务器端不保留连接的有关信息,要想记住客户的连接信息,就用到了 session 对象。
session 对象的常用方法如下:
<%@ 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>
方法 | 说明 |
---|---|
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 对象的时间 |