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

延安市住建建设网站广州模板建站平台

延安市住建建设网站,广州模板建站平台,购物网站模板下载,seo排名助手文章目录 一、Jackson1.1 Jackson是什么1.2 常用注解1.3 实例1.3.1导入依赖1.3.2 配置spring-mvc.xml1.3.3 JsonController.java 二、Spring MVC异常处理机制2.1 使用原因2.2 SpringMVC异常处理2.2.1 异常处理机制流程图2.2.2 异常处理的三种方式 一、Jackson 1.1 Jackson是什… 文章目录 一、Jackson1.1 Jackson是什么1.2 常用注解1.3 实例1.3.1导入依赖1.3.2 配置spring-mvc.xml1.3.3 JsonController.java 二、Spring MVC异常处理机制2.1 使用原因2.2 SpringMVC异常处理2.2.1 异常处理机制流程图2.2.2 异常处理的三种方式 一、Jackson 1.1 Jackson是什么 在Java中Jackson是一个流行的开源库用于处理JSON数据。它提供了一组功能强大的API可以将Java对象序列化为JSON格式或将JSON数据反序列化为Java对象。Jackson库提供了灵活的方式来处理JSON数据包括读取、写入、转换和操作JSON对象。它是Java开发人员在处理JSON数据时的常用工具之一。 1.2 常用注解 Jackson库提供了一些常用的注解用于在Java对象和JSON数据之间进行序列化和反序列化的映射。以下是一些常用的Jackson注解 JsonProperty用于指定Java对象属性与JSON字段之间的映射关系JsonFormat用于指定日期、时间等特殊类型属性的格式化方式。JsonIgnore用于忽略某个属性不进行序列化和反序列化。 JsonInclude用于控制在序列化过程中是否包含某个属性。JsonAlias用于指定多个JSON字段名与Java对象属性之间的映射关系。JsonCreator用于指定一个静态工厂方法或构造函数用于反序列化JSON数据。JsonAnyGetter和JsonAnySetter用于处理动态属性允许将未映射到Java对象属性的JSON字段读取和写入。 1.3 实例 1.3.1导入依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.9.3/version /dependency dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.9.3/version /dependency dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-annotations/artifactIdversion2.9.3/version /dependency 1.3.2 配置spring-mvc.xml bean classorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapterproperty namemessageConverterslistref beanmappingJackson2HttpMessageConverter//list/property /bean bean idmappingJackson2HttpMessageConverter classorg.springframework.http.converter.json.MappingJackson2HttpMessageConverter!--处理中文乱码以及避免IE执行AJAX时返回JSON出现下载文件--property namesupportedMediaTypeslistvaluetext/html;charsetUTF-8/valuevaluetext/json;charsetUTF-8/valuevalueapplication/json;charsetUTF-8/value/list/property /bean1.3.3 JsonController.java RequestMapping(/queryListBooks)ResponseBodypublic ListBook queryListBooks(Book book,HttpServletRequest request){PageBean pageBeannew PageBean();pageBean.setRequest(request);ListBook books bookService.queryBookPager(book, pageBean);return books;}; RequestMapping(/querySingleBook)ResponseBodypublic Book querySingleBook(Integer bookId){Book book bookService.selectByPrimaryKey(bookId);book.setDate(new Date());return book;}RequestMapping(/querySingleMap)ResponseBodypublic MapString, Object querySingleMap(Integer bookId){return bookService.querySingleMap(bookId);} RequestMapping(/queryMapList)ResponseBodypublic ListMapString, Object queryMapList( ){return bookService.queryBookAll();} RequestMapping(/queryString)ResponseBodypublic String queryString(){return book/bookList;}二、Spring MVC异常处理机制 2.1 使用原因 我们知道系统中异常包括编译时异常和运行时异常RuntimeException前者通过捕获异常从而获取异常信息后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中不管是(dao/mapper)层、service层还是controller层都有可能抛出异常。 而在Spring MVC中提供了一个通用的异常处理机制它提供了一个成熟、简洁并且清晰的异常处理方案。当使用Spring MVC开发Web应用时利用这套现成的机制进行异常处理也更加自然并且高效。 2.2 SpringMVC异常处理 2.2.1 异常处理机制流程图 系统的Dao(mapper)、Service、Controller出现都通过throws Exception向上抛出最后SpringMVC前端控制器交由异常处理器进行异常处理如下图 2.2.2 异常处理的三种方式 1. 使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver SpringMVC中自带了一个异常处理器叫SimpleMappingExceptionResolver该处理器实现了HandlerExceptionResolver 接口全局异常处理器都需要实现该接口 1配置SpringMVC的简单的异常处理器 bean classorg.springframework.web.servlet.handler.SimpleMappingExceptionResolver!-- 定义默认的异常处理页面 --property namedefaultErrorView valueerror/!-- 定义异常处理页面用来获取异常信息的变量名也可不定义默认名为exception -- property nameexceptionAttribute valueex/!-- 定义需要特殊处理的异常这是重要点 -- property nameexceptionMappingsprops !--异常类型 错误视图-- prop keyjava.lang.RuntimeExceptionerror/prop/props!-- 还可以定义其他的自定义异常 --/property/bean 2方法中抛出此异常 RequestMapping(/querySingleBook)ResponseBodypublic Book querySingleBook(Integer bookId){Book book bookService.selectByPrimaryKey(bookId);if(bookId100)throw new RuntimeException(书本编号大于100,异常抛出);book.setDate(new Date());return book;}2. 实现Spring的异常处理接口HandlerExceptionResolver自定义自己的异常处理器 (1) 实现HandlerExceptionResolver接口 package com.xqx.exception;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;/*** SpingMVC提供的第二种全局异常处理方式 ,实现HandlerExceptionResolver接口*/ Component public class GlobalException implements HandlerExceptionResolver {/**** param httpServletRequest* param httpServletResponse* param o 异常处理的目标* param e 异常处理的类型* return*/Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView mvnew ModelAndView();mv.setViewName(error);//判断异常的分类if(e instanceof RuntimeException){RuntimeException ex(RuntimeException)e;System.out.println(ex.getMessage());mv.addObject(msg,ex.getMessage());}return mv;} }2创建异常类 package com.xqx.exception;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;/*** SpingMVC提供的第二种全局异常处理方式 ,实现HandlerExceptionResolver接口*/ Component public class GlobalException implements HandlerExceptionResolver {/**** param httpServletRequest* param httpServletResponse* param o 异常处理的目标* param e 异常处理的类型* return*/Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView mvnew ModelAndView();mv.setViewName(error);//判断异常的分类if(e instanceof RuntimeException){RuntimeException ex(RuntimeException)e;System.out.println(ex.getMessage());mv.addObject(msg,ex.getMessage());}return mv;} }3方法中抛出此异常 RequestMapping(/querySingleBook)ResponseBodypublic Book querySingleBook(Integer bookId){Book book bookService.selectByPrimaryKey(bookId);if(bookId100)throw new BusinessException(书本编号大于100,异常抛出);book.setDate(new Date());return book;}3. 使用ControllerAdvice ExceptionHandler 1 package com.xqx.exception;import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView;import java.util.HashMap; import java.util.Map;/*** SpingMVC提供的第三种种全局异常处理方式* 1ControllerAdvice ExceptionHandler* 2RestControllerAdvice ExceptionHandler* RestControllerAdvice Controller ResponseBody 返回JSON的数据格式绕开视图解析器*/ ControllerAdvice public class GlobalException2{ExceptionHandlerpublic ModelAndView exceptionHandler(Exception e){ModelAndView mvnew ModelAndView();//设置错误页面mv.setViewName(error);//判断异常类型if(e instanceof BusinessException){BusinessException ex(BusinessException)e;mv.addObject(msg,系统繁忙请稍后再试.......);}mv.setView(new MappingJackson2JsonView());return mv;}}(2) 返回JSON格式 package com.xqx.exception;import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView;import java.util.HashMap; import java.util.Map;/*** SpingMVC提供的第三种种全局异常处理方式* 1ControllerAdvice ExceptionHandler* 2RestControllerAdvice ExceptionHandler* RestControllerAdvice Controller ResponseBody 返回JSON的数据格式绕开视图解析器*/ RestControllerAdvice public class GlobalException2{ExceptionHandlerpublic ModelAndView exceptionHandler(Exception e){ModelAndView mvnew ModelAndView();mv.setViewName(error);//判断异常类型if(e instanceof BusinessException){BusinessException ex(BusinessException)e;mv.addObject(msg,系统繁忙请稍后再试.......);}//强制更换视图解析器 不跳页面mv.setView(new MappingJackson2JsonView());return mv;}}(3) 返回异常信息和状态码 package com.xqx.exception;import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView;import java.util.HashMap; import java.util.Map;/*** SpingMVC提供的第三种种全局异常处理方式* 1ControllerAdvice ExceptionHandler* 2RestControllerAdvice ExceptionHandler* RestControllerAdvice Controller ResponseBody 返回JSON的数据格式绕开视图解析器*/ RestControllerAdvice public class GlobalException2{ExceptionHandlerpublic MapString, Object exceptionHandler(Exception e){MapString, Object jsonnew HashMap();//判断异常类型if(e instanceof BusinessException){json.put(msg,系统繁忙请稍后再试.......);json.put(code,500);}return json;} }
http://www.tj-hxxt.cn/news/220539.html

