Spring Boot中Spring MVC的整合支持

本文档介绍了如何在Spring MVC中创建自定义配置类以实现视图跳转,创建并使用拦截器来添加当前年份到登录页面,并实现登录拦截器以保护未登录用户查看全部用户信息。主要涉及配置类、拦截器的编写及控制器的修改。
摘要由CSDN通过智能技术生成

一、创建项目文件

在这里插入图片描述

  • 添加依赖
    在这里插入图片描述

二、将上一讲的复制过来

在这里插入图片描述

三、写MVC配置文件,定义视图跳转

1、注释掉控制器

在这里插入图片描述

2、创建自定义mvc配置类,实现自动跳转

在这里插入图片描述

package net.zjs.lesson11.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 功能:自定义mvc配置类
 * 作者:zjs
 * 日期:2021-05-26
 */
@Configuration //配置类(交于spring容器管理)
public class MyMvcConfig implements WebMvcConfigurer {
    /*
    * 添加视图控制器
    * */

    @Override
    public void addViewControllers(ViewControllerRegistry registry){
        //当通过login.html访问时,直接跳转到login逻辑视图对应的页面,即login.html页面
        registry.addViewController("login.html").setViewName("login");
        //通过toLoginPage访问时,也直接跳转到login逻辑属兔对应的页面,即login.html页面
        registry.addViewController("toLoginPage").setViewName("login");
    }

}


3、修改登录页面

在这里插入图片描述

4、运行测试

  • 访问http://localhost:8080/toLoginPage
    在这里插入图片描述
  • 访问http://localhost:8080/login.html

在这里插入图片描述

四、编写拦截器

  • 让登录页面显示年份

1、创建自定义拦截器

在这里插入图片描述

package net.zjs.lesson11.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;
import java.util.Calendar;

/**
 * 功能:自定义拦截器
 * 作者:zjs
 * 日期:2021-05-26
 */
@Component
public class Myinterceptor implements HandlerInterceptor {
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response,
                           Object handler, ModelAndView modelAndView) throws Exception{

        request.setAttribute("currentYear", Calendar.getInstance().get(Calendar.YEAR));
    }
}

2、在自定义MVC配置类里加载自定义拦截器

在这里插入图片描述

3、修改登录页面

在这里插入图片描述

  • 编译会报错,说无法解析currentYear,不用管它,因为数据不是来自控制器,而是来自拦截器,要运行时请求后才能获取数据,因此编译会报错。

4、运行测试

在这里插入图片描述

五、编写登录拦截器,防止非登录用户查看全部用户信息

1、还原登录控制器中的toLoginPage方法的注解

在这里插入图片描述

2、在自定义MVC配置中注释掉相应的视图控制器

在这里插入图片描述

3、在登录控制里修改login()方法

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值