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

spring boot 配置Filter過濾器的方法

 更新時間:2017年03月27日 15:06:23   作者:小布的世界  
本篇文章主要介紹了spring boot 配置Filter過濾器的方法,實例分析了spring boot 配置Filter過濾器的技巧,有興趣的可以了解一下。

Filter 過濾器是web開發(fā)中很重要的一個組件,下面以一個session登陸的例子介紹下spring boot中如何使用Filter

首先要準(zhǔn)備一個實現(xiàn)了Filter的接口的類 SessionFilter:

import org.slf4j.LoggerFactory;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by mazhenhua on 2016/12/27.
 *
 * 過濾器
 */
public class SessionFilter implements Filter {
  private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SessionFilter.class);


  /**
   * 封裝,不需要過濾的list列表
   */
  protected static List<Pattern> patterns = new ArrayList<Pattern>();

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {

  }

  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
    HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
    logger.info("aaaaaaaaaa");
    String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
    if (url.startsWith("/") && url.length() > 1) {
      url = url.substring(1);
    }

    if (isInclude(url)){
      chain.doFilter(httpRequest, httpResponse);
      return;
    } else {
      HttpSession session = httpRequest.getSession();
      if (session.getAttribute("") != null){
        // session存在
        chain.doFilter(httpRequest, httpResponse);
        return;
      } else {
        // session不存在 準(zhǔn)備跳轉(zhuǎn)失敗
        /* RequestDispatcher dispatcher = request.getRequestDispatcher(path);
          dispatcher.forward(request, response);*/
        chain.doFilter(httpRequest, httpResponse);
        return;
      }
    }


  }

  @Override
  public void destroy() {

  }


  /**
   * 是否需要過濾
   * @param url
   * @return
   */
  private boolean isInclude(String url) {
    for (Pattern pattern : patterns) {
      Matcher matcher = pattern.matcher(url);
      if (matcher.matches()) {
        return true;
      }
    }
    return false;
  }

}

實際開發(fā)中往往有很多請求要直接請求進(jìn)來,不需要鑒權(quán)登陸的,所以代碼中過濾掉這種請求的代碼,裝進(jìn)list就好了。

  /**
   * 配置過濾器
   * @return
   */
  @Bean
  public FilterRegistrationBean someFilterRegistration() {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(sessionFilter());
    registration.addUrlPatterns("/*");
    registration.addInitParameter("paramName", "paramValue");
    registration.setName("sessionFilter");
    return registration;
  }

  /**
   * 創(chuàng)建一個bean
   * @return
   */
  @Bean(name = "sessionFilter")
  public Filter sessionFilter() {
    return new SessionFilter();
  }

經(jīng)過上面這倆步的配置,過濾器基本上就可以了。

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

相關(guān)文章

  • springCloud中的Sidecar多語言支持詳解

    springCloud中的Sidecar多語言支持詳解

    這篇文章主要介紹了springCloud中的Sidecar多語言支持詳解,Sidecar是將一組緊密結(jié)合的任務(wù)與主應(yīng)用程序共同放在一臺主機(jī)Host中,但會將它們部署在各自的進(jìn)程或容器中,需要的朋友可以參考下
    2024-01-01
  • Maven基礎(chǔ):錯誤對應(yīng):was cached in the local repository的解決

    Maven基礎(chǔ):錯誤對應(yīng):was cached in the local&nbs

    這篇文章主要介紹了Maven基礎(chǔ):錯誤對應(yīng):was cached in the local repository的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • java必學(xué)必會之equals方法

    java必學(xué)必會之equals方法

    java必學(xué)必會之equals方法,equals方法是 java.lang.Object 類的方法,想要了解更多關(guān)于equals方法的朋友,可以參考下文
    2015-12-12
  • Java實現(xiàn)各種文件類型轉(zhuǎn)換方式(收藏)

    Java實現(xiàn)各種文件類型轉(zhuǎn)換方式(收藏)

    這篇文章主要介紹了Java?各種文件類型轉(zhuǎn)換的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • java  中ThreadLocal實例分析

    java 中ThreadLocal實例分析

    這篇文章主要介紹了java 中ThreadLocal實例分析的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • java實現(xiàn)文件加密解密多種方法

    java實現(xiàn)文件加密解密多種方法

    這篇文章主要給大家介紹了關(guān)于java實現(xiàn)文件加密解密多種方法的相關(guān)資料,?Java支持多種加密解密算法,常用的有DES、AES、RSA等,需要的朋友可以參考下
    2023-07-07
  • Java實現(xiàn)漢字轉(zhuǎn)全拼音的方法總結(jié)

    Java實現(xiàn)漢字轉(zhuǎn)全拼音的方法總結(jié)

    在軟件開發(fā)中,經(jīng)常會遇到需要將漢字轉(zhuǎn)換成拼音的場景,比如在搜索引擎優(yōu)化、數(shù)據(jù)存儲、國際化等方面,Java作為一種廣泛使用的編程語言,提供了多種方法來實現(xiàn)漢字到拼音的轉(zhuǎn)換,本文將詳細(xì)介紹幾種常用的Java漢字轉(zhuǎn)全拼音的方法,并提供具體的代碼示例和步驟
    2024-12-12
  • myeclipse8.5優(yōu)化技巧詳解

    myeclipse8.5優(yōu)化技巧詳解

    本文詳細(xì)介紹了myeclipse8.5優(yōu)化技巧,在這里和大家分享一下,希望對大家有用。
    2017-09-09
  • JavaGUI實現(xiàn)隨機(jī)單詞答題游戲

    JavaGUI實現(xiàn)隨機(jī)單詞答題游戲

    這篇文章主要為大家詳細(xì)介紹了JavaGUI實現(xiàn)隨機(jī)單詞答題游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Spring解決循環(huán)依賴問題的四種方法匯總

    Spring解決循環(huán)依賴問題的四種方法匯總

    這篇文章主要介紹了Spring解決循環(huán)依賴問題的四種方法匯總,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07

最新評論

新绛县| 札达县| 娄底市| 额敏县| 公主岭市| 凌源市| 虎林市| 固安县| 长阳| 保定市| 那曲县| 镇远县| 垦利县| 穆棱市| 马公市| 庆城县| 隆昌县| 翼城县| 上蔡县| 汪清县| 玉溪市| 沂源县| 镇原县| 泰州市| 大兴区| 麻江县| 静乐县| 正宁县| 正蓝旗| 新野县| 呼图壁县| 琼海市| 江口县| 沂水县| 辽阳市| 合阳县| 三明市| 兴海县| 涞源县| 建瓯市| 虞城县|