中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

java開源代碼網(wǎng)站seo優(yōu)

java開源代碼網(wǎng)站,seo優(yōu),電腦做高考真題的網(wǎng)站,wordpress主題授權(quán)文章目錄 🌹概念?作用 🎄快速入門?入門案例代碼實(shí)現(xiàn) 🛸攔截路徑🍔攔截器interceptor和過濾器filter的區(qū)別🎆登錄校驗(yàn) 🌹概念 攔截器(Interceptor)是一種軟件設(shè)計(jì)模式,…

文章目錄

  • 🌹概念
    • ?作用
  • 🎄快速入門
    • ?入門案例代碼實(shí)現(xiàn)
  • 🛸攔截路徑
  • 🍔攔截器interceptor和過濾器filter的區(qū)別
  • 🎆登錄校驗(yàn)

在這里插入圖片描述

🌹概念

攔截器(Interceptor)是一種軟件設(shè)計(jì)模式,用于在應(yīng)用程序處理請(qǐng)求或響應(yīng)時(shí)對(duì)其進(jìn)行攔截和修改。攔截器可以在整個(gè)應(yīng)用程序中使用,用于執(zhí)行跨越多個(gè)層的通用任務(wù),如身份驗(yàn)證、授權(quán)、緩存、日志記錄、性能計(jì)量等。

在Web開發(fā)中,攔截器通常用于在請(qǐng)求到達(dá)控制器之前或響應(yīng)返回客戶端之前對(duì)其進(jìn)行修改。例如,在Spring框架中,可以使用攔截器來實(shí)現(xiàn)身份驗(yàn)證和授權(quán)檢查,記錄請(qǐng)求和響應(yīng)的日志,以及處理全局異常等。

攔截器的工作方式是通過將其注冊(cè)到應(yīng)用程序的處理管道中,并在請(qǐng)求或響應(yīng)傳遞過程中執(zhí)行相應(yīng)的操作。攔截器可以訪問請(qǐng)求上下文、響應(yīng)上下文和處理程序?qū)ο?#xff0c;從而允許它們?cè)L問和修改請(qǐng)求或響應(yīng)的屬性和狀態(tài)。攔截器還可以決定是否將請(qǐng)求和響應(yīng)繼續(xù)傳遞到下一個(gè)處理程序或終止請(qǐng)求。

總之,攔截器是一種非常有用的設(shè)計(jì)模式,可以幫助開發(fā)人員在應(yīng)用程序中實(shí)現(xiàn)通用的功能,提高代碼的可重用性和可維護(hù)性。

?作用

請(qǐng)?zhí)砑訄D片描述

攔截器是一種非常有用的設(shè)計(jì)模式,它可以在應(yīng)用程序處理請(qǐng)求或響應(yīng)時(shí)對(duì)其進(jìn)行攔截和修改。以下是攔截器的幾個(gè)常見用途:

  • 身份驗(yàn)證和授權(quán):攔截器可以用于檢查請(qǐng)求是否具有適當(dāng)?shù)膽{據(jù),并根據(jù)需要拒絕或允許請(qǐng)求。這使得開發(fā)人員能夠輕松地實(shí)現(xiàn)身份驗(yàn)證和授權(quán)功能。
  • 緩存:攔截器可以用于緩存請(qǐng)求或響應(yīng)數(shù)據(jù),以便加快應(yīng)用程序的性能。例如,在Web應(yīng)用程序中,可以使用攔截器緩存靜態(tài)資源,如CSS文件和圖像。
  • 日志記錄:攔截器可以用于記錄請(qǐng)求和響應(yīng)的詳細(xì)信息,以便開發(fā)人員能夠更好地了解應(yīng)用程序的行為和性能。
  • 性能計(jì)量:攔截器可以用于測(cè)量應(yīng)用程序的性能,并識(shí)別可能的瓶頸。例如,在Web應(yīng)用程序中,可以使用攔截器跟蹤頁(yè)面加載時(shí)間,并標(biāo)識(shí)慢速查詢或資源。
  • 異常處理:攔截器可以用于處理應(yīng)用程序中的異常情況,并提供友好的錯(cuò)誤消息。例如,在Web應(yīng)用程序中,可以使用攔截器捕獲異常并顯示自定義錯(cuò)誤頁(yè)面。

🎄快速入門

請(qǐng)?zhí)砑訄D片描述

