JSP Session管理
本篇讲述JSP中session的相关知识和管理方法;
先说说cookie与session
在web中常用的两种用户信息管理方式:cookie 和 session.
cookie是保存在用户客户端的数据,用于避免每次发送http请求时,连带过多的数据,造成复杂化。所以Cookie保存在客户端中,根据服务器端的要求,保存特定的内容,在每次http请求后,自动添加一定的内容。
session是保存在服务器端的数据,用于验证几次请求是否属于同一会话,在同一会话中,会避免进行不必要的验证,保证用户的操作连贯性。
合理的使用session与cookie都会保证web应用的高可以用性,以及良好的用户体验。但是不必要的操作也会影响到web安全风险和服务器的使用效率。
session常用的方法
session是JSP中的一个内置对象,可以在JSP代码中直接使用,他是HttpSession的实例,常用的方法如下:

<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = new Date(session.getCreationTime());
session.setAttribute("username","xingoo");
session.setAttribute("password","123");
session.setAttribute("age","26"); //設置Session生命期限
//session.setMaxInactiveInterval(2); %>
Session创建时间:<%=sdf.format(d) %><br>
Session的ID编号:<%=session.getId() %><br>
Session获取:<%=session.getAttribute("username") %><br>
Session中保存的屬性:<%
String[] names = session.getValueNames();
for(int i=0;i<names.length;i++){
out.println(names[i]+" ");
}
%><br>
<%
//session.invalidate();//执行销毁后,服务器直接就删除了会话的相关内容;
%>

