クラス ServletForwardingController
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.ServletForwardingController
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、ApplicationContextAware
、ServletContextAware
、Controller
名前付きサーブレット、つまり URL パスマッピングではなく、web.xml の "servlet-name" に転送する Spring コントローラーの実装。ターゲットサーブレットは、そもそも web.xml に「サーブレットマッピング」を必要としません。「サーブレット」宣言で十分です。
Spring のディスパッチインフラストラクチャを介して既存のサーブレットを呼び出す場合に便利です。たとえば、Spring HandlerInterceptors をそのリクエストに適用する場合などです。これは、サーブレットフィルターをサポートしない最小限のサーブレットコンテナーでも機能します。
例 : web.xml では、すべての "/myservlet" リクエストが Spring ディスパッチャーにマッピングされます。また、カスタム "myServlet" も定義されますが、サーブレットマッピングはありません。
<servlet> <servlet-name>myServlet</servlet-name> <servlet-class>mypackage.TestServlet</servlet-class> </servlet> <servlet> <servlet-name>myDispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>myDispatcher</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping>例 : myDispatcher-servlet.xml は、"/myservlet" をサーブレット (サーブレット名で識別) に転送します。このようなリクエストはすべて、構成された HandlerInterceptor チェーン (たとえば、OpenSessionInViewInterceptor) を経由します。サーブレットの観点からは、すべてが通常どおりに動作します。
<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="/myservlet">myServletForwardingController</prop> </props> </property> </bean> <bean id="myServletForwardingController" class="org.springframework.web.servlet.mvc.ServletForwardingController"> <property name="servletName"><value>myServlet</value></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
コンストラクターのサマリー
方法の概要
修飾子と型メソッド説明protected ModelAndView
handleRequestInternal
(HttpServletRequestEE request, HttpServletResponseEE response) テンプレートメソッド。void
setBeanName
(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。void
setServletName
(StringSE servletName) 転送するサーブレットの名前を設定します。protected boolean
useInclude
(HttpServletRequestEE request, HttpServletResponseEE response) RequestDispatcher のinclude
またはforward
メソッドのどちらを使用するかを決定します。クラス 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
コンストラクターの詳細
ServletForwardingController
public ServletForwardingController()
メソッドの詳細
setServletName
転送するサーブレットの名前、つまり web.xml 内のターゲットサーブレットの "servlet-name" を設定します。デフォルトは、このコントローラーの Bean 名です。
setBeanName
インターフェースからコピーされた説明:BeanNameAware
この Bean を作成した Bean ファクトリで Bean の名前を設定します。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanNameAware
のsetBeanName
- パラメーター:
name
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
handleRequestInternal
@Nullable protected ModelAndView handleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE クラスからコピーされた説明:AbstractController
テンプレートメソッド。サブクラスはこれを実装する必要があります。契約はhandleRequest
と同じです。useInclude
RequestDispatcher のinclude
またはforward
メソッドのどちらを使用するかを決定します。インクルードリクエストを示すインクルード URI 属性がリクエストに含まれているかどうか、およびレスポンスがすでにコミットされているかどうかのチェックを実行します。どちらの場合も、転送が不可能になるため、インクルードが実行されます。
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 戻り値:
- インクルードには
true
、フォワードにはfalse
- 関連事項: