当前位置: 首页 > news >正文

微博营销方案seo网站排名优化工具

微博营销方案,seo网站排名优化工具,用名字做头像是什么网站,新塘做网站公司目录 一、单个控制器异常处理 1.1 控制器方法 1.2 编写出错页面 1.3 测试结果 二、全局异常处理 2.1 一个有异常的控制器类 2.2 全局异常处理器类 2.3 测试结果 三、自定义异常处理器 3.1 自定义异常处理器 3.2 测试结果 往期专栏&文章相关导读 1. Maven系列…

目录

一、单个控制器异常处理

1.1 控制器方法

1.2 编写出错页面

1.3 测试结果

二、全局异常处理

2.1 一个有异常的控制器类

2.2 全局异常处理器类

2.3 测试结果 

三、自定义异常处理器

3.1 自定义异常处理器

3.2 测试结果

往期专栏&文章相关导读 

1. Maven系列专栏文章

2. Mybatis系列专栏文章

3. Spring系列专栏文章

4. Spring MVC系列专栏文章   


一、单个控制器异常处理

在系统当中, Dao、Service、Controller层代码出现都可能抛出异常。如果哪里产生异常就在哪里处理,则会降低开发效率。所以一般情况下我们会让异常向上抛出,最终到达DispatcherServlet中,此时SpringMVC提供了异常处理器进行异常处理,这样可以提高开发效率

处理单个Controller的异常:

1.1 控制器方法

package com.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class MyController {// 处理单个Controller异常@RequestMapping("/t1")public String t1(){String str = null;// str.length();// int flag = 1/0;int []arr = new int[1];arr[2] = 10;return "index";}/*** 异常处理方法* @param ex 异常对象* @param model 模型对象* @return*/// 添加@ExceptionHandler,表示该方法是处理异常的方法,属性为处理的异常类@ExceptionHandler({java.lang.NullPointerException.class,java.lang.ArithmeticException.class})public String exceptionHandler1(Exception ex, Model model){// 向模型中添加异常对象model.addAttribute("msg",ex);// 跳转到异常页面return "error";}// 方法一不能处理的异常交给方法二处理@ExceptionHandler({java.lang.Exception.class})public String exceptionHandler2(Exception ex,Model model){model.addAttribute("msg",ex);return "error2";}
}

从控制器方法我们可以知道,如果出现算术错误类的话则返回错误页面1,否则都返回给错误页面2.。并且把错误信息传到前端。

1.2 编写出错页面

这里编写两个错误页面,为了是测试控制器是否成功知道出现的是哪一个错误。

错误页面1

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>出错了!</title>
</head>
<body>
<h3>ERROR 发生异常! ${msg}</h3>
</body>
</html>

严重错误页面2

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>出错了!</title>
</head>
<body>
<h3>ERROR2 发生严重异常! ${msg}</h3>
</body>
</html>

1.3 测试结果

OK,这里测试运行一下,上面的应该返回的是错误页面2,因为出现的错误是数组越界访问。

OK,我们再换一个错误,注释掉以下几行,再重新运行一遍是否跳到错误页面1,因为这里出现的算术错误。

OK,可以看到这里确实返回错误页面1出来了

二、全局异常处理

在控制器中定义异常处理方法只能处理该控制器类的异常,要想处理所有控制器的异常,需要定义全局异常处理类。如何体现这个全局异常处理呢,我们需要新建一个异常类,一个全局异常处理类,错误页面就按照上面两个即可。

2.1 一个有异常的控制器类

这里就用一个数组越界的错误类。

package com.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;// 编写另一个有异常的控制器类
@Controller
public class MyController2 {@RequestMapping("/t2")public String t1(){String str = null;// str.length();// int flag = 1/0;int []arr = new int[1];arr[2] = 10;return "index";}
}

2.2 全局异常处理器类

从控制器方法我们可以知道,如果出现算术错误类的话则返回错误页面1,否则都返回给错误页面2.。并且把错误信息传到前端。

package com.example.controller;import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;// 全局异常处理类:添加@ControllerAdvice
@ControllerAdvice
public class GlobalExceptionHandler {/*** 异常处理方法* @param ex 异常对象* @param model 模型对象* @return*/// 添加@ExceptionHandler,表示该方法是处理异常的方法,属性为处理的异常类@ExceptionHandler({java.lang.NullPointerException.class,java.lang.ArithmeticException.class})public String exceptionHandler1(Exception ex, Model model){// 向模型中添加异常对象model.addAttribute("msg",ex);// 跳转到异常页面return "error";}// 方法一不能处理的异常交给方法二处理@ExceptionHandler({java.lang.Exception.class})public String exceptionHandler2(Exception ex,Model model){model.addAttribute("msg",ex);return "error2";}
}

2.3 测试结果 

OK,访问路径:http://localhost:8080/t2

OK,确实和我们预料的一样,全局异常处理类发挥了作用。

三、自定义异常处理器

以上方式都是使用的SpringMVC自带的异常处理器进行异常处理,我们还可以自定义异常处理器处理异常:

3.1 自定义异常处理器

package com.example.controller;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;// 自定义异常处理器实现HandlerExceptionResolver接口,并放入Spring容器中
@Component
public class MyExceptionHandler implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView modelAndView = new ModelAndView();if(e instanceof NullPointerException){modelAndView.setViewName("error");}else {modelAndView.setViewName("error2");System.out.println("我自己的异常处理器");}modelAndView.addObject("msg",e);return modelAndView;}
}

