クラス ServletWrappingController
java.lang.ObjectSE
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.support.WebContentGenerator
org.springframework.web.servlet.mvc.AbstractController
org.springframework.web.servlet.mvc.ServletWrappingController
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、ServletContextAware
、Controller
public class ServletWrappingController
extends AbstractController
implements BeanNameAware, InitializingBean, DisposableBean
内部で管理するサーブレットインスタンスをラップする Spring コントローラーの実装。このようなラップされたサーブレットは、このコントローラーの外では認識されません。そのライフサイクル全体がここでカバーされています (
ServletForwardingController
とは対照的です)。Spring のディスパッチインフラストラクチャを介して既存のサーブレットを呼び出す場合、たとえば、Spring HandlerInterceptors をそのリクエストに適用する場合に便利です。
Struts には、サーブレットマッピングを見つけるために web.xml
を解析するという特別な要件があることに注意してください。このコントローラーで DispatcherServlet のサーブレット名を "servletName" として指定する必要があります。そうすることで、Struts は DispatcherServlet のマッピング (ActionServlet を参照するものとみなして) を見つけます。
例 : DispatcherServlet XML コンテキストは、"*.do" を ServletWrappingController でラップされた Struts ActionServlet に転送します。このようなリクエストはすべて、構成された HandlerInterceptor チェーン (たとえば、OpenSessionInViewInterceptor) を通過します。Struts の観点からは、すべてが通常どおりに機能します。
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="interceptors"> <list> <ref bean="openSessionInViewInterceptor"/> </list> </property> <property name="mappings"> <props> <prop key="*.do">strutsWrappingController</prop> </props> </property> </bean> <bean id="strutsWrappingController" class="org.springframework.web.servlet.mvc.ServletWrappingController"> <property name="servletClass"> <value>org.apache.struts.action.ActionServlet</value> </property> <property name="servletName"> <value>action</value> </property> <property name="initParameters"> <props> <prop key="config">/WEB-INF/struts-config.xml</prop> </props> </property> </bean>
- 導入:
- 1.1.1
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドサマリー
クラス org.springframework.web.servlet.support.WebContentGenerator から継承されたフィールド
HEADER_CACHE_CONTROL, METHOD_GET, METHOD_HEAD, METHOD_POST
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
コンストラクターのサマリー
方法の概要
修飾子と型メソッド説明void
ラップされたサーブレットインスタンスを初期化します。void
destroy()
ラップされたサーブレットインスタンスを破棄します。protected ModelAndView
handleRequestInternal
(HttpServletRequestEE request, HttpServletResponseEE response) ラップされたサーブレットインスタンスを呼び出します。void
setBeanName
(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。void
setInitParameters
(PropertiesSE initParameters) サーブレットがラップする init パラメーターを名前と値のペアとして指定します。void
setServletClass
(ClassSE<? extends ServletEE> servletClass) ラップするサーブレットのクラスを設定します。void
setServletName
(StringSE servletName) ラップするサーブレットの名前を設定します。クラス org.springframework.web.servlet.mvc.AbstractController から継承されたメソッド
handleRequest, isSynchronizeOnSession, setSynchronizeOnSession
クラス org.springframework.web.servlet.support.WebContentGenerator から継承されたメソッド
applyCacheControl, applyCacheSeconds, checkAndPrepare, checkRequest, getAllowHeader, getCacheControl, getCacheSeconds, getSupportedMethods, getVaryByRequestHeaders, isRequireSession, prepareResponse, setCacheControl, setCacheSeconds, setRequireSession, setSupportedMethods, setVaryByRequestHeaders
クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
コンストラクターの詳細
ServletWrappingController
public ServletWrappingController()
メソッドの詳細
setServletClass
ラップするサーブレットのクラスを設定します。jakarta.servlet.Servlet
を実装する必要があります。- 関連事項:
setServletName
ラップするサーブレットの名前を設定します。デフォルトは、このコントローラーの Bean 名です。setInitParameters
サーブレットがラップする init パラメーターを名前と値のペアとして指定します。setBeanName
インターフェースからコピーされた説明:BeanNameAware
この Bean を作成した Bean ファクトリで Bean の名前を設定します。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanNameAware
のsetBeanName
- パラメーター:
name
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
afterPropertiesSet
ラップされたサーブレットインスタンスを初期化します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- 例外:
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合- 関連事項:
handleRequestInternal
@Nullable protected ModelAndView handleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE ラップされたサーブレットインスタンスを呼び出します。destroy
public void destroy()ラップされたサーブレットインスタンスを破棄します。- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 関連事項: