springmvc异常拦截器
来源:互联网 发布:交易数据和交互数据 编辑:程序博客网 时间:2024/06/05 22:30
springmvc异常拦截器
- 列表内容
实现HandlerExceptionResolver接口
package com.gaofei.web.exception;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.PriorityOrdered;import org.springframework.http.HttpStatus;import org.springframework.http.MediaType;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by GaoQingming on 2017/11/9 0009. */public class DefaultExceptionHandler implements HandlerExceptionResolver, PriorityOrdered { Logger logger = LoggerFactory.getLogger(DefaultExceptionHandler.class); public int getOrder() { return 0; } //X-Requested-With:XMLHttpRequest这种就是ajax请求 // public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) { logger.error("系统出错url:{},params:{},userHost:{}",request.getRequestURL(),request.getParameterMap(),request.getRemoteHost(),e); if(isAjax(request)) { ModelAndView modelAndView = new ModelAndView(); /* 使用response返回 */ response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); //设置状态码 response.setContentType(MediaType.APPLICATION_JSON_VALUE); //设置ContentType response.setCharacterEncoding("UTF-8"); //避免乱码 response.setHeader("Cache-Control", "no-cache, must-revalidate"); try { response.getWriter().write("{\"status\":0,\"success\":false,\"msg\":\"" + e.getMessage() + "\"}"); } catch (IOException ex) { logger.error("与客户端通讯异常:"+ ex.getMessage(), ex); } return modelAndView; } else { return new ModelAndView("500"); //这里要加http://,否则会在当前请求下拼接,导致找不到 //return new ModelAndView("redirect:" + "http://www.gaofei.com/dubboweb/login/error"); } } private boolean isAjax(HttpServletRequest request) { String requestType = request.getHeader("X-Requested-With"); if("XMLHttpRequest".equals(requestType)){ return true; //System.out.println("AJAX请求.."); }else{ return false; //System.out.println("非AJAX请求.."); //此时requestType为null } }}
2.配置
<bean id="exceptionHandler" class="com.gaofei.web.exception.DefaultExceptionHandler"/>
阅读全文
0 0
- springmvc异常拦截器
- SpringMVC自定义拦截器与异常处理
- SpringMVC自定义拦截器与异常处理
- SpringMVC Controller异常拦截@ControllerAdvice
- [SpringMVC] SpringMVC拦截器
- springmvc 异常处理、文件上传以及拦截器相关知识
- 四.SpringMVC中的 拦截器与异常处理
- Springmvc拦截器和异常处理(九)
- SpringMVC-----9、SpringMVC拦截器
- springMVC—springMVC拦截器
- springMVC 拦截器
- SpringMVC—拦截器
- springmvc 拦截器配置
- SpringMvc拦截器
- SpringMvc 拦截器
- springMVC 拦截器
- springmvc登录拦截器
- springMVC之拦截器
- 将后台ajax请求的数据打包写入文件
- dfdfjdjj
- 在Salesforce中使用Code Lock记录或判断记录是否被锁定及异常处理
- java集合框架和Iterator迭代器相关方法
- 远程访问mysql只显示test和information_schema两个库
- springmvc异常拦截器
- 20个命令行工具监控 Linux 系统性能
- Linux趣事 -- (2.2)学生信息管理系统
- 第8章 基本UDP套接字编程
- C++调用Python浅析
- Codeforces-652D : Nested Segments(线段树)
- 开关VoLTE流程分析(二)
- 递归
- Android java.util.ConcurrentModificationException异常解决方法