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. 分支结构,for循环,while循环,跳出循环

    #流程控制 概念:通过规定的语句让程序代码有条件的按照一定的方 式执行 顺序结构 按照书写顺序来执行,是程序中最基本的流程结构 选择结构(分支结构.条件结构) 分支结构 单路分支:if(执行的条件){ ...

  2. 利用Tampermonkey(油猴)+ IDM 实现百度云盘大文件下载(IDM安装教程)

    关注微信公众号:“指尖创意” 在菜单干货专区软件目录里领取链接: tampermonkey插件是一个免费的浏览器扩展和最为流行的用户脚本管理器,拥有适用于 Chrome, Microsoft Edge ...

  3. 19.python中os模块的常见用法

    常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt', 而对于Linux/Unix用户,它是'posix'. os. ...

  4. phpcms2008安装时mysql出错

  5. 【python小随笔】python 解析xml数据的新手大坑>>抓取多重标签,遍历各标签的数据

    xml文档: <GetMatchingProductResult ASIN="B071LF9R6G" status="Success">...< ...

  6. Alodi:环境创建从未如此简单

    一个满足你各种想象的快速方便生成临时环境的系统 在『Alodi:为了保密我开发了一个系统』文章中有讲到我们开发了一个系统用来快速生成临时测试环境,短短三个月已有数百个环境被创建,简化了工作,节省了时间 ...

  7. Android学习进度一

    在解决了电脑产生的一系列问题之后成功安装了Android Studio,并在其自带的手机模拟器上成功运行了第一个App(Hello World!),通过这个最简单的App研究了App基本的工程结构,为 ...

  8. C++中全排列函数next_permutation 用法

    今天蓝桥杯刷题时发现一道字符串排序问题,突然想起next_permutation()函数和prev_permutation()函数. 就想写下next_permutation()的用法 next_pe ...

  9. vue学习--组件之间的传值方式

    1.概述 vue由多个组件构成页面,在不同的组件中有不同的联系,组件之间的传值是十分有必要的 2.父子组件之间传值 --props和$emit 父传子:通过props 方法:子组件:props:['m ...

  10. Spring Boot2 系列教程 (十一) | 整合数据缓存 Cache

    如题,今天介绍 SpringBoot 的数据缓存.做过开发的都知道程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的,当需要重复获取相同数据时,一次又一次的请求数据库或者远程服务,导致大量时间 ...