Spring boot 加入拦截器

本文介绍了如何在Spring Boot应用中添加拦截器,包括将Interceptor1.java文件放到控制器同级目录,确保登录操作不受拦截器影响,并在用户登录时创建名为name的session变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 把 拦截器 文件 Interceptor1.java 放到 与控制器 同级目录

package com.example.controller;

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

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

public class Interceptor1 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception{
        HttpSession session=request.getSession();
        Object ob=session.getAttribute("name");  //登录时建立的session名字
        if (ob!=null) {
            return true;
        }
        session.setAttribute("preurl",request.getRequestURI());
        StringBuffer url = request.getRequestURL();
        String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).append("/").toString();
        response.sendRedirect("/login/login");   //如果访问其他页面跳转到该页面

        return false;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response,
           Object handler,ModelAndView model) throws Exception{
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
             Object handler,Exception ex) throws Exception{
    }

}


在这里插入图片描述

2. 需要拦截器 放到 启动类中 , 把登陆 放到拦截器之外

@SpringBootApplication
public class DemoApplication implements WebMvcConfigurer{
	
	@Override
    public void addInterceptors(InterceptorRegistry registry){
        InterceptorRegistration ir=registry.addInterceptor(new Interceptor1());
        ir.addPathPatterns("/**");
       // ir.excludePathPatterns("/stu/save","/stu/getClassGid","/stu/pageList","/stu/getClassAll","/index/index","/index/right","/stu/news","/stu/pageList","/stu/indexData","/stu/getEditData","/stu/getClass","/stu/del","/stu/edit","/stu/login","/stu/index","/stu/add","/js/**","/html/**","/images/**","/css/**");
       ir.excludePathPatterns("/login/login","/login/dologin","/login/yzm","/js/**","/html/**","/images/**","/css/**"); //允许访问的文件路径

    }

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
 
}

导入文件 :

import com.example.controller.Interceptor1;

3. 登陆时候 建立 session 名称为 name 的 个给其赋值 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值