Ajax的json数据交换

1. AJAXjson数据交互

 

1.1. @RequestBody

@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。

 

@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象进行绑定

1.2. @ResponseBody

@ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端

 

@ResponseBody注解实现将Controller方法返回java对象转换为json响应给客户端。

前台页面:

 

1.3. 请求json,响应json实现:

1.3.1. 加入jar包

如果需要springMVC支持json,必须加入json的处理jar

我们使用Jackson

 

1.3.2. 配置json转换器

Json转换器·在<mvc:annotation-driven />已经内置好了,

如果不使用注解驱动<mvc:annotation-driven />,

就需要给处理器适配器配置json转换器

 

springmvc.xml配置文件中,给处理器适配器加入json转换器:

 

 

2. 拦截器

2.1. 定义

Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。

2.2. 拦截器定义

实现HandlerInterceptor接口,如下:

 

 

 

2.3. 拦截器配置

上面定义的拦截器再复制一份HandlerInterceptor2HandlerInterceptor3

 

springmvc.xml中配置拦截器

 

 

2.4. 正常流程测试

 

 

 

2.4.1. 运行流程

 

 

2.5. 中断流程测试

访问action

 

2.5.1. 运行流程

HandlerInterceptor1的preHandler方法返回false,HandlerInterceptor2返回true,HandlerInterceptor3返回true,运行流程如下:

 

 

 

从日志看出第一个拦截器的preHandler方法返回false后第一个拦截器只执行了preHandler方法,其它两个方法没有执行,第二个拦截器的所有方法不执行,且Controller也不执行了。

 

 

HandlerInterceptor1的preHandler方法返回true,HandlerInterceptor2返回false,

HandlerInterceptor3返回true或false,

运行流程如下:

 

 

 

从日志看出第二个拦截器的preHandler方法返回false后第一个拦截器的postHandler没有执行,第二个拦截器的postHandlerafterCompletion没有执行,且controller也不执行了。

 

总结:

preHandle按拦截器定义顺序调用

postHandler按拦截器定义逆序调用

afterCompletion按拦截器定义逆序调用

 

postHandler在拦截器链内所有拦截器返成功调用

afterCompletion只有preHandle返回true才调用

2.6. 拦截器应用(登录)

2.6.1. 编写登录jsp

 

2.6.2. 用户登陆Controller

 

 

=

2.6.3. 编写拦截器

 

2.6.4. 配置拦截器

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

finbarr45

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值