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

SpringMVC下半篇之?dāng)r截器

這篇具有很好參考價(jià)值的文章主要介紹了SpringMVC下半篇之?dāng)r截器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

學(xué)習(xí)目標(biāo)

  • 攔截器
  • 文件上傳
  • 異常處理器
  • ssm整合

1.攔截器

1.1.什么是攔截器?

? Spring MVC中的攔截器(Interceptor)類似于Servlet中的過濾器(Filter),它主要用于攔截用戶請(qǐng)求并作相應(yīng)的處理。例如通過攔截器可以進(jìn)行權(quán)限驗(yàn)證、判斷用戶是否登錄等。

? 攔截器依賴于web框架,在實(shí)現(xiàn)上基于Java的反射機(jī)制,屬于面向切面編程(AOP)的一種運(yùn)用。文章來源地址http://www.zghlxwxcb.cn/news/detail-816585.html

1.2.自定義攔截器

1.2.1.創(chuàng)建攔截器

package com.by.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

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

public class CustomHandlerInterceptor implements HandlerInterceptor {
    /**
     * 在控制器方法調(diào)用前執(zhí)行
     * 返回值為是否中斷
     *      true:表示繼續(xù)執(zhí)行(下一個(gè)攔截器或處理器)
     *      false:則會(huì)中斷后續(xù)的所有操作,所以我們需要使用response來繼續(xù)響應(yīng)后續(xù)請(qǐng)求
     */
    @Override
    public boolean preHandle(HttpServletRequest request,
                      HttpServletResponse response, Object object) throws Exception {
        System.out.println("HandlerInterceptor preHandle ....");
        return true;
    }

    /**
     * 在控制器方法調(diào)用后,解析視圖前調(diào)用,我們可以對(duì)視圖和模型做進(jìn)一步渲染或修改
     * 可在modelAndView中加入數(shù)據(jù),比如當(dāng)前時(shí)間
     */
    @Override
    public void postHandle(HttpServletRequest request,HttpServletResponse response, 
                         Object object, ModelAndView modelAndView) throws Exception {
        System.out.println("HandlerInterceptor postHandle ....");
    }

    /**
     * 整個(gè)請(qǐng)求完成,即視圖渲染結(jié)束后調(diào)用,這個(gè)時(shí)候可以做些資源清理工作,或日志記錄
     */
    @Override
    public void afterCompletion(HttpServletRequest request,
        HttpServletResponse response,Object object, Exception e) throws Exception {
        System.out.println("HandlerInterceptor afterCompletion ....");
    }
}

1.2.2.配置攔截器

    <!--配置攔截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 匹配的是url路徑 -->
            <mvc:mapping path="/**"></mvc:mapping>
            <bean class="com.by.interceptor.CustomHandlerInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

1.2.3.測(cè)試

  • 編寫controller
@Controller
@RequestMapping("/account")
public class AccountController {

    @RequestMapping("/findAccount12")
    public String findAccount12(Model model) {
        model.addAttribute("msg", "歡迎你 springmvc");
        System.out.println("controller的方法執(zhí)行了......");
        return "success";
    }
}
  • 在index.jsp里面定義超鏈接
<a href="/account/findAccount12">攔截器</a>

1.3.登錄攔截器

1.3.1.創(chuàng)建攔截器

package com.by.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

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

public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request,
           HttpServletResponse response, Object object) throws Exception {
        String user = (String) request.getSession().getAttribute("user_session");
        if (user != null) {//已經(jīng)登錄,繼續(xù)執(zhí)行
            System.out.println("獲得用戶信息:"+user);
            return true;
        } else {//未登錄,跳轉(zhuǎn)到登錄頁面
            response.sendRedirect(request.getContextPath() +"/login.jsp");
            return false;
        }
    }
}

1.3.2.配置攔截器

	<mvc:interceptors>
        <mvc:interceptor>
            <!-- 匹配的是url路徑 -->
            <mvc:mapping path="/**"></mvc:mapping>
            <bean class="com.by.interceptor.LoginInterceptor"></bean>
        </mvc:interceptor>
	</mvc:interceptors>

1.3.3.測(cè)試

  • 編寫controller
@Controller
@RequestMapping("/account")
public class AccountController {

    @RequestMapping("/findAccount13")
    public String findAccount13(Model model) {
        model.addAttribute("msg", "歡迎你 springmvc");
        System.out.println("controller的方法執(zhí)行了......");
        return "success";
    }
}
  • 在index.jsp里面定義超鏈接
<%
   session.setAttribute("user_session","User{name:張二狗,age:18}");
%>
<a href="/account/findAccount13">登錄攔截器</a>

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

