Session监听器,是用来监听session对象创建和关闭的。有时我们需要在session创建或关闭时执行一些操作。这是就可以使用Session Listenner。1.在项目的web.xml文件中添加如下代码:[html] view plaincopy <!--添加Session监听器--> <listener> <listener-class> com.jx.base.listener.SessionListener </listener-class> </listener> 2.编写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) {
     } 
   }
}