统计
  • 建站日期:2021-03-10
  • 文章总数:518 篇
  • 评论总数:151 条
  • 分类总数:32 个
  • 最后更新:4月20日
文章 springmvc

springmvc拦截器,异常处理机制,已经拦截器配置,异常处理的配置

梦幻书涯
首页 springmvc 正文
 

 

/* * 拦截器 * 步揍:创建一个类:实现HandlerInterceptor,由于系统内部已经实现了三个办法了,因此我们就重写该办法 * * preHandle(xxx):执行目标办法Controller类里面的办法前执行这个办法 * postHandle(xxx):执行目标Controller类里面的办法后执行这个办法再执行jsp页面的跳转 * afterCompletion(xxx):jsp页面跳转后再执行这个办法 * *<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/interceptor/**"></mvc:mapping> *    <!--            也就是里面的办法会拦截     /user/***     也就是congtroller下user类所有办法都拦截-->

    <!-- exclude:排除

也就是里面的办法不会拦截 /user/*** 也就是congtroller下user类所有办法都不拦截 -->     <!--            <mvc:exclude-mapping path=""/>-->

*</mvc:interceptor> * *</mvc:interceptors> * * * * */

public class RewriteInterceptor implements HandlerInterceptor {

    /*     * previous:前     * post_:后     * preHandle:表示浏览器请求到controller之前执行     * 也就是先执行这个办法再执行控制器Cntroller办法     *     * return true:表示放行,只要放行了,系统就执行这个办法后再执行控制器办法,     *     * 不放行,它就执行这个办法,但不执行控制器办法     * */     @Override     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {         return false;     }     /*      * previous:前      * post_:后      * postHandle:表示执行了控制器办法后再执行这个办法再执行jsp      * controller办法---->postHandle办法---->再跳转到jsp页面      *      * 一般用于传输数据或者什么,跳转页面也可以,也就是controller办法跳转到success      * 但是再这个办法中请求转发到error.jsp,.它就不会跳转到success。jsp页面      * */     @Override     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    /*     * afterCompletion:表示跳转到目标jsp页面再执行这个办法     * 一般用于释放资源和流     *     *     * */     @Override     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }

 

 

 

 

异常处理

 

 

 


/*

<!--    配置异常处理器就跟spring配置一个bean一样-->

    <bean id="exceptionResolver" class="com.sise.exception.ExceptionResolver"></bean>

 

 * 这个是异常处理器必须实现HandlerExceptionResolver,  * 因为你实现了这个类的resolveException(。。。)办法,只要你再springmvc.xml配置了这个异常处理器  * 抛出的异常经过前端控制器后,异常就不会直接抛出到浏览器,而是抛到这个类,也就是异常处理器类  * 从而处理异常,只要异常抛出到这个类必须实现resolveException()这个办法  * 从而我们就需要再这个办法中实现对异常的操作  *  *  * */ public class ExceptionResolver implements HandlerExceptionResolver {

    /*      * Object handler:代表的是异常处理器的对象,很少用到      *      * Exception ex:代表的是抛出的异常,一般我们都会判断是不是我们所配置的自定义的异常信息      * */     @Override     public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception ex) {         DefineException e = null;         System.out.println("resolveException....");         /*         *instanceof

              instanceof是Java中的二元运算符,左边是对象,右边是类;               * 当对象是右边类或子类所创建对象时,返回true;否则,返回false               * https://blog.csdn.net/kuangay/article/details/81563992         *         * */         //这个就是判断这个异常是不是我们自定义的异常,如果是我们就强转成自定义异常类对象,         // 因为我们不知到ex是自定义异常类或者自定义异常类的子类创建,所以我们必须强转         if (ex instanceof DefineException) {             e = (DefineException) ex;         } else {             //如果得到的异常不是自己自定义的异常类的信息,那么我们就自己创建一个             e = new DefineException("系统维护者...");         }         ModelAndView mv = new ModelAndView();         mv.addObject("error",e.getExceptionMsg());//private String exceptionMsg;         mv.setViewName("error");         return mv;     }

 

 

 

 


@Controller @RequestMapping("/exceptionController") public class ExceptionController {

    @RequestMapping("/testDefineException")     public String testDefineException() throws DefineException {         System.out.println("testDefineException.....进行中");         //Ctrl+alt+T快速包裹代码,if while  try catch等         try {             int i=1/0;         } catch (Exception e) {          // e.printStackTrace();          // System.out.println("e.getMessage()="+e.getMessage());//e.getMessage()=/ by zero          // System.out.println("e.getStackTrace()="+e.getStackTrace());//e.getStackTrace()=[Ljava.lang.StackTraceElement;@2d118303            // System.out.println(e.toString());//java.lang.ArithmeticException: / by zero

            System.out.println(e.fillInStackTrace());             throw new DefineException(e.getMessage());         }         return "success";     } } /* * Copyright  1999-2020, CSDN.NET, All Rights Reserved

weixin_38659482

关注

常见的java Exception类型 转载

2018-08-08

weixin_38659482 

码龄3年

关注

一般面试中java Exception(runtimeException )是必会被问到的问题

常见的异常列出四五种,是基本要求。更多的。。。。需要注意积累了

 

常见的几种如下:

 

NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。 IllegalArgumentException - 传递非法参数异常。 ArithmeticException - 算术运算异常 ArrayStoreException - 向数组中存放与声明类型不兼容对象异常 IndexOutOfBoundsException - 下标越界异常 NegativeArraySizeException - 创建一个大小为负数的数组错误异常 NumberFormatException - 数字格式异常 SecurityException - 安全异常 UnsupportedOperationException - 不支持的操作异常

 

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException

Java.lang.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。

java.lang.AssertionError 断言错。用来指示一个断言失败的情况。

java.lang.ClassCircularityError 类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。

java.lang.ClassFormatError 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。

java.lang.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。

java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。

java.lang.IllegalAccessError 违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。

java.lang.IncompatibleClassChangeError 不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。

java.lang.InstantiationError 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.

java.lang.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。 * * * */

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

这篇文章最后更新于2020-8-10,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
SSM文件上传后访问不到图片
« 上一篇
传统文件上传,Springmvc文件上传,跨服务器文件上传,所需要的jar
下一篇 »

发表评论

HI ! 请登录
注册会员,享受下载全站资源特权。
Array

日历

热门文章