可得到如下的结果:
session声明周期
session生命周期中包含3个阶段:
1 创建
在第一次用户访问JSP页面时,会创建相应的session,保存在服务器中。之后的请求,服务器都会携带此session id进行校验。
2 活动
在同一会话期间,打开新的链接都属于同一会话。
3 销毁
关闭浏览器;使用session.invalidate()销毁session;会话过期
管理session过期
session默认时30分钟过期。
1 通过函数方法设置过期时间,单位为秒
session.setMaxInactiveInterval(60);//单位是秒
2 配置web.xml,单位为分钟
<session-config>
<session-timeout>1</session-timeout>
</session-config>
通过tomcat监控管理session
如果第一次登陆tomcat管理界面,会报用户权限错误,需要手动为tomcat设置用户密码以及用户权限。
在conf目录中,打开tomcat-users.xml
在tocmat-users标签中添加下面两行:
<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>
manager-gui用于授予用户 通过html管理tomcat 权限。
登陆后点击 tomcat manager
在提示对话框中输入用户名密码,技能看到下面的管理界面
可以看到当我们访问某个有session内容的页面后,工程中的session数目变成了1.
由于在web.xml中配置了session的过期时间为1分钟,因此后面的时间也显示了1分钟。
点击 数字1超链接 ,就能进入session目录!
可以看到session相关的内容,可以点击上面的按钮,刷新session管理界面。
点击sessionid 超链接,可以进入session的详细页面,参考如下:
可以根据该页面,检查session的相关内容等信息。
注意:由于我使用的是tomcat 6,所以其他版本登陆位置可能有所不同。
在Eclipse重启Tomcat,tomcat-users.xml被重置
出现上面现象的原因是,你的eclipse在绑定tomcat后,工程中多了一个叫server的工程。
打开该工程会发现有几个配置文件,在eclipse重启tocmat,会把这几个配置文件覆盖到我们自己安装的tocmat中。
因此修改这里的配置文件,即可!
JSP Session管理的更多相关文章
- Redis3.2+Tomcat实现集群的Session管理 -- tomcat-redis-session-manager的编译和开发部署环境搭建
已经有不少文章介绍使用tomcat-redis-session-manager来实现Redis存储Tomcat的Session,实现分布式Session管理.但是现在官方编译的tomcat-redis ...
- Spring Security(13)——session管理
1.1 检测session超时 1.2 concurrency-control 1.3 session 固定攻击保护 Spring Security通过http元素下的子元素s ...
- Spring Security 入门(1-7)Spring Security - Session管理
参考链接:https://xueliang.org/article/detail/20170302232815082 session 管理 Spring Security 通过 http 元素下的子元 ...
- ②萨克斯,音符的悠扬(Session管理)
一.前言 小朽不才,最近喜欢上了萨克斯,一年计划[传送门]中的实行.就伴随着一首萨克斯,整理了下Session管理和Session四种技术. 保存状态: #网址重写(URL rewriting) #隐 ...
- 008-shiro与spring web项目整合【二】认证、授权、session管理
一.认证 1.添加凭证匹配器 添加凭证匹配器实现md5加密校验. 修改applicationContext-shiro.xml: <!-- realm --> <bean id=&q ...
- Spring Security教程之session管理(十一)
1.1 检测session超时 1.2 concurrency-control 1.3 session 固定攻击保护 Spring Security通过http元素下的子元素s ...
- Spring Security教程之session管理
1.1 检测session超时 1.2 concurrency-control 1.3 session 固定攻击保护 Spring Security通过http元素下的子元素s ...
- Nhibernate的Session管理
参考:http://www.cnblogs.com/renrenqq/archive/2006/08/04/467688.html 但这个方法还不能解决Session缓存问题,由于创建Session需 ...
- Openfire的启动过程与session管理
说明 本文源码基于Openfire4.0.2. Openfire的启动 Openfire的启动过程非常的简单,通过一个入口初始化lib目录下的openfire.jar包,并启动一个 ...
随机推荐
- 一些常用到的Centos命令
CentOS常用命令在我们的使用中,经常被使用.所以,我们对一些经常使用又很重要的CentOS常用命令进行了全面的整理.下面,就来介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu ...
- 【Longest Valid Parentheses】cpp
题目: Given a string containing just the characters '(' and ')', find the length of the longest valid ...
- C Shell 中的特殊变量
恢复 $0,当前脚本的文件名 $n,传递给脚本或函数的参数,n是一个数字,表示第几个参数 $#,传递给脚本或函数的参数个数 $*,传递给脚本或函数的所有参数 $?,函数的返回值 $$,当前shell的 ...
- python 可变参数
原文地址:http://docs.pythontab.com/python/python3.4/controlflow.html#tut-functions 一个最不常用的选择是可以让函数调用可变个数 ...
- ansii、unicode、utf8 区别和关系
本地化过程中涉及到源文件和目标文件的传输问题,这时候编码就显得很重要.中文的网页和操作系统中通常采用ANSI编码,这也是微软OS的一个字符标准.对于ANSI,不同的国家和地区制定了不同的标准,由此产生 ...
- 查看javadoc
在 选中的jar包右键 properties 在javadoc里面引入api的路径 比如我要查看 spring的javadoc, 导入这个文件夹: E:\Java\spring-framework-2 ...
- eclipse部署Tomcat6 : The server does not support version 3.0 of the JEE Web module specification
为项目添加tomcat 6,发现不能添加,原因如下 这是因为Tomcat6不能为JavaEE3.0版本服务,把项目的版本降低到2.5就可以了 现在可以部署了
- 【Python】网络编程
1.TCP编程 2.SocketServer模块 3.Twisted框架 4.UDP编程 1.TCP编程--TCP是面向连接的,其一般的设计如下: # encoding:utf-8 ''' Creat ...
- O2O模式成功案例分享 汲取精华化为己用
本文通过分享一些公司的o2o成功案例让您了解什么是O2O,o2o的优势,o2o模式有哪些,未来我们要如何做o2o才更有竞争力,学牛人的o2o创新玩法,摸索适合自己的o2o思路.拥抱o2o - 传统企业 ...
- 7 天玩转 ASP.NET MVC — 第 7 天
目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 今天是开心的一天.因为我们终于来到了系列学习的最后一节.我相信你喜欢之前的课程,并从中学到了许多. ...