返回顶部
首页 > 资讯 > 后端开发 > JAVA >【Java】Spring MVC程序开发
  • 159
分享到

【Java】Spring MVC程序开发

javamvcspringboot 2023-08-16 22:08:22 159人浏览 薄情痞子
摘要

文章目录 Spring MVC程序开发1. 什么是Spring MVC?1.1 MVC定义1.2 MVC 和 Spring MVC 的关系 2. 为什么学习Spring MVC?3. 怎么学习Spring MVC?3.1 Sp

spring mvc程序开发

1. 什么是Spring MVC?

Spring WEB MVC是基于Servlet api构建的原始Web框架,从一开始就包含在Spring框架中。它的正式名称是“Spring Web MVC”来自其原模块的名称,但是它通常被称为“Spring MVC”

从上述定义我们可以看到两个信息:

  1. Spring MVC 是一个Web框架
  2. Spring MVC 是基于Servlet API构建的

然而要真正的搞懂Spring MVC?我们要先理解什么是MVC?

1.1 MVC定义

MVC是Model、View、Controller的缩写,它是软件工程当中的一种软甲架构模式,它把软件系统分为模型、视图、和控制器三个基本部分

在这里插入图片描述

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据
  • View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的
  • Controller(控制器)是应用程序处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

1.2 MVC 和 Spring MVC 的关系

MVC是一种思想,而Spring MVC是对MVC思想的具体实现

总结来说,Spring MVC是实现了一个MVC模式,并继承了Servlet API的Web框架。既然是Web框架,那么用户在浏览器当中输入URL之后,我们的Spring MVC项目就可以感知到用户的请求

2. 为什么学习Spring MVC?

现在绝大部分的Java项目都是基于Spring或者是(Spring Boot)的,而Spring的核心是Spring MVC也就是说Spring MVC是Spring框架的一个核心模块,而Spring Boot是Spring的脚手架。因此我们可以推断出,现在市面上的绝大部分Java项目约等于Spring MVC项目,这就是学习它的原因

在创建Spring Boot项目的时候,我们勾选的Spring Web框架其实就是Spring MVC框架,

在这里插入图片描述

简单来说,咱是所以要学习Spring MVC是因为它是一切项目的基础,我们以后创建的Spring、Spring Boot项目都是基于Spring MVC的

3. 怎么学习Spring MVC?

学习Spring MVC我们只需要掌握3个功能:

  1. 连接的功能:将用户(浏览器)和Java程序连接起来,也就是访问一个地址能够调用我们的Spring程序
  2. 获取参数的功能:用户访问的时候会带一些参数,在程序中要想办法获取到参数
  3. 输出数据的功能:执行了业务逻辑之后,要把程序执行的结果返回给用户

3.1 Spring MVC的创建和连接

Spring MVC项目创建和Spring Boot项目创建相同(Spring MVC 和Spring Boot的方式相同)在创建的时候选择Spring Web就相当于创建了Spring MVC项目

在Spring MVC当中使用@RequestMapping来实现URL路由映射,也就是浏览器连接程序的作用

3.1.1 创建Spring MVC项目

创建Spring Boot项目的时候勾选上Spring Web模块即可

@Controller@RequestMapping("/user")public class UserController {        @RequestMapping("sayhi")    @ResponseBody    public String sayHi() {        return "你好 世界";    }}

实现之后访问地址:Http://localhost:8080/user/sayhi就可以访问了

3.1.2 @RequestMapping 注解介绍

@RequestMapping是Spring Web应用程序当中最常被用的注解之一,它是用来注册接口的路由映射的

路由映射:所谓的路由映射指的是,当用户访问一个URL时,将用户的请求对应到程序中某个类的某个方法的过程就叫做路由映射

@RequestMapping的基础使用

package com.example.demo.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping("/user")public class UserController {    @RequestMapping("sayhi")    @ResponseBody    public String sayHi() {        return "你好 世界";    }    @ResponseBody    @RequestMapping(method = RequestMethod.POST, value = "/sayhi2")    public String sayHi2() {        return "你好,世界";    }}

@RequestMapping既可以就是类,也可以修饰方法,当修饰类和方法的时候,访问的地址是类 + 方法

3.1.3 @RequestMapping是post 还是 get请求?

经过测试之后,我们可以发现是都可以支持的

我们可以指定方法类型

在这里插入图片描述

3.1.4 @GetMapping 和 @PostMapping

三种实现方式:

@RequestMapping("sayhi")@ResponseBodypublic String sayHi() {    return "你好 世界";}@ResponseBody@RequestMapping(method = RequestMethod.POST, value = "/sayhi2")public String sayHi2() {    return "你好,世界";}@ResponseBody@PostMapping("/sayhi3")public String sayHi3() {    return "你好,世界3 ";}