?入門案例代碼實(shí)現(xiàn)

代碼腳手架我傳到網(wǎng)盤里面了,需要的同學(xué)請(qǐng)自取
我用夸克網(wǎng)盤分享了「tlias-web-management」,點(diǎn)擊鏈接即可保存。
鏈接:https://pan.quark.cn/s/b98922faf182


首先我們創(chuàng)建interceptor類
在這里插入圖片描述
寫入下面的代碼

package com.itheima.interceptor;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Component
public class LoginCheckInterceptor implements HandlerInterceptor {@Override //目標(biāo)資源方法運(yùn)行前運(yùn)行 返回true,放行  返回false 攔截public boolean preHandle(HttpServletRequest  request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle");return true;}@Override //目標(biāo)方法運(yùn)行后運(yùn)行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle");}@Override //視圖渲染完畢后運(yùn)行,最后運(yùn)行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion");}
}

在這里插入圖片描述


創(chuàng)建配置類
在這里插入圖片描述

寫入下面的代碼

package com.itheima.config;import com.itheima.interceptor.LoginCheckInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration  //表明這個(gè)是配置類
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate LoginCheckInterceptor loginCheckInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {//加入攔截器(加入的攔截器就是我們剛剛創(chuàng)建的攔截器)registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**");}
}

在這里插入圖片描述

入門案例就完成了

🛸攔截路徑

通過配置攔截路徑,我們可以設(shè)置攔截什么路徑,放行什么路徑

請(qǐng)?zhí)砑訄D片描述

🍔攔截器interceptor和過濾器filter的區(qū)別

接口規(guī)范不同:過濾器需要實(shí)現(xiàn)Filter接口,而攔截器需要實(shí)現(xiàn)HanglerInterceptor接口
攔截范圍不同:過濾器filter會(huì)攔截所有的資源,而Interceptor中會(huì)攔截Spring環(huán)境的資源
請(qǐng)?zhí)砑訄D片描述

🎆登錄校驗(yàn)

請(qǐng)?zhí)砑訄D片描述

登錄操作,我們需要使用LoginCheckFilter類,我們修改一下里面的代碼

下面是修改后的代碼

package com.itheima.interceptor;import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Component
@Slf4j
public class LoginCheckInterceptor implements HandlerInterceptor {@Override //目標(biāo)資源方法運(yùn)行前運(yùn)行 返回true,放行  返回false 攔截public boolean preHandle(HttpServletRequest  req, HttpServletResponse resp, Object handler) throws Exception {//獲取請(qǐng)求的urlString url = req.getRequestURL().toString();log.info("請(qǐng)求的url:{}",url);//判斷請(qǐng)求url中是否包含有l(wèi)ogin,如果包含,說明是登錄操作,進(jìn)行放行if(url.contains("login")){log.info("登錄操作,放行");return true;}//獲取請(qǐng)求頭的令牌(token)String jwt=req.getHeader("token");//判斷令牌是否存在,如果不存在,返回錯(cuò)誤結(jié)果(未登錄)//hasLength()方法判斷字符串是否有長(zhǎng)度(是否為空)if (!StringUtils.hasLength(jwt)){log.info("請(qǐng)求頭token為空,返回未登錄的信息");Result error= Result.error("NOT_LOGIN");//使用阿里巴巴的fastJSON工具包,將對(duì)象轉(zhuǎn)成json字符串String notLogin= JSONObject.toJSONString(error);//響應(yīng)給瀏覽器resp.getWriter().write(notLogin);return false;}//解析token,如果解析失敗,返回登錄結(jié)果//jwt令牌try {JwtUtils.parseJWT(jwt);}catch (Exception e){e.printStackTrace();log.info("解析token失敗,返回未登錄的錯(cuò)誤信息");Result error= Result.error("NOT_LOGIN");//使用阿里巴巴的fastJSON工具包,將對(duì)象轉(zhuǎn)成json字符串String notLogin= JSONObject.toJSONString(error);//響應(yīng)給瀏覽器resp.getWriter().write(notLogin);return false;}//放行log.info("令牌合法,放行");return true;}@Override //目標(biāo)方法運(yùn)行后運(yùn)行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle");}@Override //視圖渲染完畢后運(yùn)行,最后運(yùn)行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion");}
}

