クラス 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 ModelAndViewhandleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) テンプレートメソッド。voidsetBeanName(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。voidsetServletName(StringSE servletName) 転送するサーブレットの名前を設定します。protected booleanuseInclude(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 - 関連事項: