1.配置文件注入Bean

 

 

2.拦截器类

 

package com.proengine.partner.common.interceptor;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.PrintWriter;

/**

* @Author: SXD

* @Description: 拦截器

* @Date: create in 2020/1/7 15:47

*/

public class PromotionStoreAuthInterceptor extends BaseController implements HandlerInterceptor {

/**

* 该方法在进入控制器的处理请求方法前执行,其返回值表示是否中断后续操作,返回 true 表示继续向下执行,返回 false 表示中断后续操作。

*/

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

Map parameterMap = request.getParameterMap();//获取请求参数

StringBuilder errMsg = new StringBuilder();

if (errMsg.length() > 0 ){

response(request,response,errMsg.toString());

return false;//拦截请求

}

return true;//放过请求

}

/**

* 该方法在控制器的处理请求方法调用之后、解析视图之前执行,可以通过此方法对请求域中的模型和视图做进一步的修改。

*/

@Override

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

/**

* 该方法在控制器的处理请求方法执行完成后执行,即视图渲染结束后执行,可以通过此方法实现一些资源清理、记录日志信息等工作。

*/

@Override

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}

//返回拦截消息给前端,解决跨域,编码问题

private void response(HttpServletRequest request, HttpServletResponse response, String message) throws Exception{

String origin = request.getHeader("Origin");

if (StringUtils.isNotBlank(origin)) {

if (origin.toLowerCase().indexOf(".XXX.com") > 0) {

response.setHeader("Access-Control-Allow-Origin", origin); // 允许访问的域

response.setHeader("Access-Control-Allow-Methods", "POST,GET");// 允许GET、POST的外域请求

response.setHeader("Access-Control-Allow-Credentials", "true"); // 允许请求带cookie到服务器

response.setContentType("text/html; charset=utf-8"); // 设定JSON格式标准输出、及编码

}

}

PrintWriter pw = response.getWriter();

pw.write(JSON.toJSONString(message));

pw.flush();

pw.close();

}

}

View Code

 

 

 

 

参考地址:http://c.biancheng.net/view/4431.html

查看原文