SpringMvc 处理json 国际化 文件上传 拦截器 异常

目录

 

1、处理Json的过程

3、文件上传

4、拦截器

5、异常处理


1、处理Json的过程

SpringMvc 处理json 国际化 文件上传 拦截器 异常_第1张图片

核心是转换器HttpMessageConverter

1.1 HttpMessageConverter接口

HttpMessageConverter 是 Spring3.0 新添加的一个接口,负责将请求信息转换为一个对象(类型为 T),将对象(类型为 T)输出为响应信息

同时,框架内部也为我们准备好了实现类(也允许我们添加第三方实现类,比如我们用json,就需要添加jackson jar包,最后就是json实现类)

SpringMvc 处理json 国际化 文件上传 拦截器 异常_第2张图片

使用 HttpMessageConverter 将请求信息转化并绑定到处理方法的入 参中或将响应结果转为对应类型的响应信息,Spring 提供了两种途径(就是我们需要做的事情):

①注解法: 使用 @RequestBody / @ResponseBody   对处理方法进行标注   (普通的回显内容)
②入参法:  使用 HttpEntity / ResponseEntity 作为处理方法的入参或返回值 (一般用于文件下载效果)

    当控制器处理方法使用到 @RequestBody/@ResponseBody或HttpEntity/ResponseEntity 时, Spring 首先根据请求头或响应头的Accept 属性选择匹配的 HttpMessageConverter, 进而根据参数类型或泛型类型的过滤得到匹配的 HttpMessageConverter, 若找不到可用的HttpMessageConverter 将报错

SpringMvc 处理json 国际化 文件上传 拦截器 异常_第3张图片

SpringMvc 处理json 国际化 文件上传 拦截器 异常_第4张图片

 

案例演示1:用ajax技术处理(页面不发生变化,需要通过Js向服务端发送请求)前后端传输Json对象( 使用 @RequestBody / @ResponseBody )

非常简单,只需要在方法上加入@ResponseBody注解

处理JSON具体步骤:

(1)加入jar包

(2)编写目标方法,使其返回JSON对应的对象或集合(不是java类型的,可以被js解析后显示给客户)

(3)在方法上添加@ResponseBody注解

SpringMvc 处理json 国际化 文件上传 拦截器 异常_第5张图片

 

回到主页面input.jsp,我们用jQuery来写ajax代码简洁的多。首先就要导入jquery和js,然后写好访问代码



Insert title here





	List All Employees
	

Test Json

进入服务端,springmvctest.java类  在处理json的方法上,添加一个@ResponseBody属性,就可以返回一个集合,获取employee的所有信息

package com.atguigu.springmvc.test;

@Controller
public class SpringMVCTest {
    @Autowired
	private EmployeeDao employeeDao;

    
    @ResponseBody
	@RequestMapping("/testJson")
	public Collection testJson(){
		return employeeDao.getAll(); //employeeDao是类的私有属性,而且注入了内容,因此这里才可以直接用
	}
}

这里有入参,用一个@RequestBody标注,可以告诉SpringMvc该用哪一种转换器处理

package com.atguigu.springmvc.test;

@Controller
public class SpringMVCTest {
    @Autowired
	private EmployeeDao employeeDao;

    
   @ResponseBody
   @RequestMapping("/testHttpMessageConverter")
   public String testHttpMessageConverter(@RequestBody String body){
		System.out.println(body);
		return "helloworld! " + new Date();
	}

}

案例演示2:下载效果(使用HttpEntity / ResponseEntity

进入index.jsp


你可能感兴趣的:(springmvc)