⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkermanager.java

📁 《Java网络程序设计.rar》包括三个网络程序的源代码。
💻 JAVA
字号:
package org.impact.stars.control.web.checker;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.servlet.ServletContext;import java.util.Collection;import java.util.HashMap;import org.impact.stars.control.web.RequestProcessor;import org.impact.stars.util.Debug;import org.impact.stars.control.event.StarsEvent;import org.impact.stars.control.exceptions.StarsEventException;/* *This class manages all of the access checkers within the web container * For each event, it finds or initialise a AccessRule with a data model * For each type of event, it finds or initialise a Checker * The mapping between event and checker are defined in the JNDI lookup*/public class CheckerManager implements java.io.Serializable {    private RequestProcessor reqpro;    private HashMap attributeMap;    private HashMap checkerMap;    private ServletContext sc;        public CheckerManager()    {     }    public void init(RequestProcessor reqpro, ServletContext sc) {        this.reqpro = reqpro;        this.sc = sc;        attributeMap = new HashMap();        checkerMap = new HashMap();    }    public String checkEvent(StarsEvent ese) throws StarsEventException{        Debug.println("CheckerManager: received event= " + ese);        String eventName = ese.getEventName();        String permition = "OK";        if (eventName != null) {            Debug.println("CheckerManager: processingEvent= " + eventName);            String checkerName = getCheckerName(eventName);            Debug.println("CheckerManager: process checker class = " + checkerName);            ConsistentChecker checker = getChecker(checkerName);                                    if (checker != null) {                Debug.println("CheckerManager: initialzied " + checkerName);                // do the magic                //checker.doStart();                permition =  checker.getPermition(ese);                Debug.println("CheckerManager: sucessfully processed :" + eventName);            }        }        return permition;    }    private String getCheckerName(String eventName) {        // the checker JNDI names are set in the web layer JNDI conf.        // see the web.xml file for list        Debug.println("CheckerManager: looking up:" + eventName + "<");        try {                    InitialContext ic = new InitialContext();                    return  (String)ic.lookup(eventName+"Checker");        } catch (javax.naming.NamingException ex) {                   Debug.println("AccountChecker caught: " + ex);        }        return null;    }    public void setAttribute(String key, Object value) {        attributeMap.put(key, value);    }    public Object getAttribute(String key) {        return attributeMap.get(key);    }    public RequestProcessor getRequestProcessor() {        return reqpro;    }    public ServletContext getServletContext() {        return sc;    }        public void doStart(StarsEvent ese){        Debug.println("CheckerManager: doStart for event= " + ese);        String eventName = ese.getEventName();        if (eventName != null) {            String checkerName = getCheckerName(eventName);            ConsistentChecker checker = getChecker(checkerName);                        if (checker != null) {                checker.doStart(ese);                Debug.println("CheckerManager: sucessfully doStart :" + eventName);            }        }    }        public void doEnd(StarsEvent ese){        Debug.println("CheckerManager: doEnd for event= " + ese);        String eventName = ese.getEventName();        if (eventName != null) {            String checkerName = getCheckerName(eventName);            ConsistentChecker checker = getChecker(checkerName);                        if (checker != null) {                checker.doEnd(ese);                Debug.println("CheckerManager: sucessfully doEnd :" + eventName);            }        }    }        private ConsistentChecker getChecker(String checkerName)    {        ConsistentChecker checker = null;         try {                 if (checkerMap.get(checkerName) != null) {                    checker = (ConsistentChecker)checkerMap.get(checkerName);                 } else {                     checker = (ConsistentChecker)Class.forName(checkerName).newInstance();                     checker.init(this, sc);                     checkerMap.put(checkerName, checker);                     Debug.println("CheckerManager: loaded checker " + checkerName);             }            } catch (Exception ex) {                Debug.println("CheckerManager: error loading " + checkerName + " :" + ex);            }                    return checker;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -