一、Session 的主要方法:
1、服务器上通过session 来分别不同的用户,任何连到服务器上的用户,服务器都会为之分配唯一的一个不会重复的session ID,sessionID 是由服务器统一管理的,人为不能控制
方法:session.getId()
长度为:32
2、判断是否是新的session
public boolean isNew()
判断当前的 session 是否是新建立的session
3、session 的属性设置
设置属性:
public void setAttribute(String name,Object value)
取得属性:
public Object getAttribute(String name)
删除属性:
public void removeAttribute(String name)
4、用户注销:让用户的session 失效
如果 session 失效,则在session 所保留的全部操作也会消失
public void invalidate():使session 失效(手工)
如果 session 长时间不被使用,则也会自动失效
5、得到session 的创建时间
public long getCreationTime()
此方法返回 long 类型,通过Date 类可以取得一个完整的时间
6、取得用户最后一次操作的时间
public long getLastAccessedTime()
例子:
login.jsp
<%@page contentType="text/html;charset=gb2312"%>
<form action="login.jsp" method="post">
用户名:<input type="text" name="uname"><br>
密码:<input type="text" name="upass"><br>
<input type="submit" value="登陆">
</form>
<%
// 判断是否有请求内容
// 在自提交的页面中,必须对程序第一次运行做出处理
if(request.getParameter("uname")!=null&&request.getParameter("upass")!=null)
{
// 第一次的时候,并不能取得请求的参数
String name = request.getParameter("uname") ;
String password = request.getParameter("upass") ;
// System.out.println(name) ;
// System.out.println(password) ;
if("mldn".equals(name)&&"lxh".equals(password))
{
// 表示登陆成功
// 通过flag属性判断用户是否已经登陆
session.setAttribute("flag","ok") ;
// 跳转到welcome.jsp
response.sendRedirect("welcome.jsp") ;
}
else
{
// 登陆失败,打印错误
%>
<h3>登陆失败!!!</h3>
<%
}
}
%>
wecome.jsp
<%@page contentType="text/html;charset=gb2312"%>
<%--
用户必须先登陆之后,才能访问此页面
如果用户没有登陆,则提示用户回去重新登陆
--%>
<%
if(session.getAttribute("flag")!=null)
{
// session被设置过,正常登陆过
%>
<h1>欢迎光临本页!!!</h1>
<h2><a href="logout.jsp">注销</a></h2>
<%
}
else
{
// 两秒后跳转到login.jsp页面之中
response.setHeader("refresh","2;URL=login.jsp") ;
%>
<h1>您还未登陆,请先登陆!!!</h1>
<%
}
%>
logout.jsp
<%@page contentType="text/html;charset=gb2312"%>
<%
// session失效
session.invalidate() ;
%>
<a href="welcome.jsp">welcome.jsp</a>
二、session和cookie1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
2、session中保存的是对象,cookie中保存的是字符串。
session 比cookie 更安全,session 比cookie 更占用资源
开发的原则:session 要尽量少使用—— 尽量少向session 中保存信息
session 使用了cookie 的机制,如果cookie 被禁用,则session 也无法使用