切记一定在设置response之后获取response.getWriter(),否则乱码
/**
* 在请求处理之前进行调用(Controller方法调用之前)
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token = request.getParameter("token");
if(StringUtils.isEmpty(token)){
//转发
PrintWriter writer = null;
try {
response.setCharacterEncoding(StandardCharsets.UTF_8.displayName());
response.setContentType("application/json; charset=utf-8");
ResponseData<Void> objectResponseData = ResponseData.newInstanceOfExceptionMsg(ExceptionMsg.LOGIN_INVALID_UTOKEN);
String s = JsonUtils.toJSONString(objectResponseData);
//TODO 一定要在response设置后再getWriter() 否则乱码,提前设置全部无效
writer = response.getWriter();
writer.append(s);
writer.flush();
}catch (Exception e){
e.printStackTrace();
}finally {
if (writer != null){
writer.close();
}
}
return false;
}
return true;
}