遍历Session
java.util.Enumeration e = request.getSession().getAttributeNames();
while( e.hasMoreElements()) {
String sessionName=(String)e.nextElement();
out.println("\nsession item name="+sessionName);
out.println("\nsession item value="+request.getSession().getAttribute(sessionName));
}
遍历request
Map map = new HashMap();
map = request.getParameterMap();
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
String strKey = element.getKey().toString();
out.println("\nkey="+strKey);
String[] value=(String[])element.getValue();
if(value.length>0){
for(int i=0;i<value.length;i++)
out.println("\nvalue"+String.valueOf(i)+"="+value[i].toString());
}
int a=1;
}
设置session的过期或超时时间,有三个地方:
1:tomcat的web.xml中,该单位为分:
<session-config>
<session-timeout>720</session-timeout>
</session-config>
2:项目的web.xml中,该单位为分:
<session-config>
<session-timeout>720</session-timeout>
</session-config>
3:用代码设置session的最大有效值:
//单位为秒
public static Integer SessionMaxInactiveInterval=720*60;//session有效时间 :12小时
javax.servlet.http.HttpSessionEvent.getSession().setMaxInactiveInterval(SessionMaxInactiveInterval);
以上三个的优先级:3>2>1
其他一些有用的说明:
1、Session超时理解为:服务器创建了 一个Session给客户端的浏览器,浏览器每次访问的时候带着这个session与服务器进行交互,保证两者数据的一一对应。由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就 不存在了。
2、若访问服务器session超时(本次访问与上次访问时间间隔大于session最大的不活动的间隔时间)了,即上次会话结束,但服务器与客户端会产生一个新的会话,之前的session里的属性值全部丢失,产生新的sesssionId。
3.客户端与服务器一次有效会话(session没有超时),每次访问sessionId相同,若代码中设置了session.setMaxInactiveInterval()值,那么这个session的最大不活动间隔时间将被修改,并被应用为新值。
4.Session的销毁(代表会话周期的结束):在某个请求周期内调用了Session.invalidate()方法,此请求周期结束后,session被销毁;或者是session超时后自动销毁。客户端关闭浏览器时session并不会被注销,只是那个session不能再用了——即客户关闭浏览器之后,服务器端并不知道,但是与浏览器进行交互的session在服务器那里还是存在的,就是没有客户端与它进行交互自然也就不会再用不能用了。因为用户打开浏览器进行访问时服务器会重新产生一个新的session给浏览器,以前的那个session只能等待过期被服务器自动注销。
5. 对于JSP,如果指定了<%@ page session="false"%>,则在JSP中无法直接访问内置的session变量,同时也不会主动创建session,因为此时JSP未自 动执行request.getSession()操作获取session。
分享到:
相关推荐
C#遍历菜单并设置权限
下面小编就为大家带来一篇java遍历http请求request的所有参数实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了asp.net实现遍历Request的信息操作,涉及asp.net针对请求信息相关操作打印操作技巧,需要的朋友可以参考下
遍历程序 遍历程序 遍历程序 遍历程序 遍历程序
采用类似int循环获得一个时间段内的每天日期
根据它的文档写了以下程序,可以遍历整个Request.QueryString集合: 代码如下: var params = new Enumerator(Request.QueryString); while (!params.atEnd()) { Response.Write(params.item() + “:” + Request....
课后作业:层次遍历先序遍历
遍历地址工具遍历地址工具遍历地址工具遍历地址工具
图的遍历图的遍历图的遍历图的遍历图的遍历图的遍历图的遍历图的遍历
易语言遍历工具 源码 想要多少级遍历可以自己设置
二叉树的递归遍历,中序遍历,先序遍历,后序遍历,通过学习二叉树的遍历,可以让我们更紧一步掌握数据的遍历
易语言遍历目录文件源码,遍历目录文件,遍历文件夹,遍历文件
哈希树遍历 HashMap遍历和使用 HashMap遍历和使用
已知中序遍历和后序遍历,求前序遍历。有比较详尽的中文注释。
用C++写的二叉树先序遍历、中序遍历和后序遍历非递归算法
遍历目录树 遍历目录树 遍历目录树 遍历目录树
邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历
用C++写的,包括二叉树的构建,二叉树的先序遍历、中序遍历和后序遍历非递归算法。
数据结构C++二叉链表的先序遍历、中序遍历和后序遍历实现