session的属性设置

2.       session的属性设置
先看案例:
登陆页面:

<%@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") ;// 设置了一个 session 标志 "flag" 并赋值 "ok" ,它的作用是当下一次打开登录后的页面的时候页面会利用这个标志检验是否是用户为登陆状态。
                     // 跳转到welcome.jsp
                     response.sendRedirect("welcome.jsp") ;
              }
              else
              {
                     // 登陆失败,打印错误
       %>
                     <h3>登陆失败!!!</h3>
       <%
              }
       }
%>
欢迎页面:
<%@page contentType="text/html;charset=gb2312"%>
<%--
       用户必须先登陆之后,才能访问此页面
       如果用户没有登陆,则提示用户回去重新登陆
--%>
<%
       if(session.getAttribute("flag")!=null) // 通过 session 的标志 "flag" 的值是否为 "ok" 来判断是否是用户是登陆状态。
       {
              // session被设置过,正常登陆过
%>
<h1>欢迎光临本页!!!</h1>
<h2><a href="logout.jsp">注销</a></h2>
<%
       }
       else
       {
              // 两秒后跳转到login.jsp页面之中
              response.setHeader("refresh","2;URL=login.jsp") ;
%>
<h1>您还未登陆,请先登陆!!!</h1>
<%
       }
%>
总结:
session.setAttribute(" 属性名 "," 属性值 ") 设置属性
session.getAttribute(" 属性名 ") 取得设置的属性
就是通过它们对属性的设置和获取再和值进行对比就可以判断用户是否为登陆状态。
使用完之后还有 remove Attribute(" 属性名 ") 方法来删除该属性。
5.用户注销 session.invalidate() ,需要手工操作。
目的是让用户的 session 失效,同时该用户 session 保留的所有操作也失效。
如果 session 长时间不被使用也会自动失效。
代码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%
       // 使 session 失效
       session.invalidate() ;
%>
<a href="welcome.jsp">welcome.jsp</a> // 页面返回。
///
1.       获得 session 的创建时间。
session.getCreationTime() ——取得创建 session 的时间返回一个 long 型数据。
getLastAccessedTime() ——取得用户最后一次操作的时间返回一个 long 型数据。
代码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*"%>
<%
       long l = session.getCreationTime() ; //获取创建session的时间,但是得到的结果是一个long型的数据,无法读取。
       long l2 = session.getLastAccessedTime() ;//取得用户最后一次操作的时间
%>
<h1>session CREATE : <%=new Date(l)%></h1>//将取得的long型时间数据转化为我们可以识别的具体时间。
<h1>session last access: <%=new Date(l2)%></h1>//转化用户最后一次操作的具体时间。
<h1><%=(l2-l)/1000%></h1>
///
用户在线时间=最后一次操作时间—创建时间。即:L2—L
Session和cookie的区别:前者保存在服务器上,后者保存在客户机上,前者比后者安全,但是占用更多资源,所以开发的时候尽量少像session中保存信息。Session使用了cookie的机制,如果cookie被禁用,则session同样被禁用。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值