相关文章:

  • 网站建设属于经营什么范围公司网站管理制度
  • 东莞网站建设都用哪个好外包是什么意思
  • 如何给自己的网站做优化公司人员管理系统
  • 不同网站相似的页面百度收录吗建立个机密网站
  • 搭建cms网站我市精神文明建设的门户网站
  • 资阳地网站seo离婚协议书正规模板
  • 2015做那个网站致富好玩的html代码
  • 手机端网站外部链接如何去优化淘宝上如何免费开网店
  • 品牌公司网站建设服装设计师网
  • 网站开发企业需要什么资质电子商务营销策略有哪些
  • 免费建网站 建站之星建个人网站怎么赚钱吗
  • 营销型企业网站一般具有哪些功能上海广告公司排名前十强
  • 做奢侈品的网站做网站怎么上传图片
  • 企业网站建设论文模板聊城网站设计公司
  • 域名弄好了网站怎么建设建立一个公司
  • 宣传网站有哪些wordpress主题太臃肿
  • 为女友做网站临沂河东网站建设
  • 网站建设与管理试卷_做卫生用品都在什么网站
  • 腾讯云可以做网站吗3wordpress标题收起
  • 网站项目的工作流程做网页难吗
  • 北京云建站模板美美淘-专做女鞋拿货选款网站
  • ic商城网站建设南大清涧县住房和成乡建设局 网站
  • 网站设计的流程简答题广西营销型网站建设
  • 网站网页设计平台cms建站详细教程
  • 中职网站建设教学计划东莞网站制作哪里好
  • mp3链接地址制作网站wordpress点击图片悬浮
  • 深圳网站设计服务公wordpress缺少临时文件夹.
  • 淄博著名网站开发方法wordpress淘宝客主题免费下载
  • 房产网站如何做百度关键词快速优化
  • 濮阳市建站公司网站上传文件不大于5M定么做