<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    linlinyu

    linlinyu
    posts - 0, comments - 4, trackbacks - 0, articles - 15

    ServletContextListener和HttpSessionListener 應用

    Posted on 2007-11-25 21:23 linlin yu 閱讀(1036) 評論(0)  編輯  收藏 所屬分類: servlet
    1,ServletContextListener
    package com.soyoung.xxx.util;

    import java.util.Properties;

    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import javax.servlet.http.HttpSessionEvent;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    import EDU.oswego.cs.dl.util.concurrent.SynchronizedInt;

    /**
     * 
     * 
    @author linlinyu
     * 
    @version 1.0
     * @web.listener
     
    */

    public class XXXContext implements ServletContextListener {
        
    private String mVersion = null;

        
    private String mBuildTime = null;

        
    private String mBuildUser = null;

        
    public static final String XXX_CONTEXT = "xxxContext";

        
    private static String version_config = "/version.properties";

        
    private static ServletContext mContext = null;

        
    private static Log mLogger = LogFactory.getLog(XXXContext.class);

        
    private final SynchronizedInt mSessionCount = new SynchronizedInt(0);

        
    public String getBuildTime() {
            
    return mBuildTime;
        }


        
    public String getBuildUser() {
            
    return mBuildUser;
        }


        
    public String getVersion() {
            
    return mVersion;
        }


        
    public XXXContext() {
            
    super();

            Properties props 
    = new Properties();
            
    try {
                props.load(getClass().getResourceAsStream(version_config));
            }
     catch (Exception e) {
                mLogger.error(
    "version.properties not found", e);
            }


            mVersion 
    = props.getProperty("xxx.version""UNKNOWN");
            mBuildTime 
    = props.getProperty("xxx.buildTime""UNKNOWN");
            mBuildUser 
    = props.getProperty("xxx.buildUser""UNKNOWN");

        }


        
    public static XXXContext getXXXContextt() {
            ServletContext sc 
    = XXXContext.getServletContext();
            
    return (XXXContext) sc.getAttribute(XXX_CONTEXT);
        }


        
    public static ServletContext getServletContext() {
            
    return mContext;
        }


        
    public void contextDestroyed(ServletContextEvent arg0) {
            
    // TODO Auto-generated method stub

        }


        
    public void contextInitialized(ServletContextEvent sce) {
            mContext 
    = sce.getServletContext();
            mContext.setAttribute(XXX_CONTEXT, 
    this);
        }


        
    public void sessionCreated(HttpSessionEvent se) {
            mSessionCount.increment();

            mLogger.debug(
    "sessions=" + mSessionCount + ":freemem="
                    
    + Runtime.getRuntime().freeMemory() + ":totmem="
                    
    + Runtime.getRuntime().totalMemory());
        }


        
    public void sessionDestroyed(HttpSessionEvent se) {
            mSessionCount.decrement();

            mLogger.debug(
    "sessions=" + mSessionCount + ":freemem="
                    
    + Runtime.getRuntime().freeMemory() + ":totalmem="
                    
    + Runtime.getRuntime().totalMemory());
        }


        
    public int getSessionCount() {
            
    return mSessionCount.complement();
        }

    }


    2,HttpSessionListener
    package com.soyoung.xxx.util;

    import java.io.Serializable;
    import java.security.Principal;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionActivationListener;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    /**
     * 
     * 
    @author linlinyu
     * 
    @version 1.0
     * @web.listener
     * 
     
    */

    public class XXXSession implements HttpSessionListener,
            HttpSessionActivationListener, Serializable 
    {
        
    public static final String XXX_SESSION = "com.soyoung.xxx.XXXSession";

        
    private Object userData = null;

        
    private HttpSession httpSession = null;

        
    private static Log mLogger = LogFactory.getFactory().getInstance(
                XXXSession.
    class);

        
    public static XXXSession getXXXSession(HttpServletRequest request) {
            XXXSession xxxSession 
    = null;
            HttpSession session 
    = request.getSession(false);
            
    if (xxxSession == null{
                xxxSession 
    = new XXXSession();
                session.setAttribute(XXX_SESSION, xxxSession);
            }

            Principal principal 
    = request.getUserPrincipal();
            
    if (xxxSession.getUserData() == null && principal != null{
                
    // Object user = findUserByName(principal);
                
    // if(user != null){
                
    // xxxSession.setUserData(user);
                
    // }
            }


            
    return xxxSession;

        }


        
    public Object getSessionAttribute(String atrribue) {
            
    return httpSession.getAttribute(atrribue);
        }


        
    public void sessionCreated(HttpSessionEvent se) {
            XXXSession xxxSession 
    = new XXXSession();
            xxxSession.setHttpSession(se.getSession());
            se.getSession().setAttribute(XXX_SESSION, xxxSession);
            XXXContext ctx 
    = XXXContext.getXXXContextt();
            ctx.sessionCreated(se);
        }


        
    public void sessionDestroyed(HttpSessionEvent se) {
            XXXContext ctx 
    = XXXContext.getXXXContextt();
            ctx.sessionDestroyed(se);
            clearSession(se);
        }


        
    public void sessionDidActivate(HttpSessionEvent arg0) {

        }


        
    public void sessionWillPassivate(HttpSessionEvent se) {
            clearSession(se);

        }


        
    private void clearSession(HttpSessionEvent se) {
            HttpSession session 
    = se.getSession();
            
    try {
                session.removeAttribute(XXX_SESSION);
            }
     catch (Throwable e) {
                
    if (mLogger.isDebugEnabled()) {
                    
    // ignore purge exceptions
                    mLogger.debug("EXCEPTION PURGING session attributes", e);
                }

            }

        }


        
    public Object getUserData() {
            
    return userData;
        }


        
    public void setUserData(Object userData) {
            
    this.userData = userData;
        }


        
    public HttpSession getHttpSession() {
            
    return httpSession;
        }


        
    public void setHttpSession(HttpSession httpSession) {
            
    this.httpSession = httpSession;
        }


    }

    主站蜘蛛池模板: v片免费在线观看| 亚洲成人免费电影| 一级毛片免费毛片毛片| 四虎1515hm免费国产| 国产亚洲精品AAAA片APP| 精品国产一区二区三区免费看| 亚洲七久久之综合七久久| 97无码免费人妻超级碰碰碰碰 | 亚洲综合无码AV一区二区| 美女免费精品高清毛片在线视| 亚洲第一福利网站在线观看| 日本黄页网址在线看免费不卡| 亚洲婷婷国产精品电影人久久| 国产精品免费αv视频| 亚洲大尺度无码无码专区| 久久国产乱子伦免费精品| 亚洲成a人片在线观| 在线播放免费人成视频在线观看| 亚洲av无码成人精品国产| 亚洲精品无码99在线观看| 久久国产乱子精品免费女| 亚洲大尺码专区影院| 精品无码国产污污污免费| sss在线观看免费高清| 伊人久久综在合线亚洲2019| www.999精品视频观看免费| 亚洲Av无码国产一区二区| 国产亚洲大尺度无码无码专线| 免费无码中文字幕A级毛片| 亚洲中文无码永久免| 最新精品亚洲成a人在线观看| 无码精品一区二区三区免费视频| 亚洲13又紧又嫩又水多| 免费在线观看你懂的| 少妇无码一区二区三区免费| 亚洲熟妇自偷自拍另欧美| 亚洲精品成人片在线播放| 三年片在线观看免费观看高清电影 | 中文字幕亚洲男人的天堂网络 | 亚洲精品tv久久久久久久久久| 日本免费在线中文字幕|