<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 閱讀(1031) 評論(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;
        }


    }

    主站蜘蛛池模板: 亚洲国产福利精品一区二区| 久久精品国产亚洲AV果冻传媒| 亚洲国产片在线观看| 日韩免费无码视频一区二区三区| 在线亚洲午夜理论AV大片| 国产日韩AV免费无码一区二区三区 | 在线观看黄片免费入口不卡| 精品亚洲一区二区三区在线观看 | aaa毛片免费观看| 亚洲综合日韩久久成人AV| 两个人看的www高清免费视频| 亚洲中文字幕无码一久久区| 中文字幕无码免费久久| 久久综合亚洲鲁鲁五月天| 2019中文字幕在线电影免费| 国产成人亚洲合集青青草原精品| 最近中文字幕免费mv视频8| 精品亚洲成a人在线观看| 亚洲人成色7777在线观看不卡 | 好爽又高潮了毛片免费下载| 无遮挡国产高潮视频免费观看| 中文国产成人精品久久亚洲精品AⅤ无码精品| xvideos永久免费入口| 亚洲va久久久噜噜噜久久| 黄在线观看www免费看| 久久久久亚洲国产AV麻豆| 国产成人亚洲精品影院| 中文字幕在线观看免费视频 | 国产青草视频在线观看免费影院| 农村寡妇一级毛片免费看视频| 国产亚洲精品美女久久久 | 久久不见久久见免费影院| 麻豆亚洲AV成人无码久久精品 | 宅男666在线永久免费观看| 国产成人精品免费视频大全| 久久久久亚洲av无码专区喷水| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲天堂免费在线| 一级毛片aaaaaa视频免费看| 老司机亚洲精品影院无码| 热99re久久精品精品免费|