Session监听器

Session监听器,是用来监听session对象创建和关闭的。有时我们需要在session创建或关闭时执行一些操作。这是就可以使用Session Listenner。

.在项目的web.xml文件中添加如下代码:

[html] view plaincopy
<!--添加Session监听器-->
<listener>
<listener-class> com.jx.base.listener.SessionListener </listener-class>
</listener> .编写java类。

package com.sessionListener;


import com.bean.SQLBean;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;
import java.util.TreeMap;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


public class SessionListener implements HttpSessionListener {


public void sessionCreated(HttpSessionEvent arg0) {
    HttpSession session = arg0.getSession();
   session.setAttribute("customer_order", new TreeMap<String, Integer>());
    session.setMaxInactiveInterval(60);//通过设置session的过期的时间来制定订单的过期时间!
}


public void sessionDestroyed(HttpSessionEvent arg0) {
  Connection con = null;
  Statement sta = null;
  SQLBean dbMsg = new SQLBean();
  HttpSession session = arg0.getSession();
  Map<String, Integer> mp = (Map<String, Integer>)session.getAttribute("customer_order");
  try{
      dbMsg.getConncetion();
      sta = dbMsg.getStatement();
      for(String key : mp.keySet()){
        String picName = null, count = null;
        picName = key;
        count = String.valueOf(mp.get(key));
        if(picName != null && count!=null){
          String sql = "update food set cnt=cnt+" + count + " where picName=\'" + picName + "\'";
          sta.executeUpdate(sql);
        }
    }
    dbMsg.close();
    } catch (SQLException e) {


    }
  }
}


上一篇:转 序列化Serializable和Parcelable的区别详解


下一篇:Android序列化:Parcelable/Serializable