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. .Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析

    介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还 ...

  2. Jenkins2构建pipeline流水线

    流水线有两种方式: 1.脚本式流水线 2.声明式流水线 构建流水线的简单示例: 脚本式流水线 node ('master'){ stage("Source"){ //从Git仓库中 ...

  3. 推荐一款国产优秀的基于 AI 的 Web 自动化测试工具——kylinTOP 测试与监控平台

    对于于一般的传统的自动化测试工具,如:Selenium,robotFramework,QTP等.QTP可以通过操作录制生成自动化用例脚本.生成的脚本与Selenium.robotFramework类似 ...

  4. C#.Net ComboBox控件设置DropDownList之后背景颜色问题,以及发现的微软的一个BUG

    先说背景颜色问题怎么处理. C#.Net WinForm中如果设置ComboBox的DropDownStyle为DropDownList,控件背景色会变成灰色,并且这个时候ComboBox控件的Bac ...

  5. log日志拦截

    简介 主要记录一下项目中的日志拦截和异常拦截,由于之前公司项目为单体项目,所使用的日志拦截较为简单,只是用拦截器进行前后对日志的拦截,异常拦截直接使用@ExceptionHandler,而现在公司接口 ...

  6. 【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)

    前面三小节,介绍了PCIE的基本知识和概念,以及扫描流程.在不求甚解的情况下,我想各位小伙伴应该对PCIE有了个宏观的认识,OK,那么本章我们在之前的基础上,再单独把一些概念和更深层次的问题摘出来具体 ...

  7. postgresql gin索引使用

    由于属于老项目,postgresql使用版本9.6,主要解决‘%name%"查询无法使用索引问题.pg_trgm模块提供函数和操作符测定字母,数字,文本基于三元模型匹配的相似性, 还有支持快 ...

  8. MySQL查询基础

    MySQL查询 DQL(Data Query Language ) 1.排序查询 # 语法: select 字段 from 表名 order by 字段1 [降序/升序],字段2 [降序/升序],.. ...

  9. python3三元运算

    条件:简单的条件判断语句并且有返回值 作用:简化代码和装X 格式:为True执行的语句 if 判断条件 else 为False执行的语句 例子 def f(a, b): ""&qu ...

  10. python3复习

    一.基础11.运行python代码cmd->python 文件路径/文件名称2.解释器针对linux/uinux系统3.注释单行注释    #多行注释    三个单引号或三个双引号4.变量法律规 ...