package me.test.first.spring.rs.controller; import java.util.LinkedHashMap; import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class ErrorController { private static final Logger logger = LoggerFactory.getLogger(ErrorController.class); @RequestMapping("/error") @ResponseBody public Map<String, Object> handle(HttpServletRequest request, HttpServletResponse resp) { if (StringUtils.isEmpty(resp.getHeader("Cache-Control"))) { resp.setHeader("Cache-Control", "no-cache, no-store"); } Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("status", request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE)); map.put("reason", request.getAttribute(RequestDispatcher.ERROR_MESSAGE)); if (logger.isDebugEnabled()) { logger.debug((String) request.getAttribute(RequestDispatcher.ERROR_MESSAGE), (Exception) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION)); } return map; } }