当前位置: 首页 > news >正文

SpringMVC从入门到上手-全面讲解SpringMVC的使用.

一、springmvc介绍

        MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分:

        Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中,JavaBean对象,业务模型等都属于Model。

        View(视图):用于展示模型中的数据的,一般为jsp或html文件。

        Controller(控制器):是应用程序中处理用户交互的部分。接受视图提出的请求,将数据交给模型处理,并将处理后的结果交给视图显示。

二、springmvc使用

2.1、创建maven项目

创建maven工程,catalog选择Internal.Archetype选择webapp.

Catalog 选择 Internal:表示你在使用本地仓库或本地配置的 Archetype。

Archetype 选择 webapp:表示你正在创建一个基于 Servlet/JSP 的 Web 应用项目。

2.2、引入依赖

<!-- 处理 Web 请求、展示数据、以及管理页面的核心模块。 -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.16</version>
</dependency><!-- 构建 Web 应用和服务所需的核心功能,主要用于与 Servlet 容器的交互。 -->
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope>
</dependency><!-- 处理 JSON 数据和 Java 对象之间转换的核心库 -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.2</version>
</dependency>
<!-- JSP 支持 -->
<dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope>
</dependency>

2.3、配置前端控制器web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"><display-name>springmvc_demo</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--配置 SpringMVC 的前端控制器--><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

2.4、增加springmvc配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--自动扫描包--><context:component-scan base-package="com.cn.springmvc.controller"/><!--开启 MVC 的注解驱动--><mvc:annotation-driven/><!-- 配置视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/views/" /><property name="suffix

2.5、创建controller

编写一个测试方法.

2.6、启动

idea配置tomcat作为应用服务器,来运行maven项目.

三、请求参数绑定

        springmvc是基于方法设计的框架,所以对应的请求url中对应的参数在方法上进行接收.

当请求的参数名和处理器参数名称一致时会将请求参数与处理方法参数进行绑定.

        通过浏览器请求接口/testDemo/login?username=root&password=123 完成参数绑定.

创建jsp页面,通过jsp中的form表单提交参数.

四、实体类参数绑定

4.1、简单绑定

        当提交的参数过多或form表单内容很多时,可以使用实体类接收数据,要求form表单中的name属性与实体类中的属性名一致.

4.2、嵌套绑定

        在实体类中将第二个对象当作属性进行嵌套.

        在浏览器中通过连接/testDemo/nestingQuery?username=张三&phone.name=iphone14ro完成参数传递.

五、数据返回                                                                                 

5.1、ModelAndView

ModelAndView主要有两个作用,设置转向地址和传递控制方法处理结果数据到结果页面.

5.2、Model/ModelMap

        Model本身不能设置页面跳转的url地址,可以通过控制器方法的返回值设置跳转url地址.

        ModelMap对象主要用于传递控制方法处理的数据到结果页面,类似request对象的setAttribute方法的作用.

六、高级参数绑定

6.1、ServletApi

        在controller方法形参上可以定义request和response.使用request或response指定响应结果.

6.1.1、forward

6.1.2、redirect

6.2、数组

6.3、List

注意:接收List参数时不可以直接在Controller处理方法上进行接收,采用实体类中包装List的方式进行List参数接收。

七、Springmvc对json的支持

7.1、@RequestBody

        @RequestBod用于读取请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。


7.2、@ResponseBody

@ResponseBody用于将conotroller的方法返回对象,通过HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过response相应给客户端。

八、URL占位符

        @RequestMapping支持url占位符{xxx}传参方式,通过在方法中使用@PathVariabe(“xxx”)获取占位符的值。通过地址/json/getUrlPathVariable/2访问获取。

注意:

  1. {xxx}要和@PathVariabe(“xxx”)内的key一致而不是和参数名一致。
  2. Url中如果存在占位符必须传至且数据类型需要一致。

九、@RequestParam

@RequestParam注解常用于处理简单数据类型的参数绑定。

value:请求参数名

required:ture/fales是否必填,默认是true

defaultValue:默认值

注意:

  1. 请求中的参数名必须和@RequestParam中的value一致而不是和参数名一致。
  2. 如果设置了默认值,则可以不传入对应参数,即使required=true也可以不传入对应参数.

通过以上内容便可轻轻松松使用SpringMVC.是不是超级简单.有任何问题欢迎留言哦!!!

重点!重点!重点!

遇到问题不用怕不如来我的知识库找找看,也许有意想不到的收获!!!

易网时代-易库资源-易库教程:.NET开发、Java开发、PHP开发、SqlServer技术、MySQL技术-开发资料大全-易网时代-易库资源-易库教程 (escdns.com)

相关文章:

  • 线程概念与控制
  • box-sizing: border-box的用法和作用
  • 【Maven】特殊pom.xml配置文件 - BOM
  • RK3568平台开发系列讲解(调试篇)debugfs文件系统及常见调试节点介绍
  • HCIP第三次作业
  • 【Qwen2.5-VL 踩坑记录】本地 + 海外账号和国内账号的 API 调用区别(阿里云百炼平台)
  • CentOS 系统 DeepSeek 部署
  • 实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客
  • 基于自适应汉克尔子空间的快速且超高分辨率的弥散磁共振成像(MRI)图像重建|文献速递-深度学习医疗AI最新文献
  • 节点内存升高排查
  • 集结号海螺捕鱼活动系统开发全解(第五篇)
  • 云计算领域需掌握的核心技术
  • Python数据清洗笔记(上)
  • MVVM框架详解:原理、实现与框架对比
  • 安卓14默认赋予应用权限
  • 封装 element-ui 二次弹框
  • Execl 最佳字体和大小推荐[特殊字符]
  • 2025年【安全员-C证】考试试卷及安全员-C证模拟考试
  • 《TCP/IP详解 卷1:协议》之第六章:ICMP:Internet控制报文协议
  • AUTODL关闭了程序内存依然占满怎么办
  • 水利部启动实施蓄滞洪区建设管理三年行动
  • 中国驻日本大使馆发言人就日方涉靖国神社消极动向答记者问
  • 聚焦客户真实需求,平安人寿重磅推出“添平安”保险+服务解决方案
  • 去年净流入人口达45万,居各省份第一:浙江带来哪些启示?
  • 男子为讨喜钱掰断劳斯莱斯小金人,警方:已介入处置
  • 盗播热门影视剧、电影被追究刑事附带民事责任,最高法发声