SpringMVC学习笔记(获取参数,传递参数——关于前后端传参交互的总结、from表单、Ajax数据提交))(上)

简介: SpringMVC学习笔记(获取参数,传递参数——关于前后端传参交互的总结、from表单、Ajax数据提交))(上)

一、什么是SpringMVC ?

b5f7fa693e4f48ccba8fddbf0580975a.png官⽅对于 Spring MVC 的描述是这样的:

Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web MVC,” comes from the name of its source module (spring-webmvc), but it is more commonly known as “Spring MVC”.


翻译为中⽂:

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为“Spring MVC”。

题外话:

1、因为 Spring Web MVC 是基于 Servlet API,所以 Servlet 是 Spring MVC 的 “父亲”。

因此,Servlet 那一套编程方法,在 Spring MVC 中,也是可以使用的!!!

但是,一般不推荐使用 servlet 的编程方式。

因为,Spring MVC 更简单!


 

2、Spring Web MVC,从⼀开始就包含在 Spring 框架中。

即:Spring 是一个很大体系(框架),Spring MVC 只是属于 Spring 体系中的一个 Web 模块。

这也是为什么在学习 Spring 的时候,我们都都是通过 main 方法去访问bean方法的原因。因为我们没有引入 web 模块,因此想要通过 浏览器输入 URL 来访问 方法,是不行的

————————————————

接下来我们就在IDEA社区版中创建一个我们第一个SpringMVC项目(基于SpringBoot)

在创建 Spring Boot 项⽬时,我们勾选的 Spring Web 框架其实就是 Spring MVC 框架,如下图所示


875cbcdacc404c539c27823ab96cfcce.png

其实:Spring MVC 项⽬创建和 上篇博客我所讲的Spring Boot 创建项⽬相同(Spring MVC 使⽤ Spring Boot 的⽅式创建),在创建的时候选择 Spring Web 就相当于创建了 Spring MVC 的项⽬

bfe814ead98c4b9e9ddd7af5f6bb4376.png

简言之就是:

1、删除不必要的文件

2、通过Maven包管理添加项目所依赖的包和库

详见SpringBoot项目创建,哈哈,我们这个SpringMVC项目本来就是基于SpringBoot来创建的呀!


总述:

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

1、 连接的功能:将⽤户(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的Spring 程序。

2、 获取参数的功能:⽤户访问的时候会带⼀些参数,在程序中要想办法获取到参数。

3、输出数据的功能:执⾏了业务逻辑之后,要把程序执⾏的结果返回给⽤户。

对于 Spring MVC 来说,掌握了以上 3 个功能就相当于掌握了 Spring MVC  


二、Spring MVC项目的连接(用户 和 程序 的 映射)

通过@RequestMapping注解进行路由配置(即可以修饰类也可以修饰方法,放在类上是一级目录,放在方法上是二级目录)


3632c723db904c94967c6a63148bdf89.png

cf120185317343ef940015c7de1e3109.png

当然其他的像:@GetMapping和@PostMapping也可以进行路由配置  

591599b584104feabf4d622430ebf3e3.png

关于Spring MVC项目的连接的一点补充,如图所示:

ec663aa947b34485968aac147d14af60.png

要注意我们这里的SpringMVC还是和之前我们说的Spring Core还是有些不一样的。


Spring MVC 是基于 Servlet API 构建的。

然⽽要真正的理解什么是 Spring MVC?我们⾸先要搞清楚什么是 MVC?


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


98f7384304cf4b7cb0872504ef153041.png

Model(模型) 是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

View(视图) 是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。

Controller(控制器) 是应⽤程序中处理⽤户交互的部分。通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据。


下面我们来进一步分析 四者之间的关系。

252ab65cd19b4d0cafbe01540e9159bb.png


当然了,其实上面分析的是传统的MVC模式是前后端不分离的,可以说服务器的视图和客户端的视图是杂糅在一起的。


我们要讲的SpringMVC其实是前后端分离开来的

前端发送的请求数据,会先给 controller。

controller 验证完数据之后,就会将其给 Model。

Model 在和 数据库交互之后,将其得到的结果返回给 controller。

此时 controller 收到的数据,还不能直接返回给前端。

controller 需要将数据 交给 服务器的视图(View),进行处理和渲染。

最终,将渲染得到的结果,返回给前端。

此时,用户就看到的源码 就是 html标签 的内容。(浏览器的开发者工具可以查看)

看到的页面,就是浏览器对 HTML标签内容的解析。

 

所以说SpringMVC,叫spring web更合适。

三、获取参数的功能的实现

传统的获取前端传来参数的方式:因为我们的SpingMVC其实底层还是基于servlet,所以我们可以通过HtttpServlet来获取前端传来的参数

2719a84c60cd44708f7fc51e5c8d2dac.png

当然这个传统的servlet传递参数的形式,我们SpringMVC有更简单的方式:


传递较少数量的参数:




ddd609914ee043a08e440baebd8eb656.png


080cbfc576144c76bdcd4975f3906d23.png



当然了,也可以通过postman以post的形式传递参数


3d5c4de05cb248a08e3c3b038c0df4da.png

用Fiddler抓取此次的包:

bb32bb292fb24ab690f894b6d214ac4f.png


相关文章
|
3月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
119 2
|
28天前
|
前端开发 Java UED
SpringMVC全局异常处理+拦截器使用+参数校验
通过使用 SpringMVC 的全局异常处理、拦截器和参数校验,可以有效提升 Web 应用程序的安全性、稳定性和用户体验。这些技术的合理应用,不仅可以保证代码的健壮性,还能提高代码的可维护性,为开发高质量的 Web 应用程序提供了坚实的基础。
44 6
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
46 3
|
1月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
52 1
|
2月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
46 3
|
3月前
|
XML 前端开发 JavaScript
php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示
本文介绍了在PHP中如何使用Ajax进行登录表单的数据提交,并利用jQuery的$.post()方法与后端通信,以及使用layer.msg进行前端提示。
php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示
|
4月前
|
XML 存储 前端开发
后端程序员的前后端交互核心-Ajax
后端程序员的前后端交互核心-Ajax
61 6
后端程序员的前后端交互核心-Ajax
|
4月前
|
前端开发 JavaScript Java
Ajax进行异步交互:提升Java Web应用的用户体验
Ajax 技术允许在不重载整个页面的情况下与服务器异步交换数据,通过局部更新页面内容,极大提升了 Java Web 应用的响应速度和用户体验。本文介绍 Ajax 的基本原理及其实现方式,包括使用 XMLHttpRequest 对象发送请求、处理响应数据,并在 Java Web 应用中集成 Ajax。此外,还探讨了 Ajax 如何通过减少页面刷新、实时数据更新等功能改善用户体验。
81 3
|
4月前
|
前端开发 JavaScript Java
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
关于如何在SpringBoot项目中结合JQuery和Ajax实现表单数据的传输以及单文件或多文件上传的教程。文章提供了完整的前后端示例代码,包括项目的`pom.xml`依赖配置、SpringBoot的启动类`App.java`、静态资源配置`ResourceConfig.java`、配置文件`application.yml`、前端HTML页面(单文件上传和多文件上传加表单内容)以及后端控制器`UserController.java`。文章最后展示了运行结果的截图。
251 0
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
|
4月前
|
XML JSON 前端开发
JSON与AJAX:网页交互的利器
JSON与AJAX:网页交互的利器
41 0