springboot-添加攔截器

在我們日常開發的過程中,經常會遇到這一類問題,要求需要用戶登錄以后才能夠訪問其他的內容,否則不行,那么解決這一問題最好的辦法就是運用攔截器,攔截器可以和多種處理請求的web框架結合,今天所講的就是與springboot的結合,那么代碼搞起來,請往下看:

攔截器的實現其實主要有兩部分組成;1 是編寫自定義的攔截器,2是將自定義的攔截器加入的web中就可以工作了

先看寫的自定義額攔截器

package com.gateway.Interceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import com.gateway.entity.User;@Component//很關鍵,必不可少,少了就加載不進去webMvcConfig
public  class gatewayInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {System.out.println("進入controller層之前調用攔截器的方法");String path = request.getContextPath();String URI=request.getRequestURI();System.out.println(URI);String basePath = request.getScheme()+"://" +request.getServerName()+":" +request.getServerPort()+path+"/" ; User user=(User)request.getSession().getAttribute("user");if(user==null&&!URI.equals("/user/login")){//這里需要注意將一個活的頁面留出來,就是不滿足條件的都去哪,將那個路徑給留出來,否則會陷入死循環response.sendRedirect(basePath +"user/login");return false;}//這里我將Cookie省略了,若你感興趣可以自己試一試,注意cookie中不能存對象哦return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("controller層方法執行完畢之后視圖渲染之前調用的攔截器的方法");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {System.out.println("進行視圖渲染之后調用的攔截器的方法,用于資源清理");}}

?

下面將自定義的攔截器加入到web中

package com.gateway.website.interceptor;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import javax.annotation.Resource;/*** 向mvc中添加自定義組件*/
@Component
public class WebMvcConfig extends WebMvcConfigurerAdapter {@Resourceprivate BaseInterceptor baseInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(baseInterceptor);//這里也可以使用構造方法,new一個}/*** 添加靜態資源文件,外部可以直接訪問地址* @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {super.addResourceHandlers(registry);}
}

這樣一個簡單的攔截器就問世了!

轉載于:https://www.cnblogs.com/1a2b/p/9023639.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389675.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1945. 字符串轉化后的各位數字之和

1945. 字符串轉化后的各位數字之和 給你一個由小寫字母組成的字符串 s ,以及一個整數 k 。 首先,用字母在字母表中的位置替換該字母,將 s 轉化 為一個整數(也就是,‘a’ 用 1 替換,‘b’ 用 2 替換&#…

墨刀原型制作 位置選擇_原型制作不再是可選的

墨刀原型制作 位置選擇The ‘role’ of a designer has been a topic of discussion several many years now. In the past decade, the role of a Designer got split into several different roles like — Graphic Designer, User Experience Designer, Interaction Designe…

eclipse maven 構建簡單springmvc項目

環境&#xff1a;eclipse Version: Oxygen.3a Release (4.7.3a) 創建maven Project項目&#xff0c;目錄結構 修改工程的相關編譯屬性 修改pop.xml&#xff0c;引入springmvc相關包 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.…

1859. 將句子排序

1859. 將句子排序 一個 句子 指的是一個序列的單詞用單個空格連接起來&#xff0c;且開頭和結尾沒有任何空格。每個單詞都只包含小寫或大寫英文字母。 我們可以給一個句子添加 從 1 開始的單詞位置索引 &#xff0c;并且將句子中所有單詞 打亂順序 。 比方說&#xff0c;句子…

醫動力Android基于CC組件化框架的探索與實踐

為什么要組件化? 醫動力App作為公司的核心產品已經有多年歷史了,隨著版本的不斷迭代,功能越來越多,代碼量越來越大,不可避免的會產生一下問題: 業務越來越復雜&#xff0c;維護成本高;業務耦合度高&#xff0c;代碼越來越臃腫&#xff0c;團隊內部多人協作開發困難;編譯時間長…

使用協同過濾推薦電影

ALSO, ARE RECOMMENDER SYSTEMS INFLUENCING OUR TASTE??此外&#xff0c;推薦系統是否影響我們的口味&#xff1f; An excerpt on creating a movie recommender system similar to the OTT platforms.有關創建類似于OTT平臺的電影推薦系統的摘錄。 INTRODUCTION介紹 For…

423. 從英文中重建數字

423. 從英文中重建數字 給你一個字符串 s &#xff0c;其中包含字母順序打亂的用英文單詞表示的若干數字&#xff08;0-9&#xff09;。按 升序 返回原始的數字。 例 1&#xff1a;輸入&#xff1a;s "owoztneoer" 輸出&#xff1a;"012"示例 2&#xf…

錦欣生殖獲戰略投資,華平、信銀領投,紅杉、藥明康德跟投

9月16日消息&#xff0c;錦欣生殖近日宣布已完成新一輪的戰略投資&#xff0c;本輪融資由原戰略股東華平投資及新引入的中信銀行旗下信銀投資領投&#xff0c;紅杉資本中國基金、藥明康德等跟投。完成本輪融資后&#xff0c;華平投資及信銀投資分別成為錦欣生殖的第二及第三大股…

數據暑假實習面試_面試數據科學實習如何準備

數據暑假實習面試Unfortunately, on this occasion, your application was not successful, and we have appointed an applicant who…不幸的是&#xff0c;這一次&#xff0c;您的申請沒有成功&#xff0c;我們已經任命了一位符合以下條件的申請人&#xff1a; Sounds famili…

兩道簡單的入門題

1&#xff09;  for循環求100以內奇數和 1 #include<stdio.h> 2 int main(){ 3 int ans0;//定義一個答案變量存儲答案 4 for(int i1;i<100;i)//用for從1循環到100&#xff0c;如果i%2&#xff01;0&#xff08;%是一種取余運算&#xff09; 5 if(…

1716. 計算力扣銀行的錢

1716. 計算力扣銀行的錢 Hercy 想要為購買第一輛車存錢。他 每天 都往力扣銀行里存錢。 最開始&#xff0c;他在周一的時候存入 1 塊錢。從周二到周日&#xff0c;他每天都比前一天多存入 1 塊錢。在接下來每一個周一&#xff0c;他都會比 前一個周一 多存入 1 塊錢。 給你 …

谷歌 colab_如何在Google Colab上使用熊貓分析

谷歌 colabRecently, pandas have come up with an amazing open-source library called pandas-profiling. Generally, EDA starts by df.describe(), df.info() and etc which to be done separately. Pandas_profiling extends the general data frame report using a singl…

【題解】HAOI2007分割矩陣

水題盛宴啦啦啦……做起來真的極其舒服&#xff0c;比某些毒瘤題好太多了…… 數據范圍極小 --> 狀壓 / 搜索 / 高維度dp&#xff1b;觀察要求的均方差&#xff0c;開始考慮是不是能夠換一下式子。我們用\(a_{x}\)來表示第 \(x\) 個矩陣的總值&#xff0c;則式子為&#xff…

Java之生成Pdf并對Pdf內容操作

雖說網上有很多可以在線導出Pdf或者word或者轉成png等格式的工具&#xff0c;但是我覺得還是得了解知道是怎么實現的。一來&#xff0c;在線免費轉換工具&#xff0c;是有容量限制的&#xff0c;達到一定的容量時&#xff0c;是不能成功導出的;二來&#xff0c;業務需求&#x…

邊際概率條件概率_數據科學家解釋的邊際聯合和條件概率

邊際概率條件概率Probability plays a very important role in Data Science, as Data Scientist regularly attempt to draw statistical inferences that could be used to predict data or analyse data better.P robability起著數據科學非常重要的作用&#xff0c;為數據科…

1822. 數組元素積的符號

1822. 數組元素積的符號 已知函數 signFunc(x) 將會根據 x 的正負返回特定值&#xff1a; 如果 x 是正數&#xff0c;返回 1 。 如果 x 是負數&#xff0c;返回 -1 。 如果 x 是等于 0 &#xff0c;返回 0 。 給你一個整數數組 nums 。令 product 為數組 nums 中所有元素值的…

java并發編程實戰:第十四章----構建自定義的同步工具

一、狀態依賴性管理 對于單線程程序&#xff0c;某個條件為假&#xff0c;那么這個條件將永遠無法成真在并發程序中&#xff0c;基于狀態的條件可能會由于其他線程的操作而改變1 可阻塞的狀態依賴操作的結構2 3 acquire lock on object state4 while (precondition does not ho…

關于之前的函數式編程

之前寫的函數式編程是我從 JavaScript ES6 函數式編程入門經典這本書里面整理的&#xff0c;然后只在第一篇里專門提到了&#xff0c;后面的話沒有專門提到&#xff0c;而且引用了書中大量的文字&#xff0c;所以我把掘金這里的文章都刪除了&#xff0c;然后在 CSDN 上面每一篇…

袋裝決策樹_袋裝樹是每個數據科學家需要的機器學習算法

袋裝決策樹袋裝樹木介紹 (Introduction to Bagged Trees) Without diving into the specifics just yet, it’s important that you have some foundation understanding of decision trees.尚未深入研究細節&#xff0c;對決策樹有一定基礎了解就很重要。 From the evaluatio…

[JS 分析] 天_眼_查 字體文件

0. 參考 js分析 貓_眼_電_影 字體文件 font-face 1. 分析 1.1 定位目標元素 1.2 查看網頁源代碼 1.3 requests 請求提取得到大量錯誤信息 對比貓_眼_電_影抓取到unicode編碼&#xff0c;天_眼_查混合使用正常字體和自定義字體&#xff0c;難點在于如何從 紅 轉化為 美。 一開始…