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

📄 comapplication.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! * * 该类主要用于加载全局配置信息 * 控制最上层的全局信息,关于其他,如:BBS的全局信息需要在BBSApplication中获取. * 通过getComApplication可获得相关属性,该全局配置信息将影响整个网站及其他所有部份. * 如email的配置及开启状态,其他相关,待续... */package biz.tbuy.common;import biz.tbuy.common.logs.Elog;import biz.tbuy.common.pool.PoolManager;import biz.tbuy.user.UserAction;import biz.tbuy.user.UserModel;import java.io.Serializable;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import javax.faces.context.ExternalContext;import javax.faces.context.FacesContext;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b><a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b><a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class ComApplication implements Serializable{    // 这里ComApplication使用单态形式,以保证该类在任何时候都能得到引用    private static ComApplication _comApplication = new ComApplication();    // full path    private String _servletContextPath;      // 全局的上下文路径,(绝对)    // display    private boolean _register;               // 是否开启注册用户    private boolean _login;                  // 是否允许登录    private boolean _emailRegister;          // 是否开启email注册激活    private boolean _validateRegister;       // 开/关注册时验证码    private boolean _validateLogin;          // 开/关登录时验证码    private boolean _upload;                 // 是否允许上传文件    // email config    private Map<String, String> _conEmail;    // admin list    private List<String> _admins;    // mysetting    private Map<String, String> _mySetting;    // release    private static Map<String, String> _release;    // operate the visitors    private VisitorsOper _visitorsOper;    // auths    private Auth _authOper;    // ip list    private List<String> _disallows;        /** Creates a new instance of ComApplication */    private ComApplication() {}        /**     * 获得本站的全局信息管理器     * @return ComApplication     */    public static ComApplication getInstance() {        return _comApplication;    }        /**     * 获取系统的全局上下文路径信息,该方法返回的是绝对路径。返回路径可能像这样:     * D:/study/web/tbuy 像本站这样,记录该路径主要用于方便读写本地文件.      */     public String getServletContextPath() {        return _servletContextPath;    }        /**     * 获取当前网站的绝对路径信息,带http的路径信息.像这样本站的这样     * http://www.tbuy.biz/tbuy     * @return httpAddress 包含http及域名、上下文路径的信息绝对地址     */    public String getHttpContextPath() {        FacesContext fc = FacesContext.getCurrentInstance();        ExternalContext ec = fc.getExternalContext();        String host = ec.getRequestHeaderMap().get("host");        String cPath = ec.getRequestContextPath();        return "http://" + host + cPath;    }        private void out(Object obj) {        System.out.println(obj);    }        // ------------------------------------------------------------ 全局信息的初始化        /**     * 关于系统的全局初始化相关,将所有各部分配置载入ComApplication中,     * 可能包含以各部分的初始化:<br>     * .初始化数据库连接池<br>     * .初始化一般配置configs信息,包含reload<br>      * .初始化Email配置信息,包含reload<br>     * .初始化总站的Admin列表信息<br>     * .初始化系统的个性设置<br>     * .初始货版本信息<br>     * .初始化在线用户列表_visitors,并启动监测线程<br>     * .初始化授权页的配置<br>     * .初始化禁止访问的IP列表<br>     * @param servletContextPath 网站的本地路径信息,包括上下文路径     */    public void init(String servletContextPath) {        _servletContextPath = servletContextPath;        initConnection();        initConfigs();        initEmail();        initAdmins();        initMySetting();        initRelease();        initVisitors();        initAuths();        initDisallows();        initUserinfo();    }        // ------------------------------------------------------------ 创建连接池        private void initConnection() {        try {            out("---------------初始化数据库连接池common");            ConfigOper configOper = new ConfigOper();            PoolManager manager = PoolManager.getInstance();            Map<String, String> connConfig = configOper.getPoolConfig();            String pMin = connConfig.get("min").trim();    // 获取最小限制数            String pMax = connConfig.get("max").trim();    // 获取最大限制数            String pFreeTime = connConfig.get("free").trim();            String pBusyTime = connConfig.get("busy").trim();            if (pMin != null) {                int min = Integer.parseInt(pMin);                manager.setMin(min);            }            if (pMax != null) {                int max = Integer.parseInt(pMax);                manager.setMax(max);            }            if (pFreeTime != null) {                long freeTime = Long.parseLong(pFreeTime);                manager.setFreeTime(freeTime);            }            if (pBusyTime != null) {                long busyTime = Long.parseLong(pBusyTime);                manager.setBusyTime(busyTime);            }            List<Map<String, String>> dbs = configOper.getConnection();            for (Map<String, String> db : dbs) {                String poolId = db.get("id");                String dbDriver = db.get("driver");                String dbUrl = db.get("url");                String dbUser = db.get("name");                String dbPassword = db.get("password");                manager.createPool(poolId, dbDriver, dbUrl, dbUser, dbPassword);            }            // 启动监测线程            manager.managerStart();            manager.state();        } catch (Exception e) {            Elog.log("连接池创建过程中出现错误" + e.getMessage());        }    }        // ------------------------------------------------------------ 全局“开关”        /**     * 关于系统全局信息“开关”的初始化及reload     * @see biz.tbuy.common.ConfigOper#loadDisplay     */    private void initConfigs() {        out("---------------load:displays");        ConfigOper configOper = new ConfigOper();        Map<String, Boolean> displays = configOper.loadDisplay();        _register = displays.get("register");        _login = displays.get("login");        _emailRegister = displays.get("emailRegister");        _validateRegister = displays.get("validateRegister");        _validateLogin = displays.get("validateLogin");        _upload = displays.get("upload");        out("register:" + _register);        out("login:" + _login);        out("emailRegister:" + _emailRegister);        out("validateRegister:" + _validateRegister);        out("validateLogin:" + _validateLogin);        out("upload:" + _upload);    }        /**     * 重新载入系统的配置信息     * @see biz.tbuy.common.ConfigOper#loadDisplay     */    public void reloadConfigs() {        initConfigs();    }    /**     * 关于是否允许注册新用户,如果为true,则允许注册新用户,     * 如果为false,则不允许注册新用户     * @return true 允许注册新用户,false不允许注册新用户     */    public boolean isRegister() {        return _register;    }        /**     * 关于是否允许用户登录系统:     * @return true 允许登录,false不允许登录(管理员除外)     */    public boolean isLogin() {        return _login;    }        /**     * 关于注册帐号的email邮件激活,如果开启该功能,则在用户注册帐号时发送激活邮件给     * 用户所指定的邮箱地址中,以让用户通过点击相关链接激活其帐号。该功能需要配置好     * conEmail.否则将无法发送激活邮件!这样会造成用户无法使用未激活的帐号.<br>     * 返回是否开启email激活帐号功能     * @return true 需要进行email激活帐号,false不需要     */    public boolean isEmailRegister() {        return _emailRegister;    }        /**     * 关于注册验证,即验证码的开启情况,当开启注册验证时,会在注册页面显示验证码     * 并要求用户填写验证码才能注册用户,有助于防止恶意用户滥注册,默认:false     * 验证码保存于session.validateCode中<br>     * 获取是否开启进行注册验证,即是否需要进行验证码验证     * @return true 开启注册验证,false未开启     */    public boolean isValidateRegister() {        return _validateRegister;    }        /**     * 关于用户的登录验证,如果开启该功能,则在用户登录系统时会提示用户输入验证码,     * 以验证用户的登录!默认:false <br>     * 获取是否需要进行登录验证     * @return true 需要验证码登录, false 不需要验证码登录     */    public boolean isValidateLogin() {        return _validateLogin;    }        /**     * 关于上传文件的开关,如果返回true,则表示允许上传文件(全局)。     * 如果该方法返回false,则所有整站都不允许上传文件。可能会考虑admin     * @return true 允许上传文件,false不允许     */     public boolean isUpload() {

⌨️ 快捷键说明

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