国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring MVC攔截器Interceptor使用(判斷用戶登錄)

這篇具有很好參考價(jià)值的文章主要介紹了Spring MVC攔截器Interceptor使用(判斷用戶登錄)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一 概念

Spring MVC中的攔截器(Interceptor)類似于Servlet中的過(guò)濾器(Filter),它主要用于攔截用戶請(qǐng)求并作相應(yīng)的處理。例如通過(guò)攔截器可以進(jìn)行權(quán)限驗(yàn)證、記錄請(qǐng)求信息的日志、判斷用戶是否登錄等。
攔截器可以在進(jìn)入處理器之前做一些操作,或者在處理器完成后進(jìn)行操作,甚至是在渲染視圖后進(jìn)行操作。

在這里僅僅演示登錄的判斷

二 3步使用

①創(chuàng)建攔截器類實(shí)現(xiàn)HandlerInterceptor接口
②配置攔截器(在springmvc-config.xml中配置)
③測(cè)試攔截器效果是否實(shí)現(xiàn)

三 HandlerInterceptor接口

這個(gè)接口含有三個(gè)方法:

方法名 作用說(shuō)明
preHandle() 這個(gè)方法將在請(qǐng)求處理之前進(jìn)行調(diào)用,該方法的返回值是布爾值,當(dāng)返回值為false時(shí),表示請(qǐng)求結(jié)束,后續(xù)的Interceptor和Controller都不會(huì)再執(zhí)行;當(dāng)返回值為true時(shí)就會(huì)繼續(xù)調(diào)用下一個(gè)Interceptor的preHandle方法
postHandle 該方法是在當(dāng)前請(qǐng)求進(jìn)行處理之后被調(diào)用,前提是preHandle方法的返回值為true時(shí)才能被調(diào)用,且它會(huì)在DispatcherServlet進(jìn)行視圖返回渲染之前被調(diào)用,所以在這個(gè)方法里可對(duì)Controller層處理之后的ModelAndView對(duì)象進(jìn)行操作
afterCompletion 該方法將在整個(gè)請(qǐng)求結(jié)束之后,也就是在DispatcherServlet渲染了對(duì)應(yīng)的視圖之后執(zhí)行,前提是preHandle方法的返回值為true時(shí)才能被調(diào)用

四 代碼實(shí)現(xiàn)

①創(chuàng)建創(chuàng)建攔截器類實(shí)現(xiàn)HandlerInterceptor接口

import cn.com.sise.pojo.User;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 獲取請(qǐng)求的URL
        System.out.println("preHandle執(zhí)行中");
        // 獲取請(qǐng)求的URL
        String url = request.getRequestURI();
        // URL:除了login.jsp是可以公開(kāi)訪問(wèn)的,其它的URL都進(jìn)行攔截控制
        if (url.indexOf("/lgCheck") >= 0) {
            return true;
        }
        // 獲取Session
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("USER_SESSION");
        // 判斷Session中是否有用戶數(shù)據(jù),如果有,則返回true,繼續(xù)向下執(zhí)行
        if (user != null) {
            return true;
        }
        // 不符合條件的給出提示信息,并轉(zhuǎn)發(fā)到登錄頁(yè)面
        request.setAttribute("msg", "您還沒(méi)有登錄,請(qǐng)先登錄!");
        request.getRequestDispatcher("/login.jsp")
                .forward(request, response);
        return false;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle在目標(biāo)方法執(zhí)行之后,視圖渲染之前執(zhí)行");
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("在所有方法執(zhí)行之后執(zhí)行");
    }

該類所在目錄截圖
Spring MVC攔截器Interceptor使用(判斷用戶登錄)

②配置攔截器(在springmvc-config.xml中配置)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:mvc="http://www.springframework.org/schema/mvc"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
	   http://www.springframework.org/schema/beans/spring-beans.xsd
	   http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
	   http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

	
<!--	配置攔截器-->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**"/>
			<mvc:exclude-mapping path="/login"/>
			<bean class="interceptor.LoginInterceptor" />
		</mvc:interceptor>
	</mvc:interceptors>

</beans>

