麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

spring MVC攔截器

2019-11-14 20:51:34
字體:
供稿:網(wǎng)友
sPRing MVC攔截器

Spring為我們提供了:

org.springframework.web.servlet.HandlerInterceptor接口,

org.springframework.web.servlet.handler.HandlerInterceptorAdapter適配器,

實現(xiàn)這個接口或繼承此類,可以非常方便的實現(xiàn)自己的攔截器。

例如:

public class HelloWorldInterceptor implements HandlerInterceptor  {  @Override  public boolean preHandle(HttpServletRequest request,          HttpServletResponse response, Object handler) throws Exception {            System.out.println("Pre-handle");            return false;  }    @Override  public void postHandle(HttpServletRequest request,          HttpServletResponse response, Object handler,          ModelAndView modelAndView) throws Exception {      System.out.println("Post-handle");  }    @Override  public void afterCompletion(HttpServletRequest request,          HttpServletResponse response, Object handler, Exception ex)          throws Exception {      System.out.println("After completion handle");  }  

有以下三個方法:

Action之前執(zhí)行:

public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler);生成視圖之前執(zhí)行

public void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView);最后執(zhí)行,可用于釋放資源

public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)分別實現(xiàn)預(yù)處理、后處理(調(diào)用了Service并返回ModelAndView,但未進行頁面渲染)、返回處理(已經(jīng)渲染了頁面)

在preHandle中,可以進行編碼、安全控制等處理;

在postHandle中,有機會修改ModelAndView;

在afterCompletion中,可以根據(jù)ex是否為null判斷是否發(fā)生了異常,進行日志記錄。

參數(shù)中的Object handler是下一個攔截器。

在spring MVC的配置文件中配置有三種方法:

方案一,(近似)總攔截器,攔截所有url

  如果是REST風格的URL,靜態(tài)資源也會被攔截。

<mvc:interceptors>      <bean class="com.app.mvc.MyInteceptor" />  </mvc:interceptors>  

方案二, 攔截匹配的URL。

  如果是REST風格的URL,靜態(tài)資源也會被攔截。

<mvc:interceptors >      <mvc:interceptor>            <mvc:mapping path="/user/*" /> <!-- /user/*  -->            <bean class="com.mvc.MyInteceptor"></bean>        </mvc:interceptor>    </mvc:interceptors>    

方案三,HandlerMappint上的攔截器。

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">        <property name="interceptors">            <list>                <bean class="com.mvc.MyInteceptor"></bean>           </list>        </property>       </bean>  

如果使用了<mvc:annotation-driven />,它會自動注冊DefaultAnnotationHandlerMapping 與AnnotationMethodHandlerAdapter 這兩個bean,所以就沒有機會再給它注入interceptors屬性,就無法指定攔截器。

我們可以通過人工配置上面的兩個Bean,不使用<mvc:annotation-driven />,就可以給interceptors屬性注入攔截器了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品久久av | 免费一级欧美在线观看视频 | 777zyz色资源站在线观看 | av在线一区二区三区四区 | 国产亚洲区 | av噜噜在线 | 久久亚洲视频网 | 亚洲婷婷日日综合婷婷噜噜噜 | 欧美日本色 | 久久国产成人午夜av浪潮 | www.精品久久 | 精品国产一区二区三区久久久狼牙 | 久草在线视频精品 | 久久国产精品久久久久久电车 | 免费高潮在线国 | 少妇一级淫片免费放正片 | 极品大长腿啪啪高潮露脸 | 国产在线精品91 | 亚洲人成网站免费播放 | 失禁高潮抽搐喷水h | 成人免费精品视频 | 国产999视频在线观看 | 国产羞羞视频在线免费观看 | 护士hd欧美free性xxxx | 一级黄色片在线看 | 久久精品国产精品亚洲 | 久久91精品国产91久久yfo | 在线高清中文字幕 | 成人毛片100免费观看 | 91热久久免费频精品黑人99 | xxx日本视频| 国产精品久久久久久久午夜片 | 国产精品剧情一区二区三区 | 亚洲第五色综合网 | 国产在线精品一区二区不卡 | 91精品国产九九九久久久亚洲 | xp123精品视频| 1314av| 99视频有精品 | 国产一级淫 | 久久午夜国产 |