📄 config.java
字号:
package com.redmoon.forum;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author not attributable * @version 1.0 */import org.jdom.*;import org.jdom.output.*;import org.jdom.input.*;import java.io.*;import java.net.URL;import cn.js.fan.util.XMLProperties;import org.apache.log4j.Logger;import cn.js.fan.util.StrUtil;import com.redmoon.forum.security.LoginMonitor;import cn.js.fan.cache.jcs.RMCache;import java.net.URLDecoder;import javax.servlet.http.HttpServletRequest;import cn.js.fan.web.SkinUtil;public class Config { // public: constructor to load driver and connect db private XMLProperties properties; private final String CONFIG_FILENAME = "config_forum.xml"; private String cfgpath; Logger logger; Document doc = null; Element root = null; final String rootChild = "forum"; final String cacheGroup = "forum_cfg"; public Config() { logger = Logger.getLogger(Config.class.getName()); } public void init() { URL cfgURL = getClass().getClassLoader().getResource( CONFIG_FILENAME); cfgpath = cfgURL.getFile(); cfgpath = URLDecoder.decode(cfgpath); properties = new XMLProperties(cfgpath); SAXBuilder sb = new SAXBuilder(); try { FileInputStream fin = new FileInputStream(cfgpath); doc = sb.build(fin); root = doc.getRootElement(); fin.close(); } catch (org.jdom.JDOMException e) { logger.error("Config:" + e.getMessage()); } catch (java.io.IOException e) { logger.error("Config:" + e.getMessage()); } } public void refresh() { try { RMCache.getInstance().invalidateGroup(cacheGroup); } catch (Exception e) { logger.error("refresh:" + e.getMessage()); } } public Element getRootElement() { if (root==null) init(); return root; } public String getProperty(String name) { String v = null; try { v = (String) RMCache.getInstance().getFromGroup(name, cacheGroup); } catch (Exception e) { logger.error("getProperty1:" + e.getMessage()); } if (v==null) { if (root == null) init(); v = properties.getProperty(name); if (v!=null) { try { RMCache.getInstance().putInGroup(name, cacheGroup, v); } catch (Exception e) { logger.error("getProperty2:" + e.getMessage()); } } } return v; } public int getIntProperty(String name) { String p = getProperty(name); if (StrUtil.isNumeric(p)) { return Integer.parseInt(p); } else return -65536; } public boolean getBooleanProperty(String name) { String p = getProperty(name); return p.equals("true"); } public void setProperty(String name, String value) { properties.setProperty(name, value); } public String getDescription(String name) { if (root==null) init(); Element which = root.getChild(rootChild).getChild(name); // System.out.println("name=" + name + " which=" + which); if (which == null) return null; return which.getAttribute("desc").getValue(); } public String getDescription(HttpServletRequest request, String name) { return SkinUtil.LoadString(request, "res.config.config_forum", name); } public boolean put(String name, String value) { if (root==null) init(); Element which = root.getChild(rootChild).getChild(name); if (which == null) return false; which.setText(value); writemodify(); if (name.indexOf("login")!=-1) LoginMonitor.initParam(); return true; } public void writemodify() { String indent = " "; Format format = Format.getPrettyFormat(); format.setIndent(indent); format.setEncoding("gb2312"); XMLOutputter outp = new XMLOutputter(format); try { FileOutputStream fout = new FileOutputStream(cfgpath); outp.output(doc, fout); fout.close(); } catch (java.io.IOException e) {} refresh(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -