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

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

?? 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片在线| 中文字幕免费一区| 日韩福利电影在线| 91精品国产福利在线观看| 亚洲v精品v日韩v欧美v专区 | 国产综合久久久久久久久久久久 | 色中色一区二区| 亚洲在线一区二区三区| 欧美日韩第一区日日骚| 久久99国内精品| 国产精品欧美一区喷水| 在线视频一区二区三区| 青青草国产成人99久久| 欧美激情一区在线| 精品视频在线看| 国产精品自产自拍| 日韩美女视频一区二区| 这里只有精品电影| 成人免费毛片片v| 一区二区三区中文字幕精品精品 | 欧美激情在线看| 在线观看网站黄不卡| 麻豆精品一区二区三区| 中文字幕在线一区| 欧美日韩国产免费| 国产精品自在在线| 亚洲国产视频一区二区| xvideos.蜜桃一区二区| 色琪琪一区二区三区亚洲区| 久久精品二区亚洲w码| 自拍偷自拍亚洲精品播放| 91精品国产综合久久久蜜臀粉嫩| 国产不卡视频在线观看| 亚洲二区视频在线| 国产精品色婷婷| 3atv在线一区二区三区| 成人永久免费视频| 青青草国产精品97视觉盛宴| 自拍视频在线观看一区二区| 精品国产不卡一区二区三区| 在线观看不卡一区| 成人深夜在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 99re成人精品视频| 裸体一区二区三区| 亚洲国产一区视频| 国产日韩欧美一区二区三区乱码| 欧美日韩一级二级三级| www.欧美亚洲| 国内外成人在线| 五月婷婷久久综合| 一区二区三区日韩精品| 欧美激情在线看| 久久久久亚洲蜜桃| 日韩欧美综合一区| 欧美精品久久久久久久多人混战| 粉嫩aⅴ一区二区三区四区| 老司机午夜精品| 天天av天天翘天天综合网 | 午夜亚洲国产au精品一区二区| 欧美激情一区二区| 精品免费一区二区三区| 欧美日韩dvd在线观看| 91久久一区二区| 色综合咪咪久久| 成人免费视频视频在线观看免费 | 免费精品视频最新在线| 香蕉加勒比综合久久| 亚洲国产一区二区三区| 日韩激情一二三区| 亚洲午夜久久久久久久久电影网 | 亚州成人在线电影| 亚洲国产视频一区| 亚洲18女电影在线观看| 日日摸夜夜添夜夜添亚洲女人| 亚洲一区二区三区爽爽爽爽爽 | 久久久久久久久久久久久久久99| 欧美一区二区观看视频| 欧美成人video| 日韩手机在线导航| 欧美一区二区不卡视频| 精品精品国产高清一毛片一天堂| 精品少妇一区二区三区在线视频| 91精品国产日韩91久久久久久| 欧美一区二区三区在线观看 | 国产日韩影视精品| 国产精品无码永久免费888| 成人免费小视频| 亚洲乱码国产乱码精品精小说 | 国产一区高清在线| 国产精品一区专区| av不卡免费在线观看| 欧美专区在线观看一区| 91精品中文字幕一区二区三区| 欧美精品视频www在线观看| 91麻豆精品国产91久久久更新时间 | 日韩视频免费观看高清完整版| 欧美岛国在线观看| 国产亚洲一区二区三区在线观看 | 色噜噜狠狠色综合欧洲selulu| 色婷婷av一区二区| 日韩一区二区三免费高清| 久久色在线观看| 亚洲精品国久久99热| 日韩有码一区二区三区| 国产成人在线视频网址| 日本韩国欧美三级| 欧美精品一区二区三| 亚洲男人的天堂在线观看| 亚洲一区二区三区在线看| 国产乱妇无码大片在线观看| av在线不卡电影| 欧美一区二区不卡视频| 国产精品青草久久| 日本视频在线一区| caoporn国产精品| 欧美一区二区三区免费观看视频 | 在线不卡中文字幕| 久久久777精品电影网影网| 亚洲一区电影777| 国产精品影音先锋| 欧美精品视频www在线观看| 国产精品天天摸av网| 免费成人在线观看| 在线国产电影不卡| 亚洲国产精品成人综合| 日韩精品乱码av一区二区| 99国产精品久久| 精品国产乱码久久久久久久久 | 樱花影视一区二区| 国产在线视频精品一区| 欧美日韩国产综合草草| 亚洲国产精品成人综合| 美女精品自拍一二三四| 欧美四级电影网| 中文字幕精品—区二区四季| 美女网站一区二区| 欧美日韩成人一区| 一区二区三区视频在线观看| 成人理论电影网| 精品国产三级电影在线观看| 亚洲国产精品久久久久秋霞影院| 成人免费视频免费观看| 久久天堂av综合合色蜜桃网| 日韩成人免费电影| 欧美日韩国产在线观看| 亚洲欧美日韩电影| 99re这里只有精品视频首页| 2023国产一二三区日本精品2022| 日韩高清不卡在线| 欧美日韩国产影片| 亚洲一区在线视频观看| 91尤物视频在线观看| 国产精品高清亚洲| 成人高清伦理免费影院在线观看| 精品久久久久久久人人人人传媒| 首页国产丝袜综合| 欧美日韩一区二区欧美激情| 亚洲一区二区在线观看视频| 91丨porny丨国产入口| 国产精品久久777777| 国产mv日韩mv欧美| 国产精品国产三级国产普通话三级| 国产一区二区三区精品视频| 国产精品美女视频| 丁香天五香天堂综合| 国产欧美精品在线观看| 国产伦精品一区二区三区视频青涩| 日韩视频一区二区三区| 久久国产福利国产秒拍| 久久综合九色综合97_久久久| 美女视频黄a大片欧美| 日韩欧美电影一区| 国产九色精品成人porny| 亚洲国产精品黑人久久久| 不卡视频一二三| 亚洲免费在线播放| 日本精品裸体写真集在线观看| 亚洲一区二区视频| 日韩一区二区三区精品视频| 蜜桃免费网站一区二区三区| www国产成人| 波多野结衣一区二区三区| 亚洲天堂免费看| 在线国产亚洲欧美| 日本在线播放一区二区三区| 欧美mv日韩mv国产网站app| 国产suv精品一区二区883| 中文字幕综合网| 欧美丰满高潮xxxx喷水动漫| 久久成人av少妇免费| 欧美高清在线一区| 欧美在线观看一区二区| 免费观看30秒视频久久| 国产农村妇女毛片精品久久麻豆| 91在线精品秘密一区二区| 图片区小说区区亚洲影院| 久久久久久9999| 欧美亚洲自拍偷拍| 国产做a爰片久久毛片|