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日

相关文章

  • springboot集成@DS注解实现数据源切换的方法示例

    下面是针对“springboot集成@DS注解实现数据源切换的方法示例”的详细讲解,包括两个示例。 一、简介 在Spring Boot中,实现数据源切换最常用的方式是使用@DS注解。它可以在运行时动态地切换数据源。这个注解是基于MyBatis-Plus的,需要引入MyBatis-Plus的核心依赖。 二、操作步骤 1. 引入相关依赖 在pom.xml文件中加…

    Java 2023年5月20日
    00
  • Java 进行时间处理的步骤

    Java 进行时间处理的步骤可以分为以下几个方面: 获取当前时间 Java 可以使用 java.util.Date 或 java.time.LocalDateTime 类获取当前的系统时间。其中,java.util.Date 是一个在 Java 8 之前使用的类,而在 Java 8 及以后,建议使用 java.time.LocalDateTime 类。 示例…

    Java 2023年5月20日
    00
  • 浅谈SpringMVC中的session用法及细节记录

    下面是关于“浅谈SpringMVC中的session用法及细节记录”的完整攻略,包含两个示例说明。 SpringMVC中的session用法及细节记录 在SpringMVC中,session是一个接口,它用于在服务器端存储和管理用户的状态信息。本文将介绍如何使用session对象来存储和管理用户的状态信息,并提供两个示例说明。 步骤一:创建SpringMVC…

    Java 2023年5月17日
    00
  • Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

    针对Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析的完整攻略,可以按照以下步骤进行: 1. 确定研究目标 首先需要明确研究目标,即了解在Android系统中,进程间通信的机制及其具体实现方式。这里主要研究Binder机制在应用程序框架层的Java接口源代码分析。 2. 学习Binder机制原理 接下来需要学习Binder…

    Java 2023年5月26日
    00
  • Java基础学习之关键字和变量数据类型的那些事

    Java基础学习之关键字和变量数据类型的那些事 一、关键字 Java中有一些单词是具有特殊含义的,这些单词被称为关键字。我们不能将关键字用作标识符(变量名、方法名等)。Java中共有50个关键字,其中一部分已经不再使用,比如goto、const等。下面列出常用的关键字: abstract default if private this boolean do …

    Java 2023年5月20日
    00
  • SpringBoot之如何正确、安全的关闭服务

    关于 Spring Boot 如何正确、安全地关闭服务,我们可以从以下几个方面进行讲解: 1. 常规 shutdown 操作 Spring Boot 提供了一种常规的 shutdown 操作,即在管理端点中使用 /actuator/shutdown 接口发送 POST 请求可以关闭应用程序。这种方式通常可以满足普遍需求,但也存在一定的缺点,比如潜在的安全隐患…

    Java 2023年5月20日
    00
  • java随机数生成具体实现代码

    当我们需要在程序中产生随机数时,Java API提供了几种不同的方法:Math类中的静态方法和java.util.Random类。 Math类生成随机数的实现代码 Math类中提供了一个random()方法来产生任意范围的随机数。通过random()方法返回一个0.0到1.0之间的随机数,对于大于1.0的范围,可以通过数学运算来实现。下面是一个产生1-100…

    Java 2023年5月23日
    00
  • SpringBoot项目启动时增加自定义Banner的简单方法

    Spring Boot项目启动时增加自定义Banner的简单方法 在Spring Boot项目启动时,我们可以增加自定义Banner,用于展示项目的Logo、名称、版本等信息。在本文中,我们将详细讲解如何增加自定义Banner,包括如何使用文本Banner和如何使用图片Banner。 使用文本Banner 使用文本Banner是最简单的方法,我们只需要在项目…

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