本文來自互聯(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)文章

  • 【SpringMVC】| SpringMVC攔截器

    【SpringMVC】| SpringMVC攔截器

    目錄 一:SpringMVC攔截器 1. 攔截器介紹 2. HandlerInterceptor接口分析 3. 自定義攔截器實(shí)現(xiàn)權(quán)限驗(yàn)證 SpringMVC 中的 Interceptor 攔截器,它的主要作用是攔截指定的用戶請(qǐng)求,并進(jìn)行相應(yīng)的預(yù)處理與后處理。其攔截的時(shí)間點(diǎn)在“處理器映射器根據(jù)用戶提交的請(qǐng)求映射出了所要執(zhí)行的處理

    2024年02月06日
    瀏覽(31)
  • SpringMVC 攔截器

    SpringMVC 攔截器

    Spring MVC 攔截器是Spring框架中的一種機(jī)制,用于在請(qǐng)求到達(dá)處理器之前和渲染視圖之前攔截請(qǐng)求,并允許開發(fā)者在這兩個(gè)時(shí)間點(diǎn)進(jìn)行自定義的處理邏輯。攔截器與過濾器(Filter)類似,但更加專注于對(duì)請(qǐng)求的處理器的攔截,比如對(duì)訪問權(quán)限進(jìn)行控制、日志記錄、性能監(jiān)控等。

    2024年01月19日
    瀏覽(33)
  • SpringMVC:攔截器

    SpringMVC:攔截器

    一般我們會(huì)做一些統(tǒng)一的操作這個(gè)時(shí)候我們需要使用springmvc提供的攔截器,例如token的驗(yàn)證,字段必填的操作,接口超時(shí)判斷,簽名驗(yàn)證,字段加密等操作,所以我們需要了解執(zhí)行先后順序。?我們來簡(jiǎn)單介紹下實(shí)現(xiàn)過程及對(duì)應(yīng)代碼,執(zhí)行結(jié)果: 1、定義自己的spring mvc攔截器需

    2024年01月24日
    瀏覽(29)
  • springMVC之?dāng)r截器

    springMVC之?dāng)r截器

    攔截器 SpringMVC中的攔截器用于攔截控制器方法的執(zhí)行 SpringMVC中的攔截器需要實(shí)現(xiàn)HandlerInterceptor SpringMVC的攔截器必須在SpringMVC的配置文件中進(jìn)行配置: FirstIntercepor類: SecondInterceptor類: SpringMVC中的攔截器有三個(gè)抽象方法: preHandle:控制器方法執(zhí)行之前執(zhí)行preHandle(),其bool

    2024年02月10日
    瀏覽(29)
  • SpringMVC攔截器 (Interceptor)

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

    2024年01月22日
    瀏覽(34)
  • 12、SpringMVC之?dāng)r截器

    12、SpringMVC之?dāng)r截器

    創(chuàng)建名為spring_mvc_interceptor的新module,過程參考9.1節(jié)和9.5節(jié) 與自定義的過濾器一樣,自定義的攔截器也要配置后才能生效; 過濾器是服務(wù)器中的組件,所以配置到 web.xml 中; 攔截器是 springmvc 中的組件,因此要配置到 springmvc 的配置文件中。 因?yàn)樵谂渲脭r截器時(shí),沒有指定要

    2024年02月05日
    瀏覽(28)
  • 一文學(xué)會(huì) SpringMVC 攔截器

    一文學(xué)會(huì) SpringMVC 攔截器

    ?作者簡(jiǎn)介:2022年 博客新星 第八 。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進(jìn)。 ??個(gè)人主頁:Java Fans的博客 ??個(gè)人信條:不遷怒,不貳過。小知識(shí),大智慧。 ??當(dāng)前專欄:SSM 框架從入門到精通 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:一文學(xué)會(huì) SpringM

    2024年02月02日
    瀏覽(26)
  • SpringMVC Day 10 : 攔截器

    SpringMVC Day 10 : 攔截器

    攔截器是Spring MVC框架提供的一種強(qiáng)大的機(jī)制,用于在請(qǐng)求到達(dá)控制器之前或之后進(jìn)行預(yù)處理和后處理。它可以攔截并處理請(qǐng)求,對(duì)請(qǐng)求進(jìn)行必要的修改或驗(yàn)證,以及在請(qǐng)求返回給客戶端之前進(jìn)行額外的操作。攔截器可以幫助我們實(shí)現(xiàn)各種需求,如身份驗(yàn)證、日志記錄、性能監(jiān)

    2024年02月06日
    瀏覽(19)
  • springmvc統(tǒng)一異常處理攔截器

    使用@RestControllerAdvice+@ExceptionHandler實(shí)現(xiàn) 也可以使用@ControllerAdvice+@ResponseBody+@ExceptionHandler實(shí)現(xiàn) 創(chuàng)建一個(gè)異常處理的類,放在config包下 ?組件類: ?也可以讓不同的異常返回不同的結(jié)果,捕獲什么異常由@ExceptionHandler的value屬性決定,傳入一個(gè)類對(duì)象(可以通過反射獲得) ?

    2024年02月15日
    瀏覽(24)
  • SpringMVC的攔截器(Interceptor)

    SpringMVC的攔截器(Interceptor)

    對(duì)于攔截器這節(jié)的知識(shí),我們需要學(xué)習(xí)如下內(nèi)容: 攔截器概念 入門案例 攔截器參數(shù) 攔截器工作流程分析 講解攔截器的概念之前,我們先看一張圖: (1)瀏覽器發(fā)送一個(gè)請(qǐng)求會(huì)先到Tomcat的web服務(wù)器 (2)Tomcat服務(wù)器接收到請(qǐng)求以后,會(huì)去判斷請(qǐng)求的是靜態(tài)資源還是動(dòng)態(tài)資源 (3)如果是

    2024年02月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包