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) {
}
}
}