自学SpringBoot学习笔记--拦截器

准备好好学习下springboot,用他搭一个小项目。从登录开始,慢慢来。。。。菜鸟要飞。

过分了,不说废话了。。

百度了一下和springMVC的拦截器大致用法一样。

第一步:先写一个拦截器,命名为LoginInterceptor,实现HandlerInterceptor里的三个常用方法。如下图,添加拦截成功后要转发的路径。

package com.learn.paomo.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 LoginInterceptor implements HandlerInterceptor {
    @Override
    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {

    }
    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {

    }

    @Override
    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
        arg1.sendRedirect(arg0.getContextPath()+"/user/login");
        return true;
    }

}

第二步:注册拦截器 创建一个类命名为InterceptorConfigurerAdapter并集成WebMvcConfigurerAdapter,如下图所示添加拦截的路径“/*”,拦截一下所有的路径。

package com.learn.paomo.interceptor;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Component
public class InterceptorConfigurerAdapter extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns 添加路径
        // excludePathPatterns 排除路径
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/*");
        super.addInterceptors(registry);
    }

}

第三步:创建一个LoginController 来实现登录页面跳转。跳转至登陆页面。

package com.learn.paomo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class LoginController {

    @RequestMapping("/user/login")
    public String Login(){

        return "login";

    }

}

创建登陆页面html,比较粗糙。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
</head>
<body>
<form>
    用户名:<input value="" name="name" type="text"/>
    密码: <input value="" type="password">
</form>
</body>
</html>

项目目录整体结构粘一下:


启动项目,输入之前的请求数据地址 /hello,看是否拦截跳转:



成功跳转!ojbk!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值