91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC 如何實現一個攔截器功能

發布時間:2020-11-10 17:11:11 來源:億速云 閱讀:174 作者:Leah 欄目:編程語言

本篇文章為大家展示了SpringMVC 如何實現一個攔截器功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

攔截器的實現

1、編寫攔截器類實現HandlerInterceptor接口;

2、將攔截器注冊進springmvc框架中;

3、配置攔截器的攔截規則;

其他實現方法

WebRequestInterceptor接口:

與上一個的區別是參數區別和prehandle的方法沒有返回值。沒有上一個功能全,因此常用第一個。

攔截器的使用場景

處理所有請求共性問題:

1、亂碼問題:用request,response參數去設置編碼;

2、解決權限驗證問題(是否登陸,取session對象查看);

攔截器與過濾器的區別

1、攔截器Interceptor依賴于框架容器,基于反射機制,只過濾請求;

2、過濾器Filter依賴于Servlet容器,基于回調函數,過濾范圍大;

例子

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.springframework.web.servlet.HandlerInterceptor; 
import org.springframework.web.servlet.ModelAndView; 
 
public class TestInterceptor implements HandlerInterceptor { 
 
  /** 
   * 返回值說明是否需要將當前的請求攔截下來 
   * false:請求將被終止 
   * true:請求會被繼續運行 
   * Object handler 表示的是被攔截的請求的目標對象 
   */ 
  @Override 
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 
      throws Exception { 
    System.out.println("TestInterceptor.preHandle()"); 
    return true; 
  } 
  /** 
   * modelAndView: 
   *   可以通過modelAndView參數改變顯示的視圖,或者修改發往視圖的方法 
   */ 
  @Override 
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, 
      ModelAndView modelAndView) throws Exception { 
    System.out.println("TestInterceptor.postHandle()"); 
     
  } 
  /** 
   * 在視圖加載完畢之后調用 
   * 常用于作于資源的銷毀,流等 
   * 類似于析構函數 
   */ 
  @Override 
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) 
      throws Exception { 
    System.out.println("TestInterceptor.afterCompletion()");   
  } 
} 

注冊方式:

在springmvc的Dispatcherservlet配置文件中加入攔截器代碼;

<!-- 注冊攔截器 --> 
 <mvc:interceptors> 
  <!-- 單個攔截器:設置具體的攔截路徑 --> 
  <mvc:interceptor> 
    <mvc:mapping path="/courses/view2/*"/> 
    <bean class="com.cc.mvcdemo.interceptor.TestInterceptor"></bean> 
  </mvc:interceptor> 
   
  <!-- 第二種方式:攔截經過當前Dispatcherservlet的所有請求 --> 
  <bean class="com.cc.mvcdemo.interceptor.TestInterceptorTwo"></bean> 
   
 </mvc:interceptors> 

上述內容就是SpringMVC 如何實現一個攔截器功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三穗县| 左权县| 万州区| 安丘市| 定结县| 浦县| 永清县| 滦南县| 若尔盖县| 双桥区| 治多县| 霞浦县| 兰州市| 章丘市| 谢通门县| 阿拉善右旗| 华容县| 墨脱县| 台南市| 凌源市| 东至县| 溧水县| 渑池县| 韶关市| 安仁县| 句容市| 金乡县| 金门县| 阿拉善左旗| 宁城县| 呼图壁县| 金昌市| 郴州市| 宿州市| 阿克苏市| 巧家县| 逊克县| 旺苍县| 桦川县| 蕉岭县| 克拉玛依市|