自学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,比较粗糙。

html>
lang="en" xmlns:th="http://www.w3.org/1999/xhtml">

    charset="UTF-8">
    </span><span style="font-family:'宋体';">用户登录</span><span style="color:#e8bf6a;">


用户名:value="" name="name" type="text"/> 密码: value="" type="password">

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

自学SpringBoot学习笔记--拦截器_第1张图片

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



成功跳转!ojbk!

你可能感兴趣的:(springboot)