`
utopialxw
  • 浏览: 370186 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

遍历 Session,Request;设置session超时时间

    博客分类:
  • java
 
阅读更多
遍历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。
分享到:
评论

相关推荐

    Session登录在线人

    3. **检查在线用户**:要获取当前在线登录人,可以通过遍历Session集合,读取每个Session中的用户信息。例如,在Java中,可以使用`Enumeration&lt;Session&gt; sessions = httpContext.getActiveSessions();`获取所有活动...

    jsp 的session实现小的购物车的功能

    7. **处理会话过期**:JSP默认会为每个Session设置一个超时时间,超过这个时间,Session将失效,购物车内容也会丢失。可以使用`setMaxInactiveInterval()`方法设置自定义的超时时间,单位为秒。 以上就是使用JSP ...

    ZooKeeper会话超时以及重连机制.pdf

    - **`sessionTimeout`**:指定了客户端与服务器之间的通信超时时间,即客户端在没有向服务器发送心跳包的情况下多久会被认为是断开连接的。这个参数可以通过`minSessionTimeout`和`maxSessionTimeout`两个参数来进行...

    Session.docx

    在`web.xml`中可以配置session的超时时间: ```xml &lt;!-- 配置 session 超时时间, 单位为分钟 --&gt; &lt;session-config&gt; &lt;session-timeout&gt;1&lt;/session-timeout&gt; &lt;/session-config&gt; ``` 在Easymall应用中,登陆状态可以...

    ASP学习的笔记

    - 设置Session超时时间: ```asp Session.Timeout = 5 %&gt; ``` - 清除Session: ```asp Session.Abandon %&gt; ``` - **Session对象的Contents集合**:该集合可以用来存储临时数据。 - 移除Session中的...

    Extjs 4.1 (MVC) 如何动态加载控制层以及session 过期该如何处理

    在这种情况下,我们可以添加一个自定义的响应头`sessionstatus`,并设置其值为"timeout"。同时,返回一个JSON对象,包含错误信息和重定向URL,如下所示: ```javascript if (findHtml ) { response.addHeader(...

    cookie和session

    超时后,服务器会自动销毁Session。 #### 三、Cookie与Session的区别 - **存储位置**: Cookie存储在客户端,而Session存储在服务器端。 - **安全性**: 由于Cookie存储在客户端,容易受到攻击(如截获、伪造)。而...

    7、会话跟踪技术.doc

    不同于会话的默认30分钟超时,Session超时时间可以自定义。 总结,会话跟踪技术,尤其是Cookie和Session,对于构建动态、交互式的Web应用至关重要。它们允许开发者在无状态的HTTP协议之上维持用户状态,提高用户...

    jsp课件,培训资料

    - **详细内容**: Session 超时是指 Server 端为 Session 设置的有效期限。一旦超时,Server 就认为客户端已经断开连接,会销毁与之对应的 Session。可以通过 `setMaxInactiveInterval()` 方法来设置 Session 的最大...

    Java Web开发之基于Session的购物商店实现方法

    1. **Session过期策略**:设置合理的Session超时时间,防止用户长时间不活动导致购物车丢失。 2. **并发处理**:多用户同时操作时,需要考虑并发安全问题,例如使用同步锁保护对Session的修改。 3. **Session复制与...

    关于JSP购物车的详细程序

    最后,为了防止Session过期导致购物车数据丢失,通常会在用户每次操作时更新Session的超时时间,例如: ```java session.setMaxInactiveInterval(60 * 30); // 设置30分钟的会话有效期 ``` 这个JSP购物车程序展示...

    java web 应用对象存储管理简介

    Session对象的生命周期比Cookie更为灵活,可根据应用需求设置其超时时间。在处理用户请求时,服务器通过SessionID检索并更新Session中的数据,从而保持用户状态的一致性和连贯性。这在需要跨多个请求保留用户信息的...

    Cookie&Session

    但是,大量用户会导致服务器内存压力增大,需要合理管理Session的生命周期,如设置超时时间以释放不再使用的Session资源。 **案例:记住上一次访问** 以下是一个简单的Servlet示例,使用Cookie来记住用户的上次...

    《ASPNET程序设计》期末题库[文].pdf

    12. 修改Session超时时间:`Session.Timeout = 60;`将Session的有效时间设置为60分钟。 13. .NET与XML的结合:两者结合使得数据跨平台传输变得更加便捷。 14. FormView控件:在招聘模板中,通常使用HeaderTemplate...

    ASP_NET考试试题及答案详析[归类].pdf

    12. **调整Session超时**:`Session.Timeout=60;`设置Session过期时间为60分钟。 13. **XML与.NET的关系**:XML的数据交换格式与.NET紧密结合,便于跨平台数据传输。 14. **FormView控件**:通常FormView的Header...

    这是我用JSP写的购物车,没有连接数据库!

    在JSP中,购物车通常由会话(Session)对象来维护,因为会话可以在多个页面之间保持状态,直到用户关闭浏览器或者会话超时。 1. **JSP基本结构**:JSP文件包含了HTML、CSS、JavaScript以及内嵌的Java代码。HTML负责...

    JavaEE面试笔试问答题.docx

    默认超时时间为30分钟,可通过`session.setMaxInactiveInterval(seconds);`调整。 13. **JSP与Java文件区别**:JSP是视图层组件,侧重于表现,而Java文件(Servlet)侧重于业务逻辑和控制。 14. **Servlet生命周期...

    ASPNet复习资料.doc

    12. **改变Session超时**:`Session.Timeout = 60;`可设置Session的有效时间为60分钟。 13. **XML与.NET的结合**:最大好处是允许跨平台的数据传输和数据交换。 14. **FormView控件**:Header模板常用于展示信息,...

    jsp9大内置对象。。。

    10. **获取所有参数名称**:`getParameterNames()`返回一个枚举,包含了所有请求参数的名称,可用于遍历所有参数。 #### 二、Response对象:处理响应 `Response`对象负责向客户端发送响应数据,包括设置响应头、...

Global site tag (gtag.js) - Google Analytics