zoukankan      html  css  js  c++  java
  • JS跨域:1.解决方案之-SpringMVC拦截器

    一 拦截器代码

    package com.wiimedia.controller;
    
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    
    public class CommonInterceptor implements HandlerInterceptor {
        private List<String> excludedUrls;
        public List<String> getExcludedUrls() {
            return excludedUrls;
        }
        public void setExcludedUrls(List<String> excludedUrls) {
            this.excludedUrls = excludedUrls;
        }
        /**
         * 
         * @Description: 
         * 在业务处理器处理请求之前被调用 如果返回false 
         * 从当前的拦截器往回执行所有拦截器的afterCompletion(),
         * 再退出拦截器链, 如果返回true 执行下一个拦截器,
         * 直到所有的拦截器都执行完毕 再执行被拦截的Controller
         * 然后进入拦截器链,
         * 从最后一个拦截器往回执行所有的postHandle()
         * 接着再从最后一个拦截器往回执行所有的afterCompletion()
         * 
         * @param  request
         * 
         * @param  response
         * 
         * @return: boolean
         * 
         * @author: SongJia
         * 
         * @date: 2016-6-27 下午4:17:51
         * 
         */
        public boolean preHandle(HttpServletRequest request,
                HttpServletResponse response, Object handler) throws Exception {
            response.setHeader("Access-Control-Allow-Origin", "*");
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
            response.setHeader("Access-Control-Max-Age", "3600");
            response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
            return true;
        }
    
        // 在业务处理器处理请求执行完成后,生成视图之前执行的动作
        public void postHandle(HttpServletRequest request,
                HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
    
        }
    
        /**
         * 
         * @Description:
         * 在DispatcherServlet完全处理完请求后被调用
         * 当有拦截器抛出异常时,
         * 会从当前拦截器往回执行所有的拦截器的afterCompletion()
         * 
         * @param request
         * 
         * @param response
         * 
         * @param handler
         * 
         * @param ex
         * 
         * @author: SongJia
         * 
         * @date: 2016-6-27 下午4:27:51
         * 
         */
        public void afterCompletion(HttpServletRequest request,
                HttpServletResponse response, Object handler, Exception ex)
                throws Exception {
    
    
        }
    
    }
    

      

    二 applicationContext.xml中的配置

    <mvc:interceptors>
               <mvc:interceptor>
               <mvc:mapping path="/**" />
               <bean class="com.wiimedia.controller.CommonInterceptor">
               <property name="excludedUrls">
                <list>
                    <value>/</value>
                </list>
               </property>
               </bean>
            </mvc:interceptor>
    </mvc:interceptors>
    

      

  • 相关阅读:
    吴恩达机器学习笔记 —— 19 应用举例:照片OCR(光学字符识别)
    吴恩达机器学习笔记 —— 17 推荐系统
    吴恩达机器学习笔记 —— 13 支持向量机
    吴恩达机器学习笔记 —— 15 降维
    SAP MM 无价值物料管理的一种实现思路
    第一节 电商
    e3mall_day09
    activemq整合spring的配置
    log4j简介
    ActiveMQ的入门使用
  • 原文地址:https://www.cnblogs.com/Matchman/p/7380010.html
Copyright © 2011-2022 走看看