3.2 获取参数

3.2.1 传递单个参数

在Spring MVC中可以直接用方法中的参数来实现传参,比如以下代码

@ResponseBody@RequestMapping("/getuserinfoid")public UserInfo getUserInfoId(Integer id) {    UserInfo userInfo = new UserInfo();    userInfo.setId(id);    userInfo.setName("张三");    userInfo.setAge(18);    userInfo.setPassword("1234");    return userInfo;}

访问的结果是:

在这里插入图片描述

3.2.2 传递对象

Spring MVC可以自动实现参数对象的赋值

@ResponseBody@RequestMapping("/reg")public UserInfo reg(UserInfo userInfo) {    return userInfo;}

3.2.3 表单参数传递/传递多个参数

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

3.2.4 后端参数重命名

某些情况下,前端传递的参数key和后端接收的key可以不一致

@ResponseBody@RequestMapping("/login")public String login(@RequestParam(name = "username")String name, String password) {    return "name: " + name + "password: " + password;}

3.2.5 设置参数必传

默认情况下,是必须要传递的,

我们可以设置成非必传参数

如果我们的实际业务前端的参数是一个非必传参数,我们可以这样操作

在这里插入图片描述

3.2.6 @RequestBody接收JSON对象

在这里插入图片描述

如果没有加上这一个注解,就会接收不到

在这里插入图片描述

3.2.7 获取URL当中的参数@PathVarible

代码实现:

@RequestMapping("/hero/{id}/{name}")public String getHeroInfo(@PathVariable String id, @PathVariable String name) {    return "id" + id + "name" + name;}

地址填写方法:

在这里插入图片描述

3.2.8 上传文件@RequestPart

