亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dwrxmlconfigurator.java

?? dwr 源文件 dwr 源文件 dwr 源文件
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Copyright 2005 Joe Walker
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.directwebremoting.impl;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import javax.servlet.ServletContext;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.directwebremoting.AccessControl;
import org.directwebremoting.AjaxFilter;
import org.directwebremoting.AjaxFilterManager;
import org.directwebremoting.Configurator;
import org.directwebremoting.Container;
import org.directwebremoting.ConverterManager;
import org.directwebremoting.Creator;
import org.directwebremoting.CreatorManager;
import org.directwebremoting.TypeHintContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.util.LocalUtil;
import org.directwebremoting.util.LogErrorHandler;
import org.directwebremoting.util.Logger;
import org.directwebremoting.util.Messages;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * A configurator that gets its configuration by reading a dwr.xml file.
 * @author Joe Walker [joe at getahead dot ltd dot uk]
 */
public class DwrXmlConfigurator implements Configurator
{
    /**
     * Setter for the resource name that we can use to read a file from the
     * servlet context
     * @param servletResourceName The name to lookup
     * @throws IOException On file read failure
     * @throws ParserConfigurationException On XML setup failure
     * @throws SAXException On XML parse failure
     */
    public void setServletResourceName(String servletResourceName) throws IOException, ParserConfigurationException, SAXException
    {
        this.servletResourceName = servletResourceName;

        ServletContext servletContext = WebContextFactory.get().getServletContext();
        if (servletContext == null)
        {
            throw new IOException(Messages.getString("DwrXmlConfigurator.MissingServletContext")); //$NON-NLS-1$
        }

        InputStream in = null;
        try
        {
            in = servletContext.getResourceAsStream(servletResourceName);
            if (in == null)
            {
                throw new IOException(Messages.getString("DwrXmlConfigurator.MissingConfigFile", servletResourceName)); //$NON-NLS-1$
            }

            setInputStream(in);
        }
        finally
        {
            LocalUtil.close(in);
        }
    }

    /**
     * Setter for a classpath based lookup
     * @param classResourceName The resource to lookup in the classpath
     * @throws IOException On file read failure
     * @throws ParserConfigurationException On XML setup failure
     * @throws SAXException On XML parse failure
     */
    public void setClassResourceName(String classResourceName) throws IOException, ParserConfigurationException, SAXException
    {
        this.classResourceName = classResourceName;

        InputStream in = getClass().getResourceAsStream(classResourceName);
        if (in == null)
        {
            throw new IOException(Messages.getString("DwrXmlConfigurator.MissingConfigFile", classResourceName)); //$NON-NLS-1$
        }

        setInputStream(in);
    }

    /**
     * Setter for a direct input stream to configure from
     * @param in The input stream to read from.
     * @throws IOException On file read failure
     * @throws ParserConfigurationException On XML setup failure
     * @throws SAXException On XML parse failure
     */
    public void setInputStream(InputStream in) throws ParserConfigurationException, SAXException, IOException
    {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setValidating(true);

        DocumentBuilder db = dbf.newDocumentBuilder();
        db.setEntityResolver(new DTDEntityResolver());
        db.setErrorHandler(new LogErrorHandler());

        document = db.parse(in);
    }

    /**
     * To set the configuration document directly
     * @param document The new configuration document
     */
    public void setDocument(Document document)
    {
        this.document = document;
    }