3.2 测试结果

OK,为了体现自定义的异常处理器,我把全局异常处理器删除再重新启动服务器,访问上面那个有异常控制类。可以看到自定义异常处理类发挥了作用。

往期专栏&文章相关导读 

     大家如果对于本期内容有什么不了解的话也可以去看看往期的内容,下面列出了博主往期精心制作的Maven,Mybatis等专栏系列文章,走过路过不要错过哎!如果对您有所帮助的话就点点赞,收藏一下啪。其中Spring专栏有些正在更,所以无法查看,但是当博主全部更完之后就可以看啦。

1. Maven系列专栏文章

Maven系列专栏Maven工程开发
Maven聚合开发【实例详解---5555字】

2. Mybatis系列专栏文章

Mybatis系列专栏MyBatis入门配置
Mybatis入门案例【超详细】
MyBatis配置文件 —— 相关标签详解
Mybatis模糊查询——三种定义参数方法和聚合查询、主键回填
Mybatis动态SQL查询 --(附实战案例--8888个字--88质量分)
Mybatis分页查询——四种传参方式
Mybatis一级缓存和二级缓存(带测试方法)
Mybatis分解式查询
Mybatis关联查询【附实战案例】
MyBatis注解开发---实现增删查改和动态SQL
MyBatis注解开发---实现自定义映射关系和关联查询

3. Spring系列专栏文章

Spring系列专栏Spring IOC 入门简介【自定义容器实例】
IOC使用Spring实现附实例详解
Spring IOC之对象的创建方式、策略及销毁时机和生命周期且获取方式
Spring DI简介及依赖注入方式和依赖注入类型
Spring IOC相关注解运用——上篇
Spring IOC相关注解运用——下篇
Spring AOP简介及相关案例
注解、原生Spring、SchemaBased三种方式实现AOP【附详细案例】
Spring事务简介及相关案例
Spring 事务管理方案和事务管理器及事务控制的API
Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

4. Spring MVC系列专栏文章   

SpringMVC系列专栏Spring MVC简介附入门案例
Spring MVC各种参数获取及获取方式自定义类型转换器和编码过滤器
Spring MVC获取参数和自定义参数类型转换器及编码过滤器
Spring MVC处理响应附案例详解
Spring MVC相关注解运用 —— 上篇

Spring MVC相关注解运用 —— 中篇

Spring MVC相关注解运用 —— 下篇
Spring MVC多种情况下的文件上传
Spring MVC异步上传、跨服务器上传和文件下载
Spring MVC异常处理【单个控制异常处理器、全局异常处理器、自定义异常处理器】
Spring MVC拦截器和跨域请求
SSM整合案例【C站讲解最详细流程的案例】
http://www.hengruixuexiao.com/news/30622.html

相关文章:

  • 商业网站建设常识北京排名seo
  • 中国海员建设工会网站市场营销方案范文
  • 网站开发留学可以看国外网站的浏览app
  • 那些行业做网站优化的比较多竞价专员是做什么的
  • 2017年最新网站设计风格sem是什么意思?
  • 邯郸网站建设哪家好seo的内容怎么优化
  • 现在企业做门户网站百度站长提交网址
  • 怎么看网站创建者是谁电销外包团队在哪找
  • asp网站伪静态站长之家app
  • 公司变更注册资本需要什么资料西安seo推广优化
  • 网站开发的基本原则哈尔滨最新今日头条新闻
  • 阿胶在那种网站做推广好seo关键词优化最多可以添加几个词
  • 沧州做网站多少钱今天的头条新闻
  • 学做网站好学吗网络优化工程师骗局
  • 手机网页及网站设计百度识图在线识别
  • 大型门户网站建设报价表seo最新技巧
  • 陕西网站建设咨询网络优化推广公司哪家好
  • 做学校网站需要备案么策划营销
  • 学做网站的书哪些好百度人工
  • 擦边球做网站挣钱最近的电脑培训班在哪里
  • 企业登记网上注册百度seo关键词外包
  • 个人网站必须备案吗长沙本地推广平台
  • 上海网站定制团队发帖推广
  • 玉林住房和城乡规划建设委员会网站东莞做网站公司首选
  • 手机单页网站生成系统网站查询站长工具
  • 网站营销推广的公司软件培训机构哪家好
  • 自适应网站建设都找全网天下平原县网站seo优化排名
  • 北京企业网站优化百度推广优化
  • 个体户工商可以做经营性网站吗服务器
  • 政府网站运营方案网站做外链平台有哪些