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

广州模板建站平台医院诊所响应式网站模板

广州模板建站平台,医院诊所响应式网站模板,权威的网站建设,什么是营销型手机网站建设文章目录 一、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.hkea.cn/news/14419130/

相关文章:

  • 怎么免费永久创建网站无广告自己做的网站怎么改电话
  • 旅行社网站模版网站建设推广好做吗
  • 沈阳企业网站制作公司大良网站建设机构
  • 深圳做公司网站公司建设网站费用怎么记账
  • 海淀周边网站建设网站建设一般报价多少
  • 潍坊网站网站建设wordpress页面加载动画插件
  • 公司简介网站怎么做个人如何网站备案
  • 沈阳网站制作系统网校网站建设多少钱
  • 了解深圳网站定制开发wordpress后台变慢
  • 盐亭县建设局网站wordpress如何修改html
  • 好看又免费的图片素材网站房屋设计公司网站
  • 有了源码可以做网站吗wordpress简约模板
  • 深圳企业建站招聘小程序制作价格北京华网天下实惠
  • win2008 iis建网站天津优化加盟
  • 花店网站建设论文河南网站建设途径有什么
  • 梧州做网站的公司汉字叔叔花了多少钱做网站
  • 网站的建设要多少钱做网站成为首富的外国人
  • 浅谈顺丰的电子商务网站建设网站黑白了
  • 英文网站google推广淄博网站建设至信网络
  • 新乡免费网站建设推广网址
  • WordPress搭建交互式网站西安市建设工程
  • 承接网站建设 优帮云国产做的视频网站
  • 外贸网站建设 惠州杭州网站网络 科技公司
  • 源码 网站建设教程如何做谷歌网站优化
  • vs做的网站如何使用工程公司账务处理分录
  • 公司网站建设注意什么电商设计类插画
  • 网站栏目模块徐州网站app开发
  • 北京比较好的网站开发公司软文营销的特点有哪些
  • 做采集网站的方法国外免费网站域名服务器入口
  • 顺德外贸网站建设网站访问不了的原因