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中文件管理系统FastDFS详解

    Java中文件管理系统FastDFS详解 什么是FastDFS FastDFS是一个开源的轻量级分布式文件系统,它由跟踪服务器Tracker Server、存储服务器Storage Server、客户端API和命令行工具组成。FastDFS主要解决了海量数据存储问题,而且具有负载均衡、故障恢复等特点。 FastDFS的优点 海量文件存储 高可用性和可靠性 自…

    Java 2023年5月20日
    00
  • Java基础之简单介绍一下Maven

    Java基础之简单介绍一下Maven 概述 Maven是Apache基金会的一个开源项目管理和构建工具。它可以自动化地构建、测试和部署Java项目,并且可以自动下载依赖的库。 安装Maven Maven可以在官方下载页面https://maven.apache.org/download.cgi 上下载,选择适合自己操作系统的Maven版本下载,然后解压。 在…

    Java 2023年5月19日
    00
  • jsp、css中引入外部资源相对路径问题分析

    让我结合标准的markdown格式来详细讲解一下“jsp、css中引入外部资源相对路径问题分析”的完整攻略。 问题背景 在jsp和css中,我们经常需要引入外部资源,例如图片、样式表、脚本文件等。这些资源的引入路径可能涉及到相对路径和绝对路径的问题,如果不理解路径的规则,就容易导致资源引入失败,或者出现页面样式混乱等问题。 相对路径 相对路径是指相对于当前文…

    Java 2023年6月15日
    00
  • java编程实现多人聊天室功能

    介绍 为了实现多人聊天室功能,我们需要使用Java编程语言和基于Socket的网络编程来实现。此外,我们需要使用客户端/服务器架构来将所有聊天相关的逻辑和处理放在服务器端。在本文中,我将详细介绍如何使用Java编程实现多人聊天室功能。 步骤1:创建服务器 我们首先需要创建一个服务器来管理所有客户端之间的聊天。为此,我们需要创建一个Java类来实现服务器逻辑。…

    Java 2023年5月19日
    00
  • java数组实现队列及环形队列实现过程解析

    Java数组实现队列 简介 队列(Queue)是一种先进先出(FIFO)的数据结构,它支持在队列尾部插入数据,在队列头部删除数据。在实际的开发中,我们经常会使用队列来解决一些问题,比如多线程的任务队列,消息队列等等。在Java中,我们可以使用数组来实现队列。 实现过程 我们使用一个数组来保存队列中的元素,同时记录队列的头部和尾部元素的位置。具体实现方法如下:…

    Java 2023年5月26日
    00
  • 一文带你深入了解Java8 Stream流式编程

    一文带你深入了解Java8 Stream流式编程 什么是Java 8 Stream Java 8中引入了Stream API,通过Stream API,处理集合数据更加简单,更加高效。Stream API就如同一个迭代器(Iterator)一样,单向处理数据流并生成处理结果。 Stream接口可以让我们完成下面的任务: 集合类型,比如 List,Set,甚至…

    Java 2023年5月26日
    00
  • kaptcha验证码组件使用简介解析

    首先给出一份包含标题、正文内容和示例代码的markdown文本: Kaptcha验证码组件使用简介解析 Kaptcha是一款Java语言编写的验证码组件,可以非常方便地为Web应用添加验证码保护。它支持自定义验证码样式,包括验证码字符、字体、大小、颜色、背景等,同时还具备多语言支持、音频验证码功能以及代码简单等优点。 在下面的示例中,我们将详细讲解如何使用K…

    Java 2023年6月15日
    00
  • 10道springboot常见面试题

    10道Spring Boot常见面试题攻略 Spring Boot是一个基于Spring框架的快速开发框架,它可以帮助我们快速构建Web应用程序。在面试中,Spring Boot是一个非常常见的话题。以下是10道Spring Boot常见面试题的攻略。 1. 什么是Spring Boot? Spring Boot是一个基于Spring框架的快速开发框架,它可…

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