zoukankan      html  css  js  c++  java
  • springboot、拦截器

    1.添加配置文件

    //@Configuration 声明这是一个配置类,相当于一个xml文件
    @Configuration
    public class WebConfiguraion {
    
        @Bean
        public FilterRegistrationBean testFilterRegistrationBean(){
            
            //加载自定义过滤器
            FilterRegistrationBean registrationBean = new FilterRegistrationBean();
            //设置过滤器
            registrationBean.setFilter(new MyFilter());
            //指定过滤连接
            registrationBean.addUrlPatterns("/*");
            registrationBean.addInitParameter("paraname", "paramvalue");
            registrationBean.setName("MyFilter");
            
            //设置优先级
            registrationBean.setOrder(1);
            return registrationBean;
        }

        //配置多个过滤器(order数值越小优先级越高)
         @Bean
        public  FilterRegistrationBean nextFilterRegistrationBean(){

        //加载自定义过滤器
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        //设置过滤器
        registrationBean.setFilter(new MyFilter2());
        //指定过滤连接
        registrationBean.addUrlPatterns("/*");
        registrationBean.addInitParameter("paraname", "paramvalue");
        registrationBean.setName("MyFilter2");

        //设置优先级
        registrationBean.setOrder(2);
        return registrationBean;
    
        
    }

    2.配置我的过滤器(MyFilter一样配置此处省略)

    public class MyFilter implements Filter {
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            System.out.println("销毁!");
            
        }
    
        @Override
        public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
                throws IOException, ServletException {
            // TODO Auto-generated method stub
            System.out.println("执行你的过滤器!");
            
            //进行转换
            HttpServletRequest request=(HttpServletRequest) arg0;
            HttpServletResponse response=(HttpServletResponse) arg1;
            //设置字符编码
            request.setCharacterEncoding("UTF-8");  
            response.setCharacterEncoding("UTF-8"); 
            
            String path=request.getRequestURI();
            System.out.println("被拦截的地址是:"+path);
           if(path.indexOf("/us/login")>-1){//登录页面不过滤
                System.out.println("放行:/us/login");
                arg2.doFilter(request, arg1);//递交给下一个过滤器
                return;
            }
            if ("/us/checklogin".equals(request.getRequestURI())) {
                System.out.println("放行:us/checklogin");
                arg2.doFilter(request, arg1);
                return;
            }
            
            User user = (User) request.getSession().getAttribute("users");  
            
            
            if (user !=null) {
                //放行
                System.out.println("已登录!");
                arg2.doFilter(request, arg1);
            }else {
                System.out.println("不放行!!");
                //arg2.doFilter(request, arg1);
                System.out.println("重定向到:/us/login");
                response.sendRedirect(request.getContextPath()+"/us/login");
            
            }
            
            
        }
    
        @Override
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
            
        }
        
    
    }
  • 相关阅读:
    sosoapi的安装
    centos7 安装后,意外出现Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]
    crontab 每月最后一天执行命令
    svn的常用命令
    svn的安装与使用
    RPC简述
    REST简介
    VS2015 IIS Express 无法启动 解决办法
    NUnit的安装
    NUnit.Framework在VS2015中如何进行单元测试
  • 原文地址:https://www.cnblogs.com/dztHome/p/10337411.html
Copyright © 2011-2022 走看看