Spring MVCフィルタ-RequestContextFilter


Springではrequestの転送を実現するために多くの方法を使用することができ、ページにコミットされたrequestをControllerに転送することができます.この機能を実現する原理は、LocaleContextHolderとRequestContextHolderを設定することです.
        1. WebでxmlではRequestContextListenerとDispatcherServiceletが構成されています.構成コードは次のとおりです.
        <listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<servlet>
		<servlet-name>spring</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:dispatcher.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>spring</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>

        2. WebでxmlでRequestContextFilterを構成します.これは通常、jsfのようにサードパーティのservletを構成するために使用されます.構成コードは次のようになります.
        <filter>
		<filter-name>Acegi Filter Chain Proxy</filter-name>
		<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
		<init-param>
			<param-name>targetBean</param-name>
			<param-value>acegiFilterChainProxy</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>Acegi Filter Chain Proxy</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>
	
	<filter>
		<filter-name>RequestContextFilter</filter-name>
		<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>RequestContextFilter</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>
ですので、サードパーティのservletを使用しない場合は、DispatcherServiceletを使用するだけでspringを構成できます.サードパーティのservletを使用する場合は、RequestContextFilterを選択できます.
もちろん、jsfの構成は必ずしも上述したようにしなければならないとは限らないが、これは本明細書の重点ではない.