最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot使用過濾器Filter過程解析

 更新時間:2020年01月22日 15:55:44   作者:panchanggui  
這篇文章主要介紹了Spring Boot使用過濾器Filter過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了Spring Boot使用過濾器Filter過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

首先我們說說什么是過濾器,過濾器是對數(shù)據(jù)進行過濾,預處理過程,當我們訪問網(wǎng)站時,有時候會發(fā)布一些敏感信息,發(fā)完以后有的會用*替代,還有就是登陸權(quán)限控制等,一個資源,沒有經(jīng)過授權(quán),肯定是不能讓用戶隨便訪問的,這個時候,也可以用到過濾器。過濾器的功能還有很多,例如實現(xiàn)URL級別的權(quán)限控制、壓縮響應(yīng)信息、編碼格式等等。

過濾器依賴servlet容器。在實現(xiàn)上基于函數(shù)回調(diào),可以對幾乎所有請求進行過濾。下面簡單的說說Spring Boot里面如何增加過濾器。

1、引入spring-boot-starter-web

在pom.xml 中引入spring-boot-starter-web包。

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

2、建立過濾器程序

@Order(1):表示過濾器的順序,假設(shè)我們有多個過濾器,你如何確定過濾器的執(zhí)行順序?這個注解就是規(guī)定過濾器的順序。

@WebFilter:表示這個class是過濾器。

里面的參數(shù),filterName 為過濾器名字,urlPatterns 為過濾器的范圍,initParams 為過濾器初始化參數(shù)。

過濾器里面的三個方法

init : filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次。

doFilter : 主要的業(yè)務(wù)代碼編寫方法,可以多次重復調(diào)用

destroy : 在銷毀Filter時自動調(diào)用(程序關(guān)閉或者主動銷毀Filter)。

@Order(1)
@WebFilter(filterName = "piceaFilter", urlPatterns = "/*" , initParams = {
    @WebInitParam(name = "URL", value = "http://localhost:8080")})
public class PiceaFilter implements Filter {

  private String url;
  /**
   * 可以初始化Filter在web.xml里面配置的初始化參數(shù)
   * filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次。
   * @param filterConfig
   * @throws ServletException
   */
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
    this.url = filterConfig.getInitParameter("URL");
    System.out.println("我是過濾器的初始化方法!URL=" + this.url + ",生活開始.........");
  }

  /**
   * 主要的業(yè)務(wù)代碼編寫方法
   * @param servletRequest
   * @param servletResponse
   * @param filterChain
   * @throws IOException
   * @throws ServletException
   */
  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    System.out.println("我是過濾器的執(zhí)行方法,客戶端向Servlet發(fā)送的請求被我攔截到了");
    filterChain.doFilter(servletRequest, servletResponse);
    System.out.println("我是過濾器的執(zhí)行方法,Servlet向客戶端發(fā)送的響應(yīng)被我攔截到了");
  }

  /**
   * 在銷毀Filter時自動調(diào)用。
   */
  @Override
  public void destroy() {
    System.out.println("我是過濾器的被銷毀時調(diào)用的方法!,活不下去了................" );
  }
}

3、建立Contoller類

這個類比較簡單,不做特別說明

@RestController
public class PiceaContoller {

  @RequestMapping("/query")
  public void asyncTask() throws Exception {
    System.out.println("我是控制類里面的方法,我正在思考...............");
  }
}

4、啟動類中增加注解,自動注冊Filter

@ServletComponentScan :在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通過@WebServlet、@WebFilter、@WebListener注解自動注冊,無需其他代碼。

@SpringBootApplication
@ServletComponentScan
public class SpringBootFiFilterApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringBootFiFilterApplication.class, args);
  }

}

5、測試結(jié)果

好吧,又到了看療效的時候了。

在瀏覽中輸入:http://localhost:2001/query

這個時候控制臺的輸入為如下圖片。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ReentrantLock實現(xiàn)原理詳解

    ReentrantLock實現(xiàn)原理詳解

    本文將對ReentrantLock實現(xiàn)原理進行詳細的介紹,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • SpringBoot中application.yml配置文件的寫法

    SpringBoot中application.yml配置文件的寫法

    這篇文章主要介紹了SpringBoot中application.yml配置文件的寫法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Mybatis Plus插件三種方式的逆向工程的使用

    Mybatis Plus插件三種方式的逆向工程的使用

    這篇文章主要介紹了Mybatis Plus插件三種方式的逆向工程的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Java操作Excel文件解析與讀寫方法詳解

    Java操作Excel文件解析與讀寫方法詳解

    相信現(xiàn)在很多搞后端的同學大部分做的都是后臺管理系統(tǒng),那么管理系統(tǒng)就肯定免不了Excel的導出導入功能,下面這篇文章主要給大家介紹了關(guān)于Java簡單使用EasyExcel操作讀寫與解析的步驟與要點,需要的朋友可以參考下
    2022-11-11
  • java 完全二叉樹的構(gòu)建與四種遍歷方法示例

    java 完全二叉樹的構(gòu)建與四種遍歷方法示例

    本篇文章主要介紹了java 完全二叉樹的構(gòu)建與四種遍歷方法示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 關(guān)于mybatis使用${}時sql注入的問題

    關(guān)于mybatis使用${}時sql注入的問題

    這篇文章主要介紹了關(guān)于mybatis使用${}時sql注入的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 淺談java中math類中三種取整函數(shù)的區(qū)別

    淺談java中math類中三種取整函數(shù)的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java中math類中三種取整函數(shù)的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • resty upload無需依賴的文件上傳與下載

    resty upload無需依賴的文件上傳與下載

    這篇文章主要為大家介紹了resty upload中無需依賴的文件上傳與下載過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步,早日升職加薪
    2022-03-03
  • 詳解MyBatis模糊查詢LIKE的三種方式

    詳解MyBatis模糊查詢LIKE的三種方式

    模糊查詢也是數(shù)據(jù)庫SQL中使用頻率很高的SQL語句,這篇文章主要介紹了詳解MyBatis模糊查詢LIKE的三種方式,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • java實現(xiàn)微信App支付服務(wù)端

    java實現(xiàn)微信App支付服務(wù)端

    這篇文章主要為大家詳細介紹了java實現(xiàn)微信App支付服務(wù)端,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10

最新評論

恭城| 醴陵市| 泾阳县| 恭城| 湾仔区| 固镇县| 武鸣县| 龙南县| 浦东新区| 马鞍山市| 九江县| 京山县| 教育| 财经| 银川市| 南城县| 石景山区| 德江县| 南汇区| 淮滨县| 乐至县| 昌图县| 威远县| 五台县| 镇江市| 电白县| 武鸣县| 平顶山市| 七台河市| 萨迦县| 和田县| 波密县| 兴文县| 梁河县| 海阳市| 汝阳县| 冷水江市| 荔波县| 闽清县| 连南| 绥德县|