在這里插入圖片描述

在技術(shù)的道路上,我們不斷探索、不斷前行,不斷面對(duì)挑戰(zhàn)、不斷突破自我。科技的發(fā)展改變著世界,而我們作為技術(shù)人員,也在這個(gè)過程中書寫著自己的篇章。讓我們攜手并進(jìn),共同努力,開創(chuàng)美好的未來!愿我們?cè)诳萍嫉恼魍旧喜粩鄪^進(jìn),創(chuàng)造出更加美好、更加智能的明天!

http://m.risenshineclean.com/news/58089.html

相關(guān)文章:

  • 做商城類的網(wǎng)站需要做些什么線下推廣渠道有哪些方式
  • 萊蕪在線論壇萊蕪話題王作泉抖音seo關(guān)鍵詞優(yōu)化
  • 網(wǎng)站開發(fā)api和微端互聯(lián)網(wǎng)營(yíng)銷師培訓(xùn)教程
  • 主題營(yíng)銷活動(dòng)創(chuàng)意網(wǎng)站收錄優(yōu)化
  • 電子商務(wù)網(wǎng)站建設(shè)也管理高端網(wǎng)站建設(shè)企業(yè)
  • 云南網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣合作協(xié)議范本
  • 國(guó)內(nèi)做的較好的網(wǎng)站制作網(wǎng)站公司
  • 西安專業(yè)做網(wǎng)站大概需要多少錢
  • 企健網(wǎng)網(wǎng)址搜索引擎優(yōu)化的簡(jiǎn)稱
  • 長(zhǎng)沙營(yíng)銷型網(wǎng)站建設(shè)如何營(yíng)銷推廣
  • 梅河口城鄉(xiāng)建設(shè)網(wǎng)站seo蜘蛛屯
  • 專業(yè)網(wǎng)站開發(fā)服務(wù)線上推廣宣傳方式有哪些
  • 做3d動(dòng)畫網(wǎng)站seo的主要工作是什么
  • 做二手房又做網(wǎng)站的如何制作一個(gè)網(wǎng)頁(yè)
  • 正規(guī)網(wǎng)站模板設(shè)計(jì)百度指數(shù)數(shù)據(jù)分析
  • wordpress 快訊功能seo免費(fèi)自學(xué)的網(wǎng)站
  • 膠州建設(shè)信息網(wǎng)站百度搜索app免費(fèi)下載
  • 龍巖紀(jì)檢委網(wǎng)站中國(guó)制造網(wǎng)網(wǎng)站類型
  • 網(wǎng)站的域名分為哪些網(wǎng)頁(yè)在線生成
  • 網(wǎng)站上傳后優(yōu)化大師apk
  • 溫州網(wǎng)站建設(shè)風(fēng)格網(wǎng)絡(luò)熱詞英語(yǔ)
  • 鄉(xiāng)鎮(zhèn)政府網(wǎng)站建設(shè)自查報(bào)告培訓(xùn)心得體會(huì)范文大全1000字
  • 移動(dòng)網(wǎng)站是什么意思百度廣告聯(lián)盟一個(gè)月能賺多少
  • 網(wǎng)站建設(shè)費(fèi)用包括哪些內(nèi)容優(yōu)化落實(shí)新十條措施
  • 網(wǎng)站推廣策劃的思路廈門網(wǎng)
  • 寶雞市市政工程建設(shè)管理處網(wǎng)站網(wǎng)站域名查詢ip地址
  • 免費(fèi)搭建網(wǎng)站 優(yōu)幫云營(yíng)銷網(wǎng)站建設(shè)軟件下載
  • 青島網(wǎng)站設(shè)計(jì)哪家便宜抖音廣告投放代理商
  • 重慶網(wǎng)上找工作哪個(gè)網(wǎng)站好十大騙子教育培訓(xùn)機(jī)構(gòu)
  • 天將建設(shè)集團(tuán)有限公司網(wǎng)站企業(yè)網(wǎng)絡(luò)推廣最簡(jiǎn)單方法