@RequestMapping("/upimg")public boolean upImg(Integer uid, @RequestPart("img") MultipartFile file) {    boolean result = false;    String fileName = file.getOriginalFilename();// 得到图片名字    fileName = fileName.substring(fileName.lastIndexOf(".")); // 得到后缀    fileName = UUID.randomUUID().toString() + fileName;    try {        file.transferTo(new File ("D://"));        result = true;    } catch (IOException e) {        e.printStackTrace();        log.error("上传错误" + e.getMessage());    }    return result;}

3.2.9 获取Cookie/Session/header

获取cookie:

@ResponseBody@RequestMapping("/cookie")public String getCookie(@CookieValue("bit") String bite) {    return bite;}

获取header:

使用注解:@RequestHeader

Session的存储和获取:

Session的存储我们只能使用传统的方式,但是Session的获取我们可以使用注解完成@SessionAttribute

3.3 返回数据

3.3.1 返回静态页面

在这里插入图片描述

这时候如果要返回一个“hello.html”,这时候返回的是一个同名的页面。所以我们在使用的时候都要加上一个注解ResponseBody

这里我们设置一个实用的技巧:热部署

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3.2 请求转发和请求重定向

forward VS redirect

return 不但可以返回一个视图,还可以实现跳转,跳转的方式有两种:

  • forward 是请求转发
  • redirect 请求重定向

“转发”和“重定向”的理解:在中国官方发布的内容越少事情越大,“转发”和“重定向“也是一样:字越少,责任越大。转发是服务器帮忙转发的,而重定向是让浏览器重新请求另一个地址

具体区别如下:

  1. 请求重定向(redirect)将请求重新定位到资源;请求转发(forward)服务器端转发
  2. 请求重定向地址发生变化,请求转发地址不发生变化
  3. 请求重定向与直接访问新地址效果一致,不存在原来的外部资源不能访问;请求转发服务器端转发有可能造成外部资源不能访问

3.3.3 @ResponseBody说明

@ResponseBody返回的值如果是字符会变成text/html,如果是对象会转成appllcation/json返回给前端

@ResponseBody可以用来修饰方法或者修饰类,修饰类表示类中的所有方法都会返回html或者JSON而不是视图

来源地址:https://blog.csdn.net/qq_63474430/article/details/129338488

--结束END--

本文标题: 【Java】Spring MVC程序开发

本文链接: https://lsjlt.com/news/372196.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Java】Spring MVC程序开发
    文章目录 Spring MVC程序开发1. 什么是Spring MVC?1.1 MVC定义1.2 MVC 和 Spring MVC 的关系 2. 为什么学习Spring MVC?3. 怎么学习Spring MVC?3.1 Sp...
    99+
    2023-08-16
    java mvc spring boot
  • Spring MVC注解式开发案例分析
    这篇文章主要讲解了“Spring MVC注解式开发案例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring MVC注解式开发案例分析”吧!项目案例用 Reque...
    99+
    2023-07-05
  • Spring MVC 中的 JavaScript 开发技巧,你了解吗?
    在 Web 开发中,JavaScript 是不可或缺的一部分。在 Spring MVC 中,JavaScript 也扮演着非常重要的角色。在本文中,我们将介绍一些 Spring MVC 中的 JavaScript 开发技巧,帮助您更好地开...
    99+
    2023-07-02
    spring 文件 javascript
  • 详解使用Spring Boot开发Restful程序
    一、简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发...
    99+
    2023-05-31
    spring boot restful
  • java程序的开发步骤
    java程序的开发步骤:找出类应该做的事情列出实例变量和方法列出方法和伪码编写方法的测试程序实现类测试方法除错或重新设计伪码伪码能帮你专注于逻辑而不需要顾虑到程序语法。测试码测试用的程序代码。真实码实际设计出的真正java程序代码。推荐教程...
    99+
    2017-10-07
    java基础 java 程序 开发 步骤
  • Spring MVC使用教程
    Spring MVC使用教程?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Spring MVC  Spring MVC属于SpringFrameWork的后续产品,已...
    99+
    2023-05-31
    spring mvc
  • java微信小程序开发教程
    这篇文章将为大家详细讲解有关java微信小程序开发教程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java 微信小程序开发教程 简介 Java 微信小程序是一种基于 Java 语言开发的微信小程序框架,...
    99+
    2024-04-02
  • java开发微信小程序教程
    这篇文章将为大家详细讲解有关java开发微信小程序教程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 简介 微信小程序是一种由微信团队开发的轻量级应用,无需安装即可运行在微信内。它为开发者提供了便捷的开...
    99+
    2024-04-02
  • Java Spring Boot 开发框架
    Spring Boot是一种基于Java编程语言的开发框架,它的目标是简化Java应用程序的开发过程。Spring Boot提供了一种快速、易于使用的方式来创建独立的、生产级别的Java应用程序。本文...
    99+
    2023-10-09
    java spring boot 开发语言
  • spring mvc配置bootstrap教程
    本文实例为大家分享了spring mvc配置bootstrap教程,供大家参考,具体内容如下1.下载bootstrap到下面的链接下载最新的 http://getbootstrap.com/,我下载的版本是bootstrap-3.3.7-d...
    99+
    2023-05-31
    spring mvc bootstrap
  • Java spring mvc请求详情介绍
    目录一、源码执行流程二、源码执行流程图三、spring mvc中的一核心组件四、源码分析五、获取组件相关逻辑:六、获取参数,执行方法源码分析七、渲染视图逻辑前言: 本文源码基于spr...
    99+
    2024-04-02
  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发
    SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发 ​ 昨天我们深入学习了MyBatis多表之间的关联映射,了解掌握了一对一关联映射,...
    99+
    2023-08-30
    学习 spring mvc Mybatis
  • Java经典面试题汇总:Spring MVC
    目录1. 什么是Spring MVC ?2. Spring MVC 有哪些组件?3. 说一下 Spring MVC 运行流程?4. Spring MVC的优点:5. @Request...
    99+
    2024-04-02
  • 【Android】在AndroidStudio开发工具运行Java程序
    在Android Studio开发工具中,Android系统开始就是用java语言开发的,还可以java代码来写程序,控制台,桌面应用,还可以写可调用的模块,这里讲一下创建Java程序步骤,方便入门j...
    99+
    2023-08-31
    android android studio java 单元测试 java程序
  • 钉钉 程序开发
    首先,让我们来了解一下钉钉的通讯功能。在钉钉中,通讯功能主要包括钉钉消息、钉钉电话、企业微信等,这些都是钉钉的通讯工具。其中,钉钉消息是最为基础的功能,用户可以通过消息来进行群聊、朋友圈等,还可以进行语音通话和视频通话等。此外,钉钉电话也是...
    99+
    2023-10-28
    程序开发
  • 微信小程序 | 小程序开发
    🖥️ 微信小程序专栏:小程序开发 初级知识 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫...
    99+
    2023-09-08
    微信小程序 小程序
  • java spring mvc处理器映射器介绍
    目录一、RequestMappingHandlerMapping解析映射简单介绍二、@RequestMapping解析源码流程三、@RequestMapping映射源码流程四、@Re...
    99+
    2024-04-02
  • 详细聊聊Spring MVC重定向与转发
    目录重定向和转发 常用处理方式 String 重定向 ModelAndView 重定向 RedirectView 重定向 带参跳转 redirect 和 forward 的区别 附:...
    99+
    2024-04-02
  • 探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty
    文章目录 Spring框架Spring MVC框架Spring Boot框架MyBatis框架Netty框架总结 🎉欢迎来到Java面试技巧专栏~探索Ja...
    99+
    2023-10-26
    java spring mvc 原力计划
  • Spring MVC的处理流程是什么
    本篇内容介绍了“Spring MVC的处理流程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、曾经的王者—&am...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作