private DataRow setStringValue(DataRow dataRow,String tmp){
     if(tmp!=null&&tmp.indexOf(":")>0){//至少有一个键:值
     dataRow=new  DataRow();
     String[] items=tmp.split("\\|");
     for (int i = 0; i < items.length; i++) {
if(items[i].indexOf(":")>0){
String[] item=items[i].split(":");
if(item!=null && item.length==1)
dataRow.set(item[0], "");
else
dataRow.set(item[0], item[1]);
}
}
     }
     return dataRow;
    }
    
    private DataRow getClientInfoFromCookie(HttpServletRequest request){
     //     判断cookie,看用户是否已经登陆
String cookieStr= CookieHelper.getCookieValue(request,WebConstants.COOKIE_CLIENT_INFO_KEY);
try {
cookieStr=new String(Base64.decode(cookieStr),Configuration.getString("sso.charsetName"));
} catch (UnsupportedEncodingException e) {
cookieStr=null;
logger.warn("["+Configuration.getString("sso.charsetName")+"] 不是一个标准的字符格式");
}
DataRow cookieInfo=null;
return setStringValue(cookieInfo,cookieStr);
    }
    
    
    <category name="sso" description="用户中心数据表">
        <item name="domain" value="dgzq.com.cn" description="用户中心的表前缀" />
        <item name="cookiename" value="sso_cookie" description="用户中心的表前缀" />
        <item name="keypath" value="D:/dgzq/service/src/Key.dat" description="key路径,可用|分隔从多个路径来取" />
        <item name="clientEmailDomain" value="dgzq.com" description="邮件系统,客户默认的邮件域名" />
        <item name="charsetName" value="UTF-8" description="保存cookie中字符的编码,一般使用utf-8" />
    </category>

解决方案 »

  1.   

    public class Configuration
    {
        private static Logger logger = Logger.getLogger(Configuration.class);
        private static Map items = new HashMap();
        private static String CONFIG_FILE_NAME = "configuration.xml";    static
        {
            loadConfig();
        }    /**
         * 读入配置文件
         */
        private static void loadConfig()
        {
            try
            {
                InputStream is = Configuration.class.getResourceAsStream("/" + CONFIG_FILE_NAME);
                SAXReader reader = new SAXReader();            Document document = reader.read(is);
                Element systemElement = document.getRootElement();
                List catList = systemElement.elements("category");
                for (Iterator catIter = catList.iterator(); catIter.hasNext();)
                {
                    Element catElement = (Element) catIter.next();
                    String catName = catElement.attributeValue("name");
                    if (StringHelper.isEmpty(catName))
                    {
                        continue;
                    }                List itemList = catElement.elements("item");
                    for (Iterator itemIter = itemList.iterator(); itemIter.hasNext();)
                    {
                        Element itemElement = (Element) itemIter.next();
                        String itemName = itemElement.attributeValue("name");
                        String value = itemElement.attributeValue("value");
                        if (!StringHelper.isEmpty(itemName))
                        {
                            items.put(catName + "." + itemName, value);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.error("", ex);
            }
        }    /**
         * 获得字串配置值
         *
         * @param name
         * @return
         */
        public static String getString(String name)
        {
            String value = (String) items.get(name);
            return (value == null) ? "" : value;
        }    /**
         * 获得字串配置值,若为空,则返回缺省值
         *
         * @param name
         * @param defaultValue
         * @return
         */
        public static String getString(String name, String defaultValue)
        {
            String value = (String) items.get(name);
            if (value != null && value.length() > 0)
                return value;
            else
                return defaultValue;
        }    /**
         * 获得整型配置值
         *
         * @param name
         * @return
         */
        public static int getInt(String name)
        {
            String value = getString(name);
            try
            {
                return Integer.parseInt(value);
            }
            catch (NumberFormatException ex)
            {
                return 0;
            }
        }    /**
         * 获得整型配置值
         *
         * @param name
         * @return
         */
        public static int getInt(String name, int defaultValue)
        {
            String value = getString(name);
            try
            {
                return Integer.parseInt(value);
            }
            catch (NumberFormatException ex)
            {
            }
            return defaultValue;
        }    /**
         * 获得布尔型配置值
         *
         * @param name
         * @return
         */
        public static boolean getBoolean(String name)
        {
            String value = getString(name);
            return Boolean.valueOf(value).booleanValue();
        }
        
        public  Map getItems(){
         return items;
        }
    }
      

  2.   

        /**
         * 根据cookie名称,得到cookie的值
         *
         * @param request    HttpServletRequest对象
         * @param cookieName Cookie的名称
         * @return cookie的值,若不存在,则返回空字串
         */
        public static String getCookieValue(HttpServletRequest request, String cookieName)
        {
            String value = "";        Cookie cookie = getCookieByName(request, cookieName);
            if (cookie != null)
            {
                value = cookie.getValue();
            }        return value;
        }
        
           /**
         * 根据cookie名称,得到对应的cookie值
         *
         * @param request    HttpServletRequest对象
         * @param cookieName cookie的名称
         * @return 对应cookie的值,若不存在,则返回null
         */    public static Cookie getCookieByName(HttpServletRequest request, String cookieName)
        {
            Cookie cookies[];
            if ((cookies = request.getCookies()) != null)
            {
                for (int i = 0; i < cookies.length; i++)
                {
                    if (cookies[i].getName().equalsIgnoreCase(cookieName))
                    {
                        return (Cookie) cookies[i].clone();
                    }
                }
            }
            return null;
        }
      

  3.   

    Linux+Oracle+Java 技术群:87923477 欢迎热爱技术的朋友们的参与