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

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

?? servletwrappingcontroller.java

?? spring framework 2.5.4源代碼
?? JAVA
字號:
/*
 * Copyright 2002-2007 the original author or authors.
 *
 * 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.springframework.web.servlet.mvc;

import java.util.Enumeration;
import java.util.Properties;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.web.servlet.ModelAndView;

/**
 * Spring Controller implementation that wraps a servlet instance which it manages
 * internally. Such a wrapped servlet is not known outside of this controller;
 * its entire lifecycle is covered here (in contrast to {@link ServletForwardingController}).
 *
 * <p>Useful to invoke an existing servlet via Spring's dispatching infrastructure,
 * for example to apply Spring HandlerInterceptors to its requests.
 *
 * <p>Note that Struts has a special requirement in that it parses <code>web.xml</code>
 * to find its servlet mapping. Therefore, you need to specify the DispatcherServlet's
 * servlet name as "servletName" on this controller, so that Struts finds the
 * DispatcherServlet's mapping (thinking that it refers to the ActionServlet).
 *
 * <p><b>Example:</b> a DispatcherServlet XML context, forwarding "*.do" to the Struts
 * ActionServlet wrapped by a ServletWrappingController. All such requests will go
 * through the configured HandlerInterceptor chain (e.g. an OpenSessionInViewInterceptor).
 * From the Struts point of view, everything will work as usual.
 *
 * <pre>
 * &lt;bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"&gt;
 *   &lt;property name="interceptors"&gt;
 *     &lt;list&gt;
 *       &lt;ref bean="openSessionInViewInterceptor"/&gt;
 *     &lt;/list&gt;
 *   &lt;/property&gt;
 *   &lt;property name="mappings"&gt;
 *     &lt;props&gt;
 *       &lt;prop key="*.do"&gt;strutsWrappingController&lt;/prop&gt;
 *     &lt;/props&gt;
 *   &lt;/property&gt;
 * &lt;/bean&gt;
 *
 * &lt;bean id="strutsWrappingController" class="org.springframework.web.servlet.mvc.ServletWrappingController"&gt;
 *   &lt;property name="servletClass"&gt;
 *     &lt;value&gt;org.apache.struts.action.ActionServlet&lt;/value&gt;
 *   &lt;/property&gt;
 *   &lt;property name="servletName"&gt;
 *     &lt;value&gt;action&lt;/value&gt;
 *   &lt;/property&gt;
 *   &lt;property name="initParameters"&gt;
 *     &lt;props&gt;
 *       &lt;prop key="config"&gt;/WEB-INF/struts-config.xml&lt;/prop&gt;
 *     &lt;/props&gt;
 *   &lt;/property&gt;
 * &lt;/bean&gt;</pre>
 *
 * @author Juergen Hoeller
 * @since 1.1.1
 * @see ServletForwardingController
 * @see org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor
 * @see org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
 * @see org.springframework.orm.jdo.support.OpenPersistenceManagerInViewInterceptor
 * @see org.springframework.orm.jdo.support.OpenPersistenceManagerInViewFilter
 */
