springmvc图片上传及json数据转换过程详解

一、springmvc图片上传过程详解

1.在pom.xml文件中添加以下依赖

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>

2.在springmvc.xml中添加以下配置

<!--文件上传配置-->
<bean id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="maxUploadSize" value="2097152"/>
    <property name="maxInMemorySize" value="1048576"/>
    <!--默认上传临时文件目录-->
    <property name="uploadTempDir">
        <bean class="org.springframework.web.multipart.commons.CommonsMultipartFile"
              factory-bean="fileItemFactory"
              factory-method="getUploadDir"/>
    </property>
</bean>

<!--文件上传工厂类-->
<bean id="fileItemFactory" class="org.apache.commons.fileupload.disk.DiskFileItemFactory">
    <property name="repository"
              value="D:/temp/upload"/>
    <!--上传文件大于10KB时生成新的临时文件-->
    <property name="sizeThreshold"
              value="10240"/>
</bean>

3.在controller中添加以下代码

@RequestMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file,
                     HttpServletRequest request) {
    //检查文件是否为空
    if (!file.isEmpty()) {
        try {
            //保存文件
            String filename = file.getOriginalFilename();
            String path = request.getSession().getServletContext()
                          .getRealPath("upload/" + filename);
            file.transferTo(new File(path));
            return "上传成功";
        } catch (Exception e) {
            e.printStackTrace();
            return "上传失败";
        }
    } else {
        return "文件为空";
    }
}

二、json数据转换过程详解

1.在pom.xml文件中添加以下依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

2.在controller中添加以下代码

@RequestMapping("/json")
@ResponseBody
public Map<String, Object> json() {
    Map<String, Object> map = new HashMap<>();        map.put("name", "Tom");
    map.put("age", 18);
    return map;
}

3.访问json接口,可以看到返回的数据格式为json

{
    "name": "Tom",
    "age": 18
}

示例1:springmvc图片上传

1.上传文件的html代码段

<form method="POST" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <button type="submit">上传</button>
</form>

2.上传文件的controller

@RequestMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file,
                     HttpServletRequest request) {
    //检查文件是否为空
    if (!file.isEmpty()) {
        try {
            //保存文件
            String filename = file.getOriginalFilename();
            String path = request.getSession().getServletContext()
                          .getRealPath("upload/" + filename);
            file.transferTo(new File(path));
            return "上传成功";
        } catch (Exception e) {
            e.printStackTrace();
            return "上传失败";
        }
    } else {
        return "文件为空";
    }
}

示例2:json数据转换

1.获取json数据的html代码段

<button type="button" onclick="getJson()">获取Json数据</button>
<script>
    function getJson() {
        $.ajax({
            url: "/json",
            type: "GET",
            dataType: "json",
            success: function (data) {
                alert(JSON.stringify(data))
            },
            error: function () {
                alert("获取数据失败")
            }
        })
    }
</script>

2.获取json数据的controller

@RequestMapping("/json")
@ResponseBody
public Map<String, Object> json() {
    Map<String, Object> map = new HashMap<>();
    map.put("name", "Tom");
    map.put("age", 18);
    return map;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springmvc图片上传及json数据转换过程详解 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 详解Java中static关键字和内部类的使用

    详解Java中static关键字和内部类的使用 Java中的static关键字和内部类是程序设计中非常重要的特性,本文将全面讲解它们的使用。 static关键字 概念 static关键字可以用来修饰类的成员变量和成员方法。 当static关键字被修饰成员变量时,该变量成为静态变量,也可以称为类变量。静态变量的特点是在内存中只有一份,无论有多少个对象被创建,静…

    Java 2023年5月26日
    00
  • response对象的使用(实例讲解)

    响应对象(response object)是在 Python Web 应用程序中最常用的对象之一。在 Web 应用程序中,请求(request)将发送到 Web 服务器来获得一个响应(response)。Python 中的 response 对象包含向客户端发送响应的方法和属性。 一个典型的 response 对象主要有以下几个常用的属性和方法: statu…

    Java 2023年6月15日
    00
  • 在java中ArrayList集合底层的扩容原理

    在Java中,ArrayList是一个可以动态扩容的数组,其底层实现是基于数组而设计的。当ArrayList的容量不足以存储新的元素时,就需要进行扩容操作。本文将详细讲解在Java中ArrayList集合底层的扩容原理。 ArrayList内部数组实现 首先,我们需要了解ArrayList内部数组的实现方式。在ArrayList中,用于存储元素的是一个Obj…

    Java 2023年5月26日
    00
  • Java读取数据库表(二)

    Java读取数据库表(二) application.properties db.driver.name=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://localhost:3306/easycrud?useUnicode=true&characterEncoding=utf8&serverTimezo…

    Java 2023年5月4日
    00
  • SpringBoot整合Security权限控制登录首页

    下面我将详细讲解“SpringBoot整合Security权限控制登录首页”的完整攻略,并给出两个示例来帮助理解。 一、准备工作 1.1 引入依赖 首先,我们需要在pom.xml文件中引入相关依赖: <!– Spring Security依赖 –> <dependency> <groupId>org.springfra…

    Java 2023年5月20日
    00
  • 算法系列15天速成 第八天 线性表【下】

    算法系列15天速成 第八天 线性表【下】完整攻略 前言 在线性表【上】的基础上,我们再来讲一些新的线性表特性及其相关算法。 栈 栈是一种特殊的线性表,只能在表尾插入和删除数据,简单来说就是类似于装东西的箱子。它有以下几个特点: 先进后出,后进先出,即最先入栈的元素最后出栈; 只能在表尾插入和删除数据,元素的加入和删除只发生在栈顶。 栈的应用 递归; 计算器;…

    Java 2023年5月31日
    00
  • Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码

    要实现Java传入用户名和密码并自动提交表单实现登录到其他系统的功能,我们需要使用Java中的HttpClient库来进行POST请求,同时我们需要获取登录界面的HTML代码,以便提取出登录接口的URL、表单数据和Cookie信息等。 具体实现过程如下: 1. 导入HttpClient库 在Java项目中使用HttpClient库,需要先添加相关依赖。在Ma…

    Java 2023年5月24日
    00
  • Java实现mybatis批量插入数据到Oracle

    下面我来详细讲解“Java实现mybatis批量插入数据到Oracle”的完整攻略。 一、项目依赖 在项目的pom.xml文件中添加以下依赖: <!– MyBatis –> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybat…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部