Web层框架对网站中所有异常的统一处理
2017-05-08 11:47
375 查看
一个网站的异常信息作为专业的人士,是不会轻易暴露给用户的,因为那样狠不安全,显得你漏是一回事,只要还是考虑到网站的数据安全问题,下面给大家分享一下一些常见的web层框架是如何处理统一的异常。 之前都是在Struts2的配置文件中配置拦截器来统一处理系统中所有的异常,给大家带点伪代码吧,好歹曾经用过,呵呵。配置文件配置信息如下:
Java类伪代码如下:
首先说说springmvc处理统一异常的方式,目前就我了解的有三种:直接使用springmvc提供的异常处理器、自己手动配置自定义全局异常处理器和使用注解(该种方式没用过)。 先说一下第一种吧,它是直接在springmvc的核心配置文件中配置springmvc自身提供的简单异常处理器。
第二种就是自己定义一个异常处理器,然后通过在springmvc的核心配置文件中配置即可。自定义异常处理器类伪代码如下:
springmvc配置文件配置信息如下(各位在迫不得已的情况复制的时候记得修改一下包名):
1 <package name="base" extends="struts-default"> 2 <!-- 异常处理 --> 3 <interceptors> 4 <!-- 1.声明自定义异常拦截器 --> 5 <interceptor name="exceptionInterceptor" class="com.it.yycg.framework.exception.ExceptionInterceptor"></interceptor> 6 <!-- 2.声明拦截器栈 --> 7 <interceptor-stack name="customStack"> 8 <interceptor-ref name="exceptionInterceptor"/> 9 <interceptor-ref name="defaultStack"/>10 </interceptor-stack>11 </interceptors>12 <!-- 设置默认执行的拦截器 -->13 <default-interceptor-ref name="customStack"/>14 <!-- 公用的 result -->15 <global-results>16 <result name="error_jsp" >/common/error.jsp</result>17 <!-- 拒绝访问返回页面 -->18 <result name="refuse" >/common/refuse.jsp</result>19 </global-results>20 21 <!-- 配置访问Action返回jsp页面的标签 22 Struts默认执行类ActionSupport中的execute()方法23 class默认ActionSupport24 成功后的返回name默认为success25 -->26 <action name="ui_*_*">27 <result>/business/{1}/{2}.jsp</result>28 </action> 29 </package>
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 <!-- springmvc提供的简单异常处理器 --> 2 <!-- <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 3 定义默认的异常处理页面 4 <property name="defaultErrorView" value="/WEB-INF/jsp/exception.jsp"/> 5 定义异常处理页面用来获取异常信息的变量名,也可不定义,默认名为exception 6 <property name="exceptionAttribute" value="ex"/> 7 定义需要特殊处理的异常,这是重要点 8 <property name="exceptionMappings"> 9 <props>10 <prop key="com.tgsit.cjd.model.CustomException">exception</prop>11 </props>12 还可以定义其他的自定义异常13 </property>14 </bean> -->
第二种就是自己定义一个异常处理器,然后通过在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 <!-- 配置自定义的全局异常处理器 只要实现HandlerExceptionResolver接口就是全局异常处理器-->2 <bean class="com.tgsit.cjd.utils.CustomExceptionResolver"/>
相关文章推荐
- Web层框架对网站中所有异常的统一处理
- Web层框架对网站中所有异常的统一处理
- golang web框架 utron 的异常统一处理
- 在一个网站里有很多aspx页 如何统一处理项目中的所有异常?(面试题)
- Web层框架对网站中所有异常的统一处理
- SSM框架_4(添加log日志管理(aop)+Exception异常统一处理(aop))
- Asp.Net : 捕捉和记录网站中出现的所有未处理错误,抛出详细的页面来源和访问ip,调用的接口方法及异常实例(记事本日志,系统日志及数据库日志)
- spring MVC 统一异常处理(webapi和web分开处理)
- Spring Boot中Web应用的统一异常处理
- Web应用的统一异常处理
- Jersey框架的统一异常处理机制分析
- DVA框架统一处理所有页面的loading状态
- Spring Boot中Web应用的统一异常处理
- Jersey框架的统一异常处理机制
- JSP---web.xml中统一配置全站错误处理页面,提高网站的友好度
- Spring Boot中Web应用的统一异常处理
- Spring Web利用切面统一处理参数校验异常的方法
- Spring Boot中Web应用的统一异常处理
- MVC WebAPI框架里设置异常返回格式统一
- Spring Boot中Web应用的统一异常处理