說(shuō)明:
下面這種/** 表示攔截的是所有請(qǐng)求
Spring MVC攔截器Interceptor使用(判斷用戶登錄)
如果要放行某個(gè)路徑,可在下面的標(biāo)簽進(jìn)行配置
Spring MVC攔截器Interceptor使用(判斷用戶登錄)
③測(cè)試攔截器效果是否實(shí)現(xiàn)
在控制器中新建一個(gè)類作為登錄路徑和主頁(yè)main路徑以及l(fā)gCheck檢查登錄的路徑(簡(jiǎn)單模擬)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-490414.html

到了這里,關(guān)于Spring MVC攔截器Interceptor使用(判斷用戶登錄)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot自定義攔截器interceptor使用詳解

    SpringBoot自定義攔截器interceptor使用詳解

    Spring Boot攔截器Intercepter詳解 Intercepter是由Spring提供的Intercepter攔截器,主要應(yīng)用在日志記錄、權(quán)限校驗(yàn)等安全管理方便。 使用過(guò)程 1.創(chuàng)建自定義攔截器,實(shí)現(xiàn)HandlerInterceptor接口,并按照要求重寫指定方法 HandlerInterceptor接口源碼: 根據(jù)源碼可看出HandlerInterceptor接口提供了三個(gè)

    2024年02月13日
    瀏覽(33)
  • Spring MVC攔截器

    Spring MVC攔截器

    攔截器(Interceptor)是 Spring MVC 提供的一種強(qiáng)大的功能組件。它可以對(duì)用戶請(qǐng)求進(jìn)行攔截,并在請(qǐng)求進(jìn)入控制器(Controller)之前、控制器處理完請(qǐng)求后、甚至是渲染視圖后,執(zhí)行一些指定的操作。 在 Spring MVC 中,攔截器的作用與 Servlet 中的過(guò)濾器類似,它主要用于攔截用戶請(qǐng)

    2024年02月09日
    瀏覽(24)
  • Spring MVC:攔截器

    Spring MVC:攔截器

    在 JavaWeb 中, 過(guò)濾器 是 Servlet 技術(shù)中最實(shí)用的技術(shù),能夠管理 Web 服務(wù)器的所有 Web 資源,實(shí)現(xiàn)信息攔截、權(quán)限訪問(wèn)控制、過(guò)濾敏感詞匯、壓縮響應(yīng)信息等功能。它主要用于對(duì)用戶請(qǐng)求進(jìn)行預(yù)處理,也可以對(duì) HttpServletResponse 進(jìn)行后處理。 而 Spring MVC 的 攔截器 類似于過(guò)濾器,

    2024年02月08日
    瀏覽(22)
  • Spring MVC 攔截器

    如何實(shí)現(xiàn)session共享問(wèn)題: 1、session都在內(nèi)存里面存儲(chǔ)的,只要有session對(duì)象我都分發(fā)出去,讓其他應(yīng)用都可以拿到(同步) 缺點(diǎn): 只要有session對(duì)象都要廣播出去,而且用戶應(yīng)用比較多了就會(huì)導(dǎo)致服務(wù)壓力大, 2、使用token,登錄完之后給你一個(gè)token,然后加密完之后發(fā)給服務(wù)

    2024年02月15日
    瀏覽(26)
  • Spring MVC學(xué)習(xí)之——攔截器

    Spring MVC中的攔截器(Interceptor)類似于Servlet中的過(guò)濾器(Filter),它主要用于攔截用戶請(qǐng)求并作相應(yīng)的處理。例如通過(guò)攔截器可以進(jìn)行權(quán)限驗(yàn)證、判斷用戶是否登錄等。 ? 攔截器依賴于web框架,在實(shí)現(xiàn)上基于Java的反射機(jī)制,屬于面向切面編程(AOP)的一種運(yùn)用。 Spring的攔

    2024年01月20日
    瀏覽(28)
  • Spring MVC攔截器和跨域請(qǐng)求

    Spring MVC攔截器和跨域請(qǐng)求

    SpringMVC的攔截器(Interceptor)也是AOP思想的一種實(shí)現(xiàn)方式。它與Servlet的過(guò)濾器(Filter)功能類似,主要用于攔截用戶的請(qǐng)求并做相應(yīng)的處理,通常應(yīng)用在權(quán)限驗(yàn)證、記錄請(qǐng)求信息的日志、判斷用戶是否登錄等功能上。 攔截器和過(guò)濾器的區(qū)別 攔截器是SpringMVC組件,而過(guò)濾器是

    2024年02月16日
    瀏覽(89)
  • interceptor攔截器框架

    在實(shí)際開(kāi)發(fā)中,我們可能需要攔截部分請(qǐng)求進(jìn)行一些額外的處理,比如校驗(yàn)用戶權(quán)限、記錄請(qǐng)求日志等。而在Spring Boot中,使用攔截器(Interceptors)可以很方便地對(duì)請(qǐng)求進(jìn)行攔截處理。 首先需要定義一個(gè)攔截器,通常需要實(shí)現(xiàn)HandlerInterceptor接口,并重寫其中的方法: java @Co

    2023年04月16日
    瀏覽(34)
  • SpringMVC-2-Spring MVC攔截器詳解:從入門到精通

    SpringMVC-2-Spring MVC攔截器詳解:從入門到精通

    能夠編寫攔截器并配置攔截器 1.1 攔截器概念和作用 攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行 作用: 在指定的方法調(diào)用前后執(zhí)行預(yù)先設(shè)定的代碼 阻止原始方法的執(zhí)行 總結(jié):增強(qiáng) 核心原理:AOP思想 1.2 攔截器和過(guò)濾器的區(qū)別

    2024年02月12日
    瀏覽(32)
  • 【SpringBoot篇】Interceptor攔截器 | 攔截器和過(guò)濾器的區(qū)別

    【SpringBoot篇】Interceptor攔截器 | 攔截器和過(guò)濾器的區(qū)別

    攔截器(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開(kāi)發(fā)中,攔截器通常用于在請(qǐng)求到達(dá)控制器之前

    2024年02月04日
    瀏覽(28)
  • SpringMVC攔截器 (Interceptor)

    ????????Spring MVC中的攔截器(Interceptor)類似于Servlet中的過(guò)濾器(Filter),它主要用于攔截用戶請(qǐng)求并作相應(yīng)的處理。例如通過(guò)攔截器可以進(jìn)行權(quán)限驗(yàn)證、判斷用戶是否登錄等。 ????????攔截器依賴于web框架,在實(shí)現(xiàn)上基于Java的反射機(jī)制,屬于面向切面編程(AOP)的

    2024年01月22日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包