利用Spring MVC开发程序1

简介: 利用Spring MVC开发程序

一、Spring MVC概述

Spring MVC是基于Servlet和MVC设计模式下实现的web项目,同时也是Spring框架中的web模块,Spring MVC是随着Spring产生而存在的一个框架。

那么什么又是MVC设计模式?

MVC的设计模式包含三层:Model、View以及Controller(模型、视图和控制器),如下为三者的关系图:

Spring MVC与MVC的区别就是MVC是设计思想,而Spring MVC是针对该思想进行的实现。

在idea中创建一个Spring MVC的项目的步骤如下:

1、点击新建一个项目:

2、选择版本号和添加相关依赖

点击Finish后项目创建完成。

二、实现用户和程序映射

使用@RequestMapping注解

通过使用@RequestMapping注解设置路由地址的方式来实现映射。

@RequestMapping("/hello")
    public String hello(){
        return "Hello!";
    }

在浏览器通过url访问一般都是GET方法,但@RequestMapping注解同样支持POST方法。

指定方法的形式,使用method属性进行指定方法,value来设置路由地址:

@RequestMapping(method = RequestMethod.GET,value = "/hello")

并且@RequestMapping注解不仅可以修饰方法也能修饰类,在类之前添加的@RequestMapping注解通常可以省略。

使用@PostMapping注解

使用@PostMapping("/xx")注解来设置路由地址来实现映射,但是该注解只支持POST方法。

使用@ GetMapping注解

使用@GetMapping("/xx")注解通过设置路由地址实现映射,但只支持GET方法。

@GetMapping("/hi")
    public String hi(){
        return "Hi World!";
    }

三、获取用户的请求参数

传递单个参数

可以传递单个参数来实现,此处传递的参数名一定要和前端保持一致,例如想获取User对象就可以通过传id来进行获取信息:

@RequestMapping("/getuser")
    public User getUser(Integer id){
        User user = new User();
        user.setId(id);
        user.setName("小风");
        user.setAge(18);
        return user;
    }

通过fiddler抓包工具可以发现此处响应的是json格式,不用像使用Servlet那样需要设置返回格式,而是会根据获取的数据类型自动选择。

传递多个参数  

传递多个参数来获取信息:

@RequestMapping("/login")
    public String login(String name,String password){
        return "user:"+name+",password:"+password;
    }

此处的参数如果和前端命名不一致,但项目已经完成,全部重命名不方便时就可以使用@RequestParam("xx")注解来设置与前端一致的命名,但是这也有缺陷,如果传入参数为空就会报错,所以就需要再给该注解的required属性设置为false。

@RequestMapping("/login")
    public String login(@RequestParam(value = "user",required = false) String name, String password){
        return "user:"+name+",password:"+password;
    }

传递一个对象

可以直接传递一个对象,并且 Spring MVC 可以⾃动实现参数对象的赋值。

@RequestMapping("/getinfo")
    public String getUserInfo(User user){
        return "用户:"+user;
    }

接收Json格式的数据

服务器端实现Json格式的数据接收就需要使用@RequestBody注解。

通过postman模拟实现如下:

URL地址中获取参数

上述获取对象的方法是从URL中的请求字符串来获取参数对象,但这样优先级较低,还有一种方法就直接是在url地址中获取参数,但是需要使用@PathVariable注解,并且在@ResponseMapping注解中也要利用{}加上参数,参数之间使用“/”分割。

 @RequestMapping("/user/{name}/{age}")
    public String getInfo(@PathVariable String name,@PathVariable Integer age){
        return "姓名:"+name+",年龄:"+age;
    }

上传文件

在上传文件时应该使用@RequestPart注解,其中@RequestPart中传入的参数是前端代码的文件名,为了避免上传文件的文件名重读就使用UUID来产生全球唯一的字符串进行命名,并且上传的文件的路径写在配置文件中,在不同的环境下使用不同的配置文件,但是配置文件都需以application开头,如下文件分别代表了开发环境下的配置文件信息以及生产环境下的配置文件信息:

然后在主配置文件中指明当前用的那个配置文件:

spring.profiles.active=dev


 @RequestMapping("/file")
    public boolean getFile(Integer id, @RequestPart("file")MultipartFile file){
        boolean result = false;
        String fileName = file.getOriginalFilename();
        fileName = fileName.substring(fileName.lastIndexOf("."));
        fileName = UUID.randomUUID()+fileName;
        try {
            //保存文件到本地
            file.transferTo(new File(impath+fileName));
            result = true;
        } catch (IOException e) {
            log.error("上传文件失败:"+e.getMessage());
        }
        return result;
    }

使用postman进行模拟上传:

在本地文件中可以看到上传的文件:

利用Spring MVC开发程序2:https://developer.aliyun.com/article/1521797?spm=a2c6h.13148508.setting.20.55b44f0eiXO8eW

目录
相关文章
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
8天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
20 2
|
29天前
|
XML Java 数据格式
提升效率!Spring Boot 开发中的常见失误轻松规避
本文深入探讨了在 Spring Boot 开发中常见的失误,包括不当使用注解、不良异常处理、低效日志记录等,提供了有效的规避策略,帮助开发者提升代码质量和系统性能,构建更健壮、高效的应用程序。
|
13天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
28 0
|
1月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
1月前
|
Java 数据库连接 Spring
【2021Spring编程实战笔记】Spring开发分享~(下)
【2021Spring编程实战笔记】Spring开发分享~(下)
26 1
|
1月前
|
开发框架 Java API
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
55 0
|
1月前
|
XML 存储 前端开发
手动开发-实现SpringMVC底层机制--小试牛刀
手动开发-实现SpringMVC底层机制--小试牛刀
14 0
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于注解配置的程序--源码解析
手动开发-简单的Spring基于注解配置的程序--源码解析
46 0
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
80 0