session的属性设置

摘要:
=null)//通过session的标志"flag"的值是否为"ok"来判断是否是用户是登陆状态。{//session被设置过,正常登陆过%˃欢迎光临本页!!!////////////////////////////////////总结:session.setAttribute设置属性session.getAttribute取得设置的属性就是通过它们对属性的设置和获取再和值进行对比就可以判断用户是否为登陆状态。目的是让用户的session失效,同时该用户session保留的所有操作也失效。如果session长时间不被使用也会自动失效。sessionlastaccess://转化用户最后一次操作的具体时间。Session使用了cookie的机制,如果cookie被禁用,则session同样被禁用。
2.session的属性设置
先看案例:
登陆页面:
<%@page contentType="text/html;charset=gb2312"%>
<formaction="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="http://t.zoukankan.com/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="http://t.zoukankan.com/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的属性设置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇批量重命令文件名称的几种方式nginx日志切割下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[MyBatis]五分钟向MySql数据库插入一千万条数据 批量插入 用时5分左右

本例代码下载:https://files.cnblogs.com/files/xiandedanteng/InsertMillionComparison20191012.rar 我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装...

[阮一峰]Linux 守护进程的启动方法

"守护进程"(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。 一、问题的由来 Web应用写好后,下一件事就是启动,让它一直在后台运行。 这并不容易。举例来说,下面是一个最简单的Node应用server.js,只有6行。 var http = require('http'); http...

.net读取Windows登录用户信息(downmoon)

前天,在CodeProject看到一篇文章http://www.codeproject.com/KB/system/LSAEnumUserSessions.aspx 如何读取windows 当前登录用户的状态信息。 主要代码分享如下: 一:导入dll Code /**//******************************************...

oracle审计

1、什么是审计审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)中。默认情况下审计是没有开启的。不管你是否打开数据库的...

普通Java类获取spring 容器的bean的5种方法

本文转载自:http://www.cnblogs.com/duanxz/archive/2014/06/18/3794075.html 方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSupport方法四:继承...

mysql 命令行操作1

查看版本号 :SELECT @@version;或者status; 1.设置数据库系统的事务隔离级别 mysql> set global transaction isolation level read committed; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @@global...