栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring MVC(二)—不同的返回值类型、Json处理(jackson、gson、fastjson)、sessionAttributes——把属性存入 session 中、全局异常处理(三种方式)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring MVC(二)—不同的返回值类型、Json处理(jackson、gson、fastjson)、sessionAttributes——把属性存入 session 中、全局异常处理(三种方式)

Spring MVC(二)—— 一、不同的返回值类型 1、返回值为 void


2、返回值为 字符串

返回值为字符串,主要有三种情况:

方法返回值为字符串:

    重定向 / 服务端跳转逻辑视图名真的字符串

当返回的字符串有前缀时,代表不同的功能:
1、forward
2、redirect

总的功能看下图:

可以看到这里返回字符串 01 返回的是 名称为 01 的页面,如果就是想要返回字符串 01 呢?可以通过注解 @ResponseBody 来返回:

换句话说加了这个注解,你返回什么它就显示什么。如果每个方法都要加上,就会很麻烦,可以加在类上面:

二、Json处理

1、jsckson a、jsckson的使用

Spring MVC 怎么接收跟发送 json 格式的对象呢?

首先先导入依赖:

然后是 java 代码:

然后看下结果:

可以看到 json 格式的返回成功了,但是时间的格式不对,需要格式化:

上图中,可以看到本来应该是 username 的字段,显示为 name,可以通过注解,修改生成后的 json 格式显示的属性名,让本来 username 改名为 name:

MVC的底层还是 ObjectMapper 来转换 json 格式和对象。

b、xml 配置 jackson 自定义转换逻辑

如果不写注解,可以通过 xml 配置去完成 json 格式的转换:

c、把 json 格式转换为对象


注意:必须传进来的是 json 格式,而不是键值对方式。

2、gson 的使用 a、依赖导入

然后是 web.xml 配置:

b、格式化

首先就在 java 代码处新建一个对象:

然后是 xml 配置:

gson 主要是安卓用的多

3、fastjson

fastjson 因为是引入外部的依赖,所以一定需要自己手动配置 httpMessageConverter 。

xml 配置:

java 代码没有变化。

如果有报错,那就是需要加上这个玩意:

4、json 的一些问题

上一篇博客中,有直接返回字符串的案例,如果是中文的情况下可能会有乱码,解决方式如下:

5、静态资源

静态资源,比如:html、css、js、图片、mp3、mp4,该怎么放呢( jsp 是动态资源)?

静态资源默认情况下是访问不到的,因为拦截规则写了 / ,意思是拦截所有请求,包括静态资源。

解决办法有三种:

a、办法一 —— *.action


可以给所有请求加个 action,这样依赖静态资源就不会拦截了,但是弊端也很明显,所有接口都要改。

b、办法二——默认处理器处理

这里得是一个 / 。

就只需要改动这么点,就能访问到静态资源。

c、办法三——路径匹配(推荐)

三、sessionAttributes——把属性存入 session 中

@sessionAttributes 这个注解能够把属性存入到 session 中,同样的,也有方法自动从 session 中取出来:

1、存属性

2、取属性


注意:如果 session 中没有对应的属性,是会报错的。

3、移除属性

四、全局异常处理

异常不能像平时那样贪方便直接各种 try…catch 处理,要有地方专门统一的处理,用的还是 AOP 那套。

1、前期准备

依赖导入:

java代码:

xml 文件配置:

web xml 文件配置:

2、方式一——实现 HandlerExceptionResolver 接口(推荐)

创建一个类,并实现 HandlerExceptionResolver:

jsp 页面:

然后效果:

3、方式二——注解 @ControllerAdvice(推荐)


然后效果:

这个方式的好处是一个类可以定义很多个处理方法。

4、方式三—— spring-servlet.xml 文件配置

效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号