string boot中拦截器的使用和代码的编写。

首先

拦截器要放在启动类里面,因为,我们要运动string boot,必须要启动启动类,所以拦截器要放在启动器里面。

拦截器代码如下:
@Override
    public void addInterceptors(InterceptorRegistry registry){
        InterceptorRegistration ir=registry.addInterceptor(new Interceptor1());
        ir.addPathPatterns("/**");
        ir.excludePathPatterns("/admin/yzm","/user/findAll","/admin/login","/js/**","/html/**","/images/**","/css/**","/kindeditor/**");

    }

这些代码中,最后这一句代码表示允许访问的地址。

ir.excludePathPatterns("/admin/login");

如果/admin/login这个访问路径,在项目中存在,那么当你访问localhost:8080/admin/login的时候,是不会被拦截的

ir.excludePathPatterns();
当这句代码中没有"/admin.login"时

如果/admin/login这个访问路径,在项目中存在,那么当你访问localhost:8080/admin/login的时候,是会被拦截的。

其次

我们还要有一个拦截跳转页面的代码。

Interceptor1.java
package com.example.demo.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("uname");
        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(tempContextUrl);
        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{
    }

}

这个代码中,我们可以修改它的跳转页面。

String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).append("/").toString();

这句话是跳转到localhost:8080页面。

response.sendRedirect(tempContextUrl);

这里是服务器跳转页面的代码,这里你可以把tempContextUrl换成你的登录页面,这样的话,拦截器在你访问未开放页面时,会自动跳转到你的登录页面。

最后

我们的拦截器就全部完成了,希望对你们有所帮助。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值