zoukankan      html  css  js  c++  java
  • spring mvc 拦截器

    拦截器作用:可以用于用户操作的安全检查,如:登录、权限等

    package com.tool;
    
    import java.util.List;
    
    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 SecurityInterceptor implements HandlerInterceptor {
        private List<String> excludedUrls;
    
        public void setExcludedUrls(List<String> excludedUrls) {
            this.excludedUrls = excludedUrls;
        }
    
        @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 request,
                HttpServletResponse arg1, Object arg2) throws Exception {
            String requestUri = request.getRequestURI();
            if (excludedUrls == null || excludedUrls.size() == 0)
                return true;        
            for (String url : excludedUrls) {
                if (requestUri.endsWith(url)) {
                    return true;
                }
            }
            //这里可以判断用记是否登录、用户权限
            HttpSession session = request.getSession();        
            if (session.getAttribute("user") == null) {
                throw new Exception("我是来自拦截器的方法");
            } else {
                return true;
            }
        }
    }

    mvc配置

        <!--定义拦截器,验证登录,验证权限都可以在这里玩耍了-->
        <mvc:interceptors>
            <mvc:interceptor>
                <mvc:mapping path="/**" />
                <bean class="com.tool.SecurityInterceptor">
                    <!--定义不需要拦截的url集合-->
                    <property name="excludedUrls">
                        <list>
                            <!--                        <value>/HelloWorld/myhello.do</value>-->
                        </list>
                    </property>
                </bean>
            </mvc:interceptor>
        </mvc:interceptors>

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    Java容器-引用分类与部分Map用法
    Java容器-引用数据类型排序+TreeSet、TreeMap底层实现
    JAVA容器-重点总结与深度解析
    JAVA容器-浅谈HashMap的实现原理
    JAVA容器-模拟LinkedList实现(双链表)
    JAVA容器-模拟ArrayList的底层实现
    在代码动态设置RelativeLayout的属性,比如layout_below
    java substring
    String StringBuffer StringBuilder
    线性布局通过适配器可以动态加载view
  • 原文地址:https://www.cnblogs.com/wujf/p/5264863.html
Copyright © 2011-2022 走看看