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 也无法使用


posted on 2012-08-17 09:50  小-强-斋-太  阅读(143)  评论(0编辑  收藏  举报

导航