SpringMVCのブロッキング、ブロッキングスタック、およびDateタイプへの変換
文書ディレクトリ SpringMVCインターセプタinterceptor ブロッキングスタック SpringMVC対Dateタイプの変換 SpringMVCインターセプタinterceptor Spring MVCのインターセプタ(Interceptor)は、主にユーザ要求をブロックし、対応する処理に使用されるサーブレットのフィルタ(Filter)に似ています. SpringMVCブロッカーとFilterの違い ブロッキングはブロッキングコントローラ のみ可能 Filterは、任意の要求 をブロックすることができる.
HandlerInterceptorを実現することによって、定義ブロック から来る.1、HandlerInterceptorインタフェースを実現する 実装インタフェースpreHandler、postHandler、およびafterCompletionメソッド を書き換える.
preHandlerメソッド10は、コントローラに入る前に実行する、Trueに戻り、コントローラに入りfalseに戻ると、コントローラに入らず、ページは空白のページ に戻る.この方法の3番目のパラメータarg 2は、コントローラに入ってから実行する方法 である.この方法は、上陸制御 によく用いられる.
postHandlerメソッドは、コントローラの実行が完了すると、jspページに入る前に を実行する.この方法の4番目のパラメータは、コントローラで伝達する値を取得し、この値を変更することができ、ジャンプするビューページ名 を取得することができる.は、ログ記録、機密語フィルタ によく用いられる.
afterCompletionメソッドは、jsp実行完了後に を実行する.の3番目のパラメータは、実行中の異常を記録する、異常情報 を取得することができる.異常ログのレコード によく使用される
2、springmvc.xmlでブロッキングを構成し、どのコントローラをブロッキングする必要がありますか? が注釈されると、すべてのコントローラがブロックされ、任意の要求がブロック に進む.の下にあるのは、特定の要求をブロックするブロック構成であり、demoを要求する場合にのみ、このブロック が進む.
3、コントローラ
ブロッキングスタック複数のブロッキングが同時に有効になると、ブロッキングスタック が構成される.実行順は先進後出、中心点はコントローラ である.実行順序とspringmvc.xmlにおける構成順序は に関係する.
実行順序
SpringMVCのDateタイプへの変換1、springmvcでグローバルタイムタイプ変換を使用する.xmlで構成、コードを動かさない joda-timeをインポート.jar
public class DemoInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
System.out.println("preHandler");
System.out.println(arg2);
return true;
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
System.out.println("postHandler");
System.out.println(arg2);
System.out.println(arg3.getViewName());
System.out.println(arg3.getModel().get("model"));
arg3.getModel().put("model", " ");
}
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("afterCompletion");
System.out.println(arg3.getMessage());
}
}
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/demo" />
<bean class="com.mak.interceptor.DemoInterceptor">bean>
mvc:interceptor>
mvc:interceptors>
@Controller
public class DemoController {
@RequestMapping("demo")
public String demo(Model model) {
System.out.println(" demo");
model.addAttribute("model", "model ");
return "/index.jsp";
}
}
ブロッキングスタック
<mvc:interceptors>
<bean class="com.mak.interceptor.DemoInterceptor">bean>
<bean class="com.mak.interceptor.DemoInterceptor2">bean>
mvc:interceptors>
実行順序
preHandler
preHandler2
demo
postHandler2
postHandler
index.jsp
afterCompletion2
afterCompletion
SpringMVCのDateタイプへの変換
<bean id="conversionService"
class="org.springframework.format.support.Formattin gConversionServiceFactoryBean">
<property name="registerDefaultFormatters" value="false" />
<property name="formatters">
<set>
<bean
class="org.springframework.format.number.NumberForm atAnnotationFormatterFactory" />
</set>
</property>
<property name="formatterRegistrars">
<set>
<bean
class="org.springframework.format.datetime.joda.Jod aTimeFormatterRegistrar">
<property name="dateFormatter">
<bean
class="org.springframework.format.datetime.joda.Dat eTimeFormatterFactoryBean">
<property name="pattern" value="yyyy-MM-dd" />
</bean>
</property>
</bean>
</set>
</property>
</bean>