    /* (non-Javadoc)
     * @see org.directwebremoting.Configurator#configure(org.directwebremoting.Container)
     */
    public void configure(Container container)
    {
        accessControl = (AccessControl) container.getBean(AccessControl.class.getName());
        ajaxFilterManager = (AjaxFilterManager) container.getBean(AjaxFilterManager.class.getName());
        converterManager = (ConverterManager) container.getBean(ConverterManager.class.getName());
        creatorManager = (CreatorManager) container.getBean(CreatorManager.class.getName());

        Element root = document.getDocumentElement();

        NodeList rootChildren = root.getChildNodes();
        for (int i = 0; i < rootChildren.getLength(); i++)
        {
            Node node = rootChildren.item(i);
            if (node.getNodeType() == Node.ELEMENT_NODE)
            {
                Element child = (Element) node;

                if (child.getNodeName().equals(ELEMENT_INIT))
                {
                    loadInits(child);
                }
                else if (child.getNodeName().equals(ELEMENT_ALLOW))
                {
                    loadAllows(child);
                }
                else if (child.getNodeName().equals(ELEMENT_SIGNATURES))
                {
                    loadSignature(child);
                }
            }
        }
    }

    /**
     * Internal method to load the inits element
     * @param child The element to read
     */
    private void loadInits(Element child)
    {
        NodeList inits = child.getChildNodes();
        for (int j = 0; j < inits.getLength(); j++)
        {
            if (inits.item(j).getNodeType() == Node.ELEMENT_NODE)
            {
                Element initer = (Element) inits.item(j);

                if (initer.getNodeName().equals(ATTRIBUTE_CREATOR))
                {
                    String id = initer.getAttribute(ATTRIBUTE_ID);
                    String className = initer.getAttribute(ATTRIBUTE_CLASS);
                    creatorManager.addCreatorType(id, className);
                }
                else if (initer.getNodeName().equals(ATTRIBUTE_CONVERTER))
                {
                    String id = initer.getAttribute(ATTRIBUTE_ID);
                    String className = initer.getAttribute(ATTRIBUTE_CLASS);
                    converterManager.addConverterType(id, className);
                }
            }
        }
    }

    /**
     * Internal method to load the create/convert elements
     * @param child The element to read
     */
    private void loadAllows(Element child)
    {
        NodeList allows = child.getChildNodes();
        for (int j = 0; j < allows.getLength(); j++)
        {
            if (allows.item(j).getNodeType() == Node.ELEMENT_NODE)
            {
                Element allower = (Element) allows.item(j);

                if (allower.getNodeName().equals(ELEMENT_CREATE))
                {
                    loadCreate(allower);
                }
                else if (allower.getNodeName().equals(ELEMENT_CONVERT))
                {
                    loadConvert(allower);
                }
                else if (allower.getNodeName().equals(ELEMENT_FILTER))
                {
                    loadFilter(allower);
                }
            }
        }
    }

