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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot-添加拦截器

發布時間:2023/11/30 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的springboot-添加拦截器的全部內容,希望文章能夠幫你解決所遇到的問題。

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