public class ServletWrappingController extends AbstractController
    implements BeanNameAware, InitializingBean, DisposableBean {

	private Class servletClass;

	private String servletName;

	private Properties initParameters = new Properties();

	private String beanName;

	private Servlet servletInstance;


	/**
	 * Set the class of the servlet to wrap.
	 * Needs to implement <code>javax.servlet.Servlet</code>.
	 * @see javax.servlet.Servlet
	 */
	public void setServletClass(Class servletClass) {
		this.servletClass = servletClass;
	}

	/**
	 * Set the name of the servlet to wrap.
	 * Default is the bean name of this controller.
	 */
	public void setServletName(String servletName) {
		this.servletName = servletName;
	}

	/**
	 * Specify init parameters for the servlet to wrap,
	 * as name-value pairs.
	 */
	public void setInitParameters(Properties initParameters) {
		this.initParameters = initParameters;
	}

	public void setBeanName(String name) {
		this.beanName = name;
	}


	/**
	 * Initialize the wrapped Servlet instance.
	 * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
	 */
	public void afterPropertiesSet() throws Exception {
		if (this.servletClass == null) {
			throw new IllegalArgumentException("servletClass is required");
		}
		if (!Servlet.class.isAssignableFrom(this.servletClass)) {
			throw new IllegalArgumentException("servletClass [" + this.servletClass.getName() +
			    "] needs to implement interface [javax.servlet.Servlet]");
		}
		if (this.servletName == null) {
			this.servletName = this.beanName;
		}
		this.servletInstance = (Servlet) this.servletClass.newInstance();
		this.servletInstance.init(new DelegatingServletConfig());
	}


	/**
	 * Invoke the the wrapped Servlet instance.
	 * @see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
	 */
	protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
	    throws Exception {

		this.servletInstance.service(request, response);
		return null;
	}


	/**
	 * Destroy the wrapped Servlet instance.
	 * @see javax.servlet.Servlet#destroy()
	 */
	public void destroy() {
		this.servletInstance.destroy();
	}


	/**
	 * Internal implementation of the ServletConfig interface, to be passed
	 * to the wrapped servlet. Delegates to ServletWrappingController fields
	 * and methods to provide init parameters and other environment info.
	 */
	private class DelegatingServletConfig implements ServletConfig {

		public String getServletName() {
			return servletName;
		}

		public ServletContext getServletContext() {
			return ServletWrappingController.this.getServletContext();
		}

		public String getInitParameter(String paramName) {
			return initParameters.getProperty(paramName);
		}

		public Enumeration getInitParameterNames() {
			return initParameters.keys();
		}
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产丝袜在线播放| 三级久久三级久久久| 中文字幕视频一区| 肉色丝袜一区二区| 久久亚洲一区二区三区明星换脸| 1区2区3区国产精品| 久久国产生活片100| 色婷婷综合中文久久一本| 欧美一级高清片| 99久久伊人网影院| 欧美精品一区二区在线观看| 亚洲精品久久久蜜桃| 国产成人精品免费一区二区| 日韩三级视频在线看| 亚洲不卡一区二区三区| av一区二区三区| 国产精品天美传媒沈樵| 狂野欧美性猛交blacked| 精品视频1区2区| 亚洲人成在线观看一区二区| 国产盗摄视频一区二区三区| 日韩欧美专区在线| 蜜桃91丨九色丨蝌蚪91桃色| 欧美精品v日韩精品v韩国精品v| 欧美经典一区二区| 韩国视频一区二区| 精品欧美久久久| 日本色综合中文字幕| 这里只有精品电影| 午夜私人影院久久久久| 欧美人与z0zoxxxx视频| 国产精品99久久久久久久vr| 日韩欧美国产成人一区二区| 秋霞av亚洲一区二区三| 日韩午夜激情电影| 国内精品伊人久久久久av一坑| 蜜桃一区二区三区在线观看| 日韩欧美在线一区二区三区| 麻豆精品新av中文字幕| 精品女同一区二区| 国产v综合v亚洲欧| 国产精品国产三级国产aⅴ中文 | 国产日韩欧美精品综合| 极品少妇一区二区| 久久这里只精品最新地址| 国产成人在线电影| 亚洲国产高清在线| 一本大道久久a久久精品综合| 一区二区在线观看不卡| 欧美日韩中字一区| 韩国毛片一区二区三区| 成人免费在线视频观看| 一本到高清视频免费精品| 亚洲一区免费在线观看| 欧美一区二区视频在线观看2020 | 国产性做久久久久久| 成人精品高清在线| 一区二区三区在线观看网站| 色美美综合视频| 日本中文一区二区三区| 国产欧美精品在线观看| 日本韩国欧美国产| 日本va欧美va瓶| 国产精品久久久久久妇女6080| 91黄色激情网站| 国产在线精品一区二区三区不卡| 亚洲欧洲精品一区二区三区不卡| 色天使久久综合网天天| 日本亚洲欧美天堂免费| 中文字幕不卡在线| 欧美精品粉嫩高潮一区二区| 成人a级免费电影| 日本三级韩国三级欧美三级| 亚洲丝袜另类动漫二区| 精品国产乱码久久久久久夜甘婷婷 | 精品在线亚洲视频| 亚洲日本韩国一区| www国产成人| 欧美亚洲国产一区在线观看网站| 日韩三级伦理片妻子的秘密按摩| 国产精品1区2区| 视频在线观看91| 亚洲欧美激情一区二区| 精品国精品国产尤物美女| 亚洲欧洲中文日韩久久av乱码| 91精品国产色综合久久ai换脸| 麻豆精品久久精品色综合| 国产精品成人免费在线| 欧美一级理论性理论a| 91小视频在线免费看| 久久精品夜夜夜夜久久| 制服丝袜亚洲播放| 欧美午夜在线观看| 在线成人午夜影院| 一本大道av一区二区在线播放| 精品久久久久久久久久久院品网| 色呦呦网站一区| 懂色中文一区二区在线播放| 精品一区精品二区高清| 五月天亚洲婷婷| 一区二区三区国产| 18涩涩午夜精品.www| www.在线成人| 成人午夜免费电影| 国产成人av电影在线观看| 六月丁香婷婷色狠狠久久| 亚洲一区中文在线| 1000精品久久久久久久久| 国产视频一区二区三区在线观看 | 日韩一级片网址| 欧美精品xxxxbbbb| 麻豆精品视频在线观看免费| 琪琪久久久久日韩精品| 秋霞国产午夜精品免费视频| 亚洲一区欧美一区| 亚洲国产一区二区三区青草影视| 国产精品美女www爽爽爽| 国产片一区二区| 国产福利一区二区| 国产精品12区| 成人美女在线视频| 91视频精品在这里| 欧亚洲嫩模精品一区三区| 在线精品观看国产| 亚洲一区二区在线播放相泽| 亚洲综合网站在线观看| 性久久久久久久| 蜜臀av一级做a爰片久久| 蜜桃视频一区二区| a亚洲天堂av| 欧洲在线/亚洲| 日韩中文字幕亚洲一区二区va在线 | 精品一区二区三区在线视频| 国产一区二区不卡在线| 成人夜色视频网站在线观看| aaa欧美色吧激情视频| 亚洲成人福利片| 精品亚洲成a人| av资源网一区| 91福利在线看| 日韩一级免费观看| 国产午夜一区二区三区| 亚洲免费成人av| 午夜精品久久久久久久久久| 久久精品国产网站| 成人手机电影网| 欧美人妇做爰xxxⅹ性高电影| 日韩午夜精品视频| 亚洲欧美激情插| 另类专区欧美蜜桃臀第一页| jlzzjlzz亚洲日本少妇| 色妹子一区二区| 欧美大黄免费观看| 亚洲日本在线天堂| 日本sm残虐另类| 不卡一区中文字幕| 日韩一区二区精品葵司在线| 欧美国产视频在线| 视频一区国产视频| 波多野结衣中文一区| 欧美日韩电影在线| 国产精品久久久久久户外露出 | 成人18视频日本| 在线成人小视频| 国产精品视频在线看| 五月婷婷另类国产| 色综合久久中文字幕| 久久影院视频免费| 欧美日韩精品一区二区三区蜜桃| 26uuu色噜噜精品一区| 一区二区三区四区精品在线视频 | 久久er精品视频| 99久久婷婷国产| 欧美一级精品大片| 亚洲另类春色国产| 国产成人在线看| 日韩欧美激情四射| 亚洲成av人片在www色猫咪| a美女胸又www黄视频久久| 欧美激情一区二区在线| 精品一区二区三区在线播放视频| 欧美日产国产精品| 亚洲一区中文在线| 欧美性受极品xxxx喷水| 国产精品久久久久久久久晋中 | 国产午夜亚洲精品午夜鲁丝片| 首页亚洲欧美制服丝腿| 欧美熟乱第一页| 亚洲另类在线视频| 色综合久久中文字幕| 自拍偷在线精品自拍偷无码专区 | 91理论电影在线观看| 国产夜色精品一区二区av| 免费观看一级特黄欧美大片| 亚洲精品视频一区二区| 99精品视频免费在线观看| 中文字幕av资源一区| 国产iv一区二区三区| 国产欧美一区二区三区在线老狼| 国内精品久久久久影院薰衣草|