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换成你的登录页面,这样的话,拦截器在你访问未开放页面时,会自动跳转到你的登录页面。

最后

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

你可能感兴趣的:(学习随记,string,boot,拦截器,代码编写)