JSON数据交互
Json概述
Json是一种轻量级的数据交换格式。它是基于javaScript的一个子集,使用了C、C++、java、C#、Python、JavaScript等其他语言的约定,采用完全独立于编程语言的文本格式来存储和表示数据。这些特性使json成为理想的数据交互语言。
Json在线解析网址:
实例:
{
"name":"赵云",
"hobby":["篮球","足球","棒球"]
}
解析结果:
{
"name":"赵云",
"hobby":[
"篮球",
"足球",
"棒球"
]
}
Json数据转换
为了实现浏览器与控制器类(Controller)之间的数据交互,Spring提供了一个HttpMessageConverter<T>接口来完成此项工作。该接口主要用于将请求信息中的数据转换为一个类型为T的对象,并将类型为T的对象绑定到请求方法的参数中,或者将对象转换为响应信息传递给浏览器显示
提供了开源jar包:
相关注解:
@RequestBody:用于将请求体中的数据绑定到方法的形参中。
@ResponseBody:用于直接返回return对象。该注解用在方法上。
实例代码:
编写配置文件:
编写Controller代码:
在前端jsp中引入js
编写ajax代码
编写form表单
注意:
在ajax中三个重要的属性:
data:即请求时携带的数据,当使用JSON格式时,要注意编写规范
contentType:当请求数据为JSON格式时,值必须为“application/json”
datatype:当响应数据为JSON时,可以定义dataType属性,并且值必须为json,其中dataType:”json”可以省略不写,页面会自动识别响应的数据格式
Restful支持
Restful可以将它理解为一个软件架构设计风格
实例代码:
拦截器
概述:SpringMVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并做响应的处理,例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。
实例代码:
// 定义一个拦截器
public class CustomerInterceptor implements HandlerInterceptor{
/*
* 该方法会在整个请求完成,即视图渲染结束之后执行,可以通过此方法实现一些资源清理、记录日志信息等工作。
*
*/
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
/*
* 该方法会在控制器方法调用之后,且解析视图之前执行。可以通过此方法对请求域中的模型和视图做进一步修改。
*
*/
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
/*
* 该方法会在控制器方法前执行,其返回值表示是否中断后续操作。当其返回值为true时,表示继续向下执行;当其返回值为false时,会中断后续
* 所有操作。
*/
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
// TODO Auto-generated method stub
return false;
}
}