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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filterdispatcher.java

?? FilterDispatcher源碼,些源碼是struts2的核心源碼.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* * $Id: FilterDispatcher.java 530439 2007-04-19 15:00:20Z hermanns $ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements.  See the NOTICE file * distributed with this work for additional information * regarding copyright ownership.  The ASF licenses this file * to you 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.apache.struts2.dispatcher;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLDecoder;import java.util.ArrayList;import java.util.Calendar;import java.util.Enumeration;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts2.RequestUtils;import org.apache.struts2.StrutsConstants;import org.apache.struts2.StrutsStatics;import org.apache.struts2.dispatcher.mapper.ActionMapper;import org.apache.struts2.dispatcher.mapper.ActionMapping;import com.opensymphony.xwork2.inject.Inject;import com.opensymphony.xwork2.util.ClassLoaderUtil;import com.opensymphony.xwork2.util.profiling.UtilTimerStack;import com.opensymphony.xwork2.ActionContext;/** * Master filter for Struts that handles four distinct * responsibilities: * * <ul> * * <li>Executing actions</li> * * <li>Cleaning up the {@link ActionContext} (see note)</li> * * <li>Serving static content</li> * * <li>Kicking off XWork's interceptor chain for the request lifecycle</li> * * </ul> * * <p/> <b>IMPORTANT</b>: this filter must be mapped to all requests. Unless you know exactly what you are doing, always * map to this URL pattern: /* * * <p/> <b>Executing actions</b> * * <p/> This filter executes actions by consulting the {@link ActionMapper} and determining if the requested URL should * invoke an action. If the mapper indicates it should, <b>the rest of the filter chain is stopped</b> and the action is * invoked. This is important, as it means that filters like the SiteMesh filter must be placed <b>before</b> this * filter or they will not be able to decorate the output of actions. * * <p/> <b>Cleaning up the {@link ActionContext}</b> * * <p/> This filter will also automatically clean up the {@link ActionContext} for you, ensuring that no memory leaks * take place. However, this can sometimes cause problems integrating with other products like SiteMesh. See {@link * ActionContextCleanUp} for more information on how to deal with this. * * <p/> <b>Serving static content</b> * * <p/> This filter also serves common static content needed when using various parts of Struts, such as JavaScript * files, CSS files, etc. It works by looking for requests to /struts/*, and then mapping the value after "/struts/" * to common packages in Struts and, optionally, in your class path. By default, the following packages are * automatically searched: * * <ul> * * <li>org.apache.struts2.static</li> * * <li>template</li> * * </ul> * * <p/> This means that you can simply request /struts/xhtml/styles.css and the XHTML UI theme's default stylesheet * will be returned. Likewise, many of the AJAX UI components require various JavaScript files, which are found in the * org.apache.struts2.static package. If you wish to add additional packages to be searched, you can add a comma * separated (space, tab and new line will do as well) list in the filter init parameter named "packages". <b>Be * careful</b>, however, to expose any packages that may have sensitive information, such as properties file with * database access credentials. * * <p/> *  * <p> *  * This filter supports the following init-params: * <!-- START SNIPPET: params --> * * <ul> * * <li><b>config</b> - a comma-delimited list of XML configuration files to load.</li> * * <li><b>actionPackages</b> - a comma-delimited list of Java packages to scan for Actions.</li> * * <li><b>configProviders</b> - a comma-delimited list of Java classes that implement the  * {@link com.opensymphony.xwork2.config.ConfigurationProvider} interface that should be used for building the {@link com.opensymphony.xwork2.config.Configuration}.</li> *  * <li><b>*</b> - any other parameters are treated as framework constants.</li> *  * </ul> * * <!-- END SNIPPET: params --> *  * </p> * * To use a custom {@link Dispatcher}, the <code>createDispatcher()</code> method could be overriden by * the subclass. * * @see ActionMapper * @see ActionContextCleanUp * * @version $Date: 2007-04-19 17:00:20 +0200 (Do, 19 Apr 2007) $ $Id: FilterDispatcher.java 530439 2007-04-19 15:00:20Z hermanns $ */public class FilterDispatcher implements StrutsStatics, Filter {    /**     * Provide a logging instance.     */    private static final Log LOG = LogFactory.getLog(FilterDispatcher.class);    /**     * Store set of path prefixes to use with static resources.     */    private String[] pathPrefixes;    /**     * Provide a formatted date for setting heading information when caching static content.     */    private final Calendar lastModifiedCal = Calendar.getInstance();    /**     * Store state of StrutsConstants.STRUTS_SERVE_STATIC_CONTENT setting.     */    private static boolean serveStatic;    /**     * Store state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.     */    private static boolean serveStaticBrowserCache;    /**     * Store state of StrutsConstants.STRUTS_I18N_ENCODING setting.     */    private static String encoding;    /**     * Provide ActionMapper instance, set by injection.     */    private static ActionMapper actionMapper;    /**     * Provide FilterConfig instance, set on init.     */    private FilterConfig filterConfig;    /**     * Expose Dispatcher instance to subclass.     */    protected Dispatcher dispatcher;    /**     * Initializes the filter by creating a default dispatcher     * and setting the default packages for static resources.     *     * @param filterConfig The filter configuration     */    public void init(FilterConfig filterConfig) throws ServletException {    	 this.filterConfig = filterConfig;    	         dispatcher = createDispatcher(filterConfig);        dispatcher.init();               String param = filterConfig.getInitParameter("packages");        String packages = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";        if (param != null) {            packages = param + " " + packages;        }        this.pathPrefixes = parse(packages);    }    /**     * Calls dispatcher.cleanup,     * which in turn releases local threads and destroys any DispatchListeners.     *     * @see javax.servlet.Filter#destroy()     */    public void destroy() {        if (dispatcher == null) {            LOG.warn("something is seriously wrong, Dispatcher is not initialized (null) ");        } else {            dispatcher.cleanup();        }    }        /**     * Create a default {@link Dispatcher} that subclasses can override     * with a custom Dispatcher, if needed.     *     * @param filterConfig Our FilterConfig     * @return Initialized Dispatcher      */    protected Dispatcher createDispatcher(FilterConfig filterConfig) {        Map<String,String> params = new HashMap<String,String>();        for (Enumeration e = filterConfig.getInitParameterNames(); e.hasMoreElements(); ) {            String name = (String) e.nextElement();            String value = filterConfig.getInitParameter(name);            params.put(name, value);        }        return new Dispatcher(filterConfig.getServletContext(), params);    }    /**     * Modify state of StrutsConstants.STRUTS_SERVE_STATIC_CONTENT setting.     * @param val New setting     */    @Inject(StrutsConstants.STRUTS_SERVE_STATIC_CONTENT)    public static void setServeStaticContent(String val) {        serveStatic = "true".equals(val);    }        /**     * Modify state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.     * @param val New setting     */    @Inject(StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE)    public static void setServeStaticBrowserCache(String val) {        serveStaticBrowserCache = "true".equals(val);    }        /**     * Modify state of StrutsConstants.STRUTS_I18N_ENCODING setting.     * @param val New setting     */    @Inject(StrutsConstants.STRUTS_I18N_ENCODING)    public static void setEncoding(String val) {        encoding = val;    }        /**     * Modify ActionMapper instance.     * @param mapper New instance     */    @Inject    public static void setActionMapper(ActionMapper mapper) {        actionMapper = mapper;    }        /**     * Provide a workaround for some versions of WebLogic.     * <p/>     * Servlet 2.3 specifies that the servlet context can be retrieved from the session. Unfortunately, some versions of     * WebLogic can only retrieve the servlet context from the filter config. Hence, this method enables subclasses to

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
伊人开心综合网| 国产成人综合亚洲网站| 久久综合色播五月| 国产亚洲1区2区3区| 色中色一区二区| 视频一区中文字幕国产| 日韩精品一区二区三区视频在线观看| 成人高清伦理免费影院在线观看| 欧美一级高清片在线观看| 91麻豆高清视频| eeuss国产一区二区三区| 欧美亚洲高清一区| 在线免费精品视频| 884aa四虎影成人精品一区| 欧美日韩不卡一区| 欧美亚洲动漫制服丝袜| 国产日韩影视精品| 亚洲美腿欧美偷拍| 经典一区二区三区| 国产经典欧美精品| 精品国产乱码久久久久久闺蜜| 亚洲综合色噜噜狠狠| 99国产麻豆精品| 天堂久久久久va久久久久| 日韩一本二本av| 成人免费视频网站在线观看| 一区二区三区欧美日韩| 欧美视频第二页| 亚洲欧美日韩国产综合| av爱爱亚洲一区| 日韩美女天天操| 综合自拍亚洲综合图不卡区| 日韩视频免费观看高清完整版在线观看| 国产蜜臀av在线一区二区三区| 欧美亚洲精品一区| 欧美mv日韩mv国产| 欧美激情在线免费观看| 亚洲一区二区偷拍精品| 久久精品国产秦先生| 波多野结衣一区二区三区| 欧美日韩一区二区在线观看| 91精品国产综合久久精品麻豆 | 国产呦精品一区二区三区网站| 粉嫩av一区二区三区| 欧美日本一区二区三区| 欧美激情一区在线| 亚洲成av人片一区二区| 国产高清一区日本| 制服丝袜日韩国产| 亚洲婷婷综合色高清在线| 日本vs亚洲vs韩国一区三区| 99久久99久久精品免费观看| 精品成人在线观看| 日日夜夜免费精品| 91蜜桃网址入口| 久久精品欧美一区二区三区不卡| 亚洲第一福利视频在线| 99re6这里只有精品视频在线观看| 欧美一激情一区二区三区| 一区二区视频在线| 成人av电影在线观看| 欧美精品一区二区三区蜜桃视频 | 亚洲三级久久久| 国产乱码精品一区二区三区五月婷 | 欧美一区二区大片| 亚洲在线成人精品| 色欧美日韩亚洲| 国产精品三级久久久久三级| 国内精品自线一区二区三区视频| 在线播放中文一区| 性做久久久久久久免费看| 色av一区二区| 亚洲欧美日韩电影| 91原创在线视频| 国产精品乱人伦| 成人av第一页| 亚洲欧洲99久久| 99国产精品久久| 亚洲欧美电影院| 91福利社在线观看| 一二三四区精品视频| 欧洲色大大久久| 亚洲不卡在线观看| 欧美日韩国产系列| 亚洲成av人片| 日韩午夜三级在线| 韩日av一区二区| 久久久久97国产精华液好用吗| 国模娜娜一区二区三区| 亚洲国产精品高清| 不卡av在线免费观看| 亚洲黄色片在线观看| 在线观看国产91| 日韩精品电影在线| 精品av久久707| 不卡一区在线观看| 伊人开心综合网| 日韩视频不卡中文| 高清不卡一二三区| 亚洲综合一二区| 日韩一区二区在线看| 国产精品一二一区| 夜夜亚洲天天久久| 日韩精品一区二区三区视频在线观看| 国产乱码精品一区二区三区忘忧草 | 欧美视频在线不卡| 久久黄色级2电影| 中文字幕乱码亚洲精品一区| 欧美性大战久久久| 黑人巨大精品欧美一区| 亚洲日本乱码在线观看| 91精品国产综合久久久久久久久久| 精品一区二区久久久| 1区2区3区精品视频| 69p69国产精品| 韩国中文字幕2020精品| 亚洲人成在线观看一区二区| 欧美日韩精品高清| 床上的激情91.| 亚洲成人黄色小说| 中文字幕第一页久久| 欧美精品日韩精品| av高清久久久| 久久精品国产色蜜蜜麻豆| 亚洲免费观看高清在线观看| 欧美mv日韩mv亚洲| 欧美日韩在线观看一区二区| 国产精品自拍在线| 日韩精品一二三| 最近中文字幕一区二区三区| www国产精品av| 欧美猛男男办公室激情| 97se亚洲国产综合自在线观| 激情国产一区二区| 视频一区在线视频| 亚洲综合色区另类av| 国产精品国产三级国产aⅴ入口| 日韩欧美久久久| 欧美日韩在线亚洲一区蜜芽| 91视频一区二区| 国产真实乱子伦精品视频| 水蜜桃久久夜色精品一区的特点| 日韩理论在线观看| 国产精品人人做人人爽人人添| 欧美v日韩v国产v| 欧美一区二区三区四区视频 | av在线这里只有精品| 精品一区二区在线看| 日本午夜精品视频在线观看| 亚洲一区二区三区在线看| 国产精品国产三级国产三级人妇| 国产欧美一二三区| 国产亚洲欧美激情| 欧美激情一区二区| 国产午夜精品一区二区三区嫩草 | 亚洲女与黑人做爰| 国产精品乱码一区二区三区软件| 国产亚洲一本大道中文在线| 欧美精品一区二区三| www成人在线观看| 久久久精品欧美丰满| 国产日韩欧美精品在线| 久久一区二区三区四区| 久久综合九色综合欧美就去吻| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美顶级少妇做爰| 久久成人免费日本黄色| 蜜臀精品久久久久久蜜臀| 亚洲免费av网站| 亚洲成人777| 伊人色综合久久天天| 亚洲图片激情小说| 国产精品久久久久影院老司| www久久精品| 久久九九99视频| 欧美日韩三级视频| 欧美一区二区三区播放老司机| 欧美日韩精品电影| 欧美偷拍一区二区| 欧美成人高清电影在线| 日韩一级片网址| 精品国产1区二区| 欧美一区二区三区视频在线观看| 日韩一级完整毛片| 久久午夜国产精品| 国产欧美久久久精品影院| 亚洲欧美色图小说| 一区二区三区在线播| 亚洲成人动漫在线观看| 亚洲国产精品综合小说图片区| 免费在线观看成人| 国产麻豆成人精品| 成人亚洲一区二区一| 欧美精品久久99| 精品少妇一区二区三区视频免付费| 精品久久久久av影院| 2020国产成人综合网| 一区二区三区国产| 日韩av电影免费观看高清完整版| 奇米一区二区三区av|