SpringMVC框架Day07之ajax和文件上传

2022-07-25,,,,

SpringMVC的AJAX

服务端返回数据是json
页面$.ajax()
三步:
1.导包
jackson-databind
jackson-core
jackson-annotations
2.写配置

3.测试

注解

ajax与@ResponseBody()

@ResponseBody在RequestMapping()之前加,将返回的数据放在响应体中;如果是对象,jackson包自动将对象转为json格式
返回json格式的字符串给浏览器

加@JsonIgnore 在bean中的私有变量 json中数据不显示该变量
preivate Date birth = new Date(); 之前加@JsonFormat(pattern=“yyyy-MM-dd”)指定向浏览器返回json的日期格式

@RepsonseBody()在@RequestMapping之上的作 用:
将返回的数据放在响应体中,不需要getWriter(),向浏览器写html数据,页面单纯返回return后的html脚本

json数据发送给服务器@RequestBody

@RequestBody服务器接受浏览器发送来的json数据和拿到请求体内容

@RequestMapping("/testRespBody")
public String testRespBody(@RequestBody String body){
    System.out.println("post请求的请求体"+body);
    return "success_crud";
}
<head>
    <title>post请求表单</title>
</head>
<body>
<form action="/testRespBody" method="post">
    username:<input type="text" value="shit"> <br>
    password:<input type="password" value="123"> <br>

    <input type="file" name="file">
    <input type="submit">
</form>

@RequestHeader和HttpEntity·<·String>

@RequestHeader一个请求头信息
@HttpEntity获取全部请求头信息,参数携带响应体,响应头,响应状态码

@RequestMapping("/testResponseEntity")
public ResponseEntity<String> testResponseEntity(){
    String body = "<h1>success</h1>";
    HttpHeaders httpHeaders = new HttpHeaders();
    return new ResponseEntity<String>(body,httpHeaders, HttpStatus.OK);
}

文件上传

在RequestMapping()中使用produces="text/html;charset=utf-8"解决响应乱码问题

1、表单 enctype=“multipart/form-data”
2、导包fileupload和io
3、在springmvc中配置文件上传解析器 CommonsMultpartResolver,id必须是multpartResolver
property名maxUploadSize,值value="#{1024102420}"
property配置字符编码defaultEncoding
4、文件上传请求处理 在Model model之前使用@RequestParam(“img”)MultipartFile file
通过file.transferTo(“D:\·\·”)

@ResponseBody
@RequestMapping(value = "/upload",produces = "text/html;charset=utf-8") // 
public String upLoad(@RequestParam(value = "username",required = false) String username,
                     @RequestParam(value = "imgHeader") MultipartFile multipartFile,
                     Model model){

    System.out.println("上传文件的信息");
    System.out.println("文件名:"+multipartFile.getOriginalFilename());
    System.out.println("表单中的name值:"+multipartFile.getName());
    try {
        multipartFile.transferTo(new File("F:\\"+multipartFile.getOriginalFilename()));
        model.addAttribute("msg","文件上传到F盘成功");
    } catch (IOException e) {
        e.printStackTrace();
        model.addAttribute("msg","upload failure");
    }
    return "<h1>文件上传成功</h1>";
}
<form action="http://localhost:8080/upload" method="post" enctype="multipart/form-data">
    username:<input type="text" name="username" value="shit"> <br>
    password:<input type="password" value="123"> <br>

    用户头像<input type="file" name="imgHeader">
    <input type="submit">
</form>

多文件上传 MultipartFile[]数组,增强for循环进行遍历。

本文地址:https://blog.csdn.net/m0_47119598/article/details/112010348

《SpringMVC框架Day07之ajax和文件上传.doc》

下载本文的Word格式文档,以方便收藏与打印。