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同样被禁用。

session的属性设置的更多相关文章

  1. c# webConfig中的session超时详细设置

    webConfig中的session超时详细设置 我们在webConfig中设置Session超时的时候,如果最后发行的地址是远程服务器,我们很多不是必须的属性并不用设置,如果设之后,倒不能让 ses ...

  2. cookie的secure、httponly属性设置

    cookie的secure.httponly属性设置 转载自:http://www.cnblogs.com/alanzyy/archive/2011/10/14/2212484.html 一.属性说明 ...

  3. GeneXus笔记本——部分环境属性设置项

    这些属性的设置是我们在做项目的过程中都会设置的属性 当然也因项目而异 这里也只是单纯的记录一下 知识库 属性设置“Maximun numeric length" 效果:设置数值型最大值 版本 ...

  4. WinForm------DateEdit属性设置

    1.只能选择年份属性设置                       

  5. Session的属性

    Session的属性  Session在网络应用中被称为会话.具体到web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间,因 ...

  6. Composer Player 属性设置

    /// <summary> /// 设置选中名称 /// </summary> /// <param name="name"></para ...

  7. session超时时间设置方法

    session超时时间设置方法 由于session值之前没有设置,以至于刚登录的网站,不到一分钟就超时了,总结了一下,原来是session过期的原因,以下是设置session时间的3个方法: 1. 在 ...

  8. table中bordercolor属性设置后最新ie浏览器或firefox中不显示边线,借助table的css来实现边线

    table中的bordercolor属性设置后在最新的ie或者firefox中均不显示边线,table的边线又是常用功能.只能使用css来实现了,更通用,更方便一些. css: ​.ctable{ b ...

  9. .net 使用Json(),maxJsonLength属性设置的值问题

    “使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过了为maxJsonLength属性设置的值” 今天业务找我说线上的国家地区都显示数字(地区ID),而 ...

随机推荐

  1. oracle中使用pl/sql进行的文件读写操作

    第一次知道,可以使用pl/sql来进行文件的读写操作,嘿嘿,简单的试了下可行. 基本步骤如下: SQL> conn sys/sys@orcl as sysdba 已连接. SQL> cre ...

  2. Flutter 不能热加载,热重载按钮灰色,无法点击,flutter doctor 显示NO_PROXY is not set

    一.现象: Flutter 不能热加载 热重载按钮灰色,无法点击. 二.分析原因: 终端 flutter doctor 显示 NO_PROXY is not set 没有设置无代理的端口 终端:flu ...

  3. SpringBoot-2.1.1系列一:使用https

    1.什么是https? HTTPS中文名称:超文本传输安全协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 ...

  4. Serverless 设计理念:从头创建品牌标识

    本文首发于 Serverless 中文网,译者:Aceyclee.如需转载,请保留原作者和出处. 如何在开源技术社区中做设计?本文来自 Serverless 团队中首席设计的分享 -- 展现了设计过程 ...

  5. Theia APIs——事件

    上一篇:Theia APIs——Preferences 事件 Theia中的事件或许会让你感到困惑,希望本节能阐述清楚. 来看下面的代码: (来自logger-watcher.ts) @injecta ...

  6. 【Java基础总结】数据库编程

    MySQL数据库查询 import java.sql.*; public class JdbcDemo1{ public static void main(String[] args){ try{ / ...

  7. CF825G Tree Queries

    [题意] 一棵树有 n个节点,初始均为白色,有两种操作: 1. 1 x 代表把结点 x 设置为黑色 2. 2 x 代表查询 x 到树上任意一个黑色结点的简单路径上的编号最小的结点的编号 输入 t 和 ...

  8. Scala实践12

    1.内部类和抽象类型成员作为对象成员 内部类 在Scala中,可以让类将其他类作为成员.这些内部类是封闭类的成员.在Scala中,这样的内部类绑定到外部对象.假设希望编译器在编译时阻止我们混合哪些节点 ...

  9. docker-主从服务部署

    欢迎访问我的博客http://www.liyblog.top 我的博客里会有更详细的信息,而且留言必回,手把手给你解释不懂的地方   1.mysql部署   mysql镜像拉取 docker pull ...

  10. Ubuntu 设置中文输入法

    环境:新安装的Ubuntu 16.04 LTS 本来打算使用sogou拼音,但是在输入后的提示框中内容为乱码,因此尝试重新安装. 1.sudo apt-get remove sogoupinyin & ...