创新互联建站是一家专注于成都网站制作、成都网站建设与策划设计,昌邑网站建设哪家好?创新互联建站做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:昌邑等地区。昌邑做网站价格咨询:18980820575
一个网站的异常信息作为专业的人士,是不会轻易暴露给用户的,因为那样狠不安全,显得你漏是一回事,只要还是考虑到网站的数据安全问题,下面给大家分享一下一些常见的web层框架是如何处理统一的异常。
之前都是在Struts2的配置文件中配置拦截器来统一处理系统中所有的异常,给大家带点伪代码吧,好歹曾经用过,呵呵。
配置文件配置信息如下:
12 3 4 5 12 136 7 8 119 10 14 15 16 20 21 26/common/error.jsp 17 18/common/refuse.jsp 1927 29/business/{1}/{2}.jsp 28
Java类伪代码如下:
ExceptionInterceptor serialVersionUID = -3570177760250354837L String intercept(ActionInvocation actionInvocation) HttpServletRequest request = String result = result = } ExceptionResultInfo exceptionResultInfo = (e exceptionResultInfo = } (e UnknownAccountException || e ResultInfo resultInfo = ResultUtil.createFail("用户名或密码错误!" exceptionResultInfo = } (e ResultInfo resultInfo = ResultUtil.createFail("没有权限!" exceptionResultInfo =
首先说说springmvc处理统一异常的方式,目前就我了解的有三种:直接使用springmvc提供的异常处理器、自己手动配置自定义全局异常处理器和使用注解(该种方式没用过)。
先说一下第一种吧,它是直接在springmvc的核心配置文件中配置springmvc自身提供的简单异常处理器。
1 2
第二种就是自己定义一个异常处理器,然后通过在springmvc的核心配置文件中配置即可。
自定义异常处理器类伪代码如下:
1 /** 2 * 自定义全局异常处理器: 3 */ 4 public class CustomExceptionResolver implements HandlerExceptionResolver { 5 @Override 6 public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, 7 Exception ex) { 8 9 ex.printStackTrace();10 CustomException customException = null;11 //如果抛出的是自定义的异常则直接转换12 if(ex instanceof CustomException) {13 customException = (CustomException) ex;14 } else {15 //如果抛出的不是自定义的异常则重新构造一个未知错误异常16 new SysException("系统正在维护中,请稍后重试...");17 }18 //向前台返回错误信息19 ModelAndView modelAndView = new ModelAndView("exception");20 modelAndView.addObject("message", customException.getMessage());21 return modelAndView;22 }23 }
springmvc配置文件配置信息如下(各位在迫不得已的情况复制的时候记得修改一下包名):
1 2