1、controller层的请求都已.do结束
package com.example.demo.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api("SampleController相关的api")
public class SampleController {
@ApiOperation(value = "home", notes = "home")
@ApiImplicitParam(name = "name", value = "姓名", required = true, dataType = "String")
@RequestMapping(value = "/home.do",method = RequestMethod.GET)
public String home(String name) {
String result="controller:Hello " + name;
System.out.println("");
return result;
}
}
2、过滤器中添加判断
package com.example.demo.filter;
import com.example.demo.wrapper.ResponseWrapper;
import org.apache.commons.lang.StringUtils;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
@Component
public class ResponseFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
String URL = request.getRequestURL().toString();
if (URL.indexOf(".do")<0) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
ResponseWrapper responseWrapper = new ResponseWrapper((HttpServletResponse) servletResponse);
filterChain.doFilter(servletRequest, responseWrapper);
String contentType = responseWrapper.getContentType();
byte[] content = responseWrapper.getResponseData();
String str = "";
if (StringUtils.isNotBlank(contentType) && (contentType.contains(MediaType.APPLICATION_JSON_VALUE) || contentType.contains(MediaType.TEXT_HTML_VALUE))) {
str = new String(content);
str = str + "加密";
System.out.println("filter:" + str);
HttpServletResponse response = (HttpServletResponse) servletResponse;
writeResponse(response, 200, str);
}
}
}
public static void writeResponse(HttpServletResponse response, int status, String json) {
try {
response.reset();//很重要
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setContentType("application/json;charset=UTF-8");
response.setStatus(status);
response.getWriter().write(json);
} catch (IOException e) {
e.printStackTrace();
}
}
}