日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用

發布時間:2023/12/4 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在開發一個網站時可能有這樣的需求:某些頁面只希望幾個特定的用戶瀏覽。對于這樣的訪問權限控制,應該如何實現呢?攔截器就可以實現上述需求。在 Struts 2 框架中,攔截器是其重要的組成部分,Spring MVC 框架也提供了攔截器功能。

Spring MVC 的攔截器(Interceptor)與 Java Servlet 的過濾器(Filter)類似,它主要用于攔截用戶的請求并做相應的處理,通常應用在權限驗證、記錄請求信息的日志、判斷用戶是否登錄等功能上。

攔截器的定義

在 Spring MVC 框架中定義一個攔截器需要對攔截器進行定義和配置,定義一個攔截器可以通過兩種方式:一種是通過實現 HandlerInterceptor 接口或繼承 HandlerInterceptor 接口的實現類來定義;另一種是通過實現 WebRequestInterceptor 接口或繼承 WebRequestInterceptor 接口的實現類來定義。

本節以實現 HandlerInterceptor 接口的定義方式為例講解自定義攔截器的使用方法。示例代碼如下:

package interceptor;

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 {

@Override

public void afterCompletion(HttpServletRequest request,

HttpServletResponse response, Object handler, Exception ex)

throws Exception {

System.out.println("afterCompletion方法在控制器的處理請求方法執行完成后執行,即視圖渲染結束之后執行");

}

@Override

public void postHandle(HttpServletRequest request,

HttpServletResponse response, Object handler,

ModelAndView modelAndView) throws Exception {

System.out.println("postHandle方法在控制器的處理請求方法調用之后,解析視圖之前執行");

}

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

System.out.println("preHandle方法在控制器的處理請求方法調用之后,解析視圖之前執行");

return false;

}

}

在上述攔截器的定義中實現了 HandlerInterceptor 接口,并實現了接口中的 3 個方法。有關這 3 個方法的描述如下。

preHandle 方法:該方法在控制器的處理請求方法前執行,其返回值表示是否中斷后續操作,返回 true 表示繼續向下執行,返回 false 表示中斷后續操作。

postHandle 方法:該方法在控制器的處理請求方法調用之后、解析視圖之前執行,可以通過此方法對請求域中的模型和視圖做進一步的修改。

afterCompletion 方法:該方法在控制器的處理請求方法執行完成后執行,即視圖渲染結束后執行,可以通過此方法實現一些資源清理、記錄日志信息等工作。

攔截器的配置

讓自定義的攔截器生效需要在 Spring MVC 的配置文件中進行配置,配置示例代碼如下:

在上述示例代碼中, 元素用于配置一組攔截器,其子元素 定義的是全局攔截器,即攔截所有的請求。

元素中定義的是指定路徑的攔截器,其子元素 用于配置攔截器作用的路徑,該路徑在其屬性 path 中定義。

如上述示例代碼中,path 的屬性值“/**”表示攔截所有路徑,“/gotoTest”表示攔截所有以“/gotoTest”結尾的路徑。如果在請求路徑中包含不需要攔截的內容,可以通過 子元素進行配置。

需要注意的是, 元素的子元素必須按照 、、 的順序配置。

總結

以上是生活随笔為你收集整理的java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。