jsp---->Session
一、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和cookie
1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
2、session中保存的是对象,cookie中保存的是字符串。
session 比cookie 更安全,session 比cookie 更占用资源
开发的原则:session 要尽量少使用—— 尽量少向session 中保存信息
session 使用了cookie 的机制,如果cookie 被禁用,则session 也无法使用