    /**
     * Internal method to load the convert element
     * @param allower The element to read
     */
    private void loadConvert(Element allower)
    {
        String match = allower.getAttribute(ATTRIBUTE_MATCH);
        String type = allower.getAttribute(ATTRIBUTE_CONVERTER);

        try
        {
            Map params = createSettingMap(allower);
            converterManager.addConverter(match, type, params);
        }
        catch (NoClassDefFoundError ex)
        {
            log.info("Convertor '" + type + "' not loaded due to NoClassDefFoundError. (match='" + match + "'). Cause: " + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        }
        catch (Exception ex)
        {
            log.error("Failed to add convertor: match=" + match + ", type=" + type, ex); //$NON-NLS-1$ //$NON-NLS-2$
        }
    }

    /**
     * Internal method to load the create element
     * @param allower The element to read
     */
    private void loadCreate(Element allower)
    {
        String type = allower.getAttribute(ATTRIBUTE_CREATOR);
        String javascript = allower.getAttribute(ATTRIBUTE_JAVASCRIPT);

        try
        {
            Map params = createSettingMap(allower);
            creatorManager.addCreator(javascript, type, params);

            processPermissions(javascript, allower);
            processAuth(javascript, allower);
            processParameters(javascript, allower);
            processAjaxFilters(javascript, allower);
        }
        catch (NoClassDefFoundError ex)
        {
            log.info("Creator '" + type + "' not loaded due to NoClassDefFoundError. (javascript='" + javascript + "'). Cause: " + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        }
        catch (Exception ex)
        {
            log.error("Failed to add creator: type=" + type + ", javascript=" + javascript, ex); //$NON-NLS-1$ //$NON-NLS-2$
        }
    }

    /**
     * Internal method to load the convert element
     * @param allower The element to read
     */
    private void loadFilter(Element allower)
    {
        String type = allower.getAttribute(ATTRIBUTE_CLASS);

        try
        {
            Class impl = LocalUtil.classForName(type);
            AjaxFilter object = (AjaxFilter) impl.newInstance();

            LocalUtil.setParams(object, createSettingMap(allower), ignore);

            ajaxFilterManager.addAjaxFilter(object);
        }
        catch (ClassCastException ex)
        {
            log.error(type + " does not implement " + AjaxFilter.class.getName(), ex); //$NON-NLS-1$
        }
        catch (NoClassDefFoundError ex)
        {
            log.info("Missing class for filter (class='" + type + "'). Cause: " + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
        }
        catch (Exception ex)
        {
            log.error("Failed to add filter: class=" + type, ex); //$NON-NLS-1$
        }
    }

    /**
     * Create a parameter map from nested <param name="foo" value="blah"/>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文字幕公布| a美女胸又www黄视频久久| 精品国产麻豆免费人成网站| 国产精品一卡二卡| 亚洲国产视频网站| 国产婷婷色一区二区三区| 91国在线观看| 国产91丝袜在线观看| 五月天欧美精品| 亚洲欧美另类在线| 国产精品欧美经典| 亚洲精品一区二区三区精华液| 欧美视频精品在线观看| 99精品欧美一区二区蜜桃免费| 久久91精品久久久久久秒播| 亚洲午夜免费福利视频| 一区二区三区在线不卡| 亚洲人精品午夜| 亚洲人成在线播放网站岛国| 国产精品欧美一区喷水| 亚洲国产精品成人综合色在线婷婷| 欧美在线不卡视频| 成年人网站91| 99re这里只有精品首页| 国产91精品久久久久久久网曝门| 奇米色一区二区| 久久疯狂做爰流白浆xx| 麻豆精品蜜桃视频网站| 国产麻豆视频精品| 国产91色综合久久免费分享| 国产成人精品亚洲日本在线桃色| 国产一区美女在线| 国产999精品久久久久久| 成人国产精品视频| 91久久国产最好的精华液| 欧洲精品一区二区三区在线观看| 欧美日韩情趣电影| 日韩天堂在线观看| 日本一区二区三区久久久久久久久不| 国产欧美va欧美不卡在线| 综合av第一页| 免费xxxx性欧美18vr| 国产高清亚洲一区| 在线观看欧美黄色| 日韩一本二本av| 一色屋精品亚洲香蕉网站| 亚洲一区二区三区四区中文字幕| 免费成人美女在线观看.| 国产精品一线二线三线精华| 色婷婷久久综合| 久久久久久久久久久久久女国产乱| 国产精品久久久久四虎| 图片区小说区区亚洲影院| 国产不卡在线播放| 欧美欧美欧美欧美| 国产精品人妖ts系列视频| 日韩成人伦理电影在线观看| a在线播放不卡| 国产视频一区二区三区在线观看| 日韩影院在线观看| 色综合激情久久| 国产精品人妖ts系列视频| 精品制服美女久久| 欧美熟乱第一页| 最新不卡av在线| 99久免费精品视频在线观看 | 蜜臀a∨国产成人精品| 99精品欧美一区| 日韩一区日韩二区| 成人中文字幕电影| 国产女人18水真多18精品一级做 | 久久久久久久久久久久久夜| 一区二区三区高清| 亚洲美腿欧美偷拍| 亚洲一区二区不卡免费| 成人午夜免费电影| 最新欧美精品一区二区三区| 国产福利精品一区二区| 精品久久久久久久人人人人传媒| 日韩1区2区日韩1区2区| 欧美另类久久久品| 日韩不卡手机在线v区| 欧美一区二区三区免费| 蜜桃视频免费观看一区| 26uuuu精品一区二区| 国产成人精品www牛牛影视| 国产欧美日韩精品在线| 成人午夜看片网址| 亚洲一区二区三区四区五区中文| 欧美日韩一区三区四区| 精品亚洲porn| 亚洲少妇30p| 日韩精品最新网址| 粉嫩一区二区三区性色av| 亚洲一区二区三区激情| 91精品国产综合久久久蜜臀图片| 国产毛片精品一区| 一区二区三区av电影 | 337p粉嫩大胆色噜噜噜噜亚洲| 国产一区二区三区久久悠悠色av| 国产日韩欧美不卡在线| 欧美视频日韩视频在线观看| 国产一区二区伦理| 偷拍与自拍一区| 中文字幕一区二区日韩精品绯色| 91精品国产一区二区三区| 成人免费看的视频| 久久福利视频一区二区| 亚洲综合成人在线视频| 国产亚洲1区2区3区| 91.xcao| 91精品1区2区| 成人动漫视频在线| 精品一区二区日韩| 日韩av电影免费观看高清完整版 | 欧美精品在线一区二区| 国产99一区视频免费| 韩国v欧美v亚洲v日本v| 日本亚洲免费观看| 日本欧美在线看| 婷婷国产v国产偷v亚洲高清| 亚洲精品乱码久久久久久黑人| 国产午夜亚洲精品理论片色戒 | 日韩一区二区三| 欧美日韩国产高清一区| 在线观看日韩一区| 欧美午夜精品电影| 欧美午夜电影网| 欧美三片在线视频观看| 欧美日韩国产首页| 欧美一区二区视频网站| 日韩欧美国产电影| 国产亚洲短视频| 亚洲欧美一区二区三区久本道91| 最新热久久免费视频| 亚洲一二三区在线观看| 午夜精品久久久久久久久| 美女视频黄久久| 丁香桃色午夜亚洲一区二区三区| 成人免费视频免费观看| 色婷婷亚洲婷婷| 日韩欧美黄色影院| 日本一区二区三区久久久久久久久不| 中文字幕日韩精品一区| 亚洲va在线va天堂| 国产裸体歌舞团一区二区| 成人高清av在线| 欧美久久一区二区| 精品久久国产字幕高潮| 亚洲日本免费电影| 久久丁香综合五月国产三级网站| 国产露脸91国语对白| 欧日韩精品视频| 国产日韩成人精品| 日韩成人一级片| 色婷婷综合久久久久中文| 久久久亚洲欧洲日产国码αv| 亚洲视频一区二区免费在线观看| 日本不卡视频在线| 色老综合老女人久久久| 欧美一区二区三区免费| 国产尤物一区二区| 国产美女精品人人做人人爽| 成人丝袜视频网| 精品免费日韩av| 奇米精品一区二区三区在线观看一| 成人一区二区三区视频| 久久亚洲春色中文字幕久久久| 五月天亚洲婷婷| 欧美日韩在线不卡| 亚洲精品免费电影| 91麻豆.com| 亚洲一区二区在线视频| 91网站最新网址| 亚洲免费观看在线视频| 99re这里只有精品视频首页| 亚洲国产电影在线观看| 成人永久免费视频| 国产精品久久午夜| 色综合久久综合网| 亚洲最大色网站| 欧美丰满少妇xxxxx高潮对白| 亚洲一区二区在线播放相泽| 欧美最猛性xxxxx直播| 一区二区成人在线观看| 337p亚洲精品色噜噜| 麻豆精品国产91久久久久久| 日韩欧美国产成人一区二区| 久久国产精品99久久久久久老狼| 久久麻豆一区二区| 99精品国产热久久91蜜凸| 亚洲成av人片在线观看无码| 这里是久久伊人| 成人h动漫精品一区二| 亚洲精选一二三| 欧美不卡一区二区| 99国产欧美久久久精品| 奇米四色…亚洲| 国产精品美女久久久久久2018| 欧美性大战久久久久久久蜜臀|