【Spring篇】初始Spring MVC框架之Spring MVC入门程序编写

      🧸安清h:个人主页

  🎥个人专栏:【计算机网络】【Mybatis篇】【Spring篇】

🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 


目录

🎯Spring MVC概述

🚦Spring MVC的核心特点

🎯Spring MVC入门程序

🚦创建项目

​编辑 🚦引入Maven依赖

​编辑 🚦配置前端服务器

🚦配置处理器映射信息和视图解析器

🚦创建处理器

🚦创建视图页面

🎯SpringMVC的核心类


🎯Spring MVC概述

Spring MVC是一个基于Java的实现了MVC(Model-View-Controller)设计模式的Web框架。它是Spring框架的一部分,专门用于构建Web应用程序。Spring MVC通过将应用程序分离成模型(Model)、视图(View)和控制器(Controller)三个核心组件,来帮助开发者构建可维护、可测试的Web应用程序。

🚦Spring MVC的核心特点

  1. 自动配置:在Spring Boot中,Spring MVC可以自动配置,大大简化了配置工作。

  2. 内容协商:Spring MVC支持内容协商,可以根据客户端的请求头来决定返回的数据格式,如JSON或XML。

  3. 模板引擎支持:Spring MVC支持多种模板引擎,如Thymeleaf、FreeMarker等,可以方便地生成动态内容。

  4. 过滤器支持:Spring MVC可以与Servlet过滤器(Filter)集成,提供额外的请求处理能力。

  5. 响应体和请求体处理:Spring MVC提供了@ResponseBody@RequestBody注解,可以轻松处理HTTP请求和响应的正文。

  6. 依赖注入:Spring MVC支持依赖注入(DI),可以轻松地将Spring管理的bean注入到控制器中。

  7. 轻量级:Spring MVC是一个轻量级的Web框架,它的核心库只包含实现MVC模式所需的最小集合。

  8. 强大的数据绑定:Spring MVC提供了强大的数据绑定机制,可以自动将请求参数绑定到控制器方法的参数上。

🎯Spring MVC入门程序

🚦创建项目

新建一个项目:

点击左上角File->Project Structure->Modules,点左上角‘+’,出现以下界面:

 点击图中标红框的Web标签,点击铅笔后出现以下界面:

将路径修改为src\main\webapp\WEB-INF\web.xml,修改后点击OK:

 然后在该界面的下方找到Web Resource Directory,同样点击小铅笔,将路径改为src\main\webapp:

点击OK后,创建项目成功,项目的目录结构如下图:

 🚦引入Maven依赖

    <packaging>war</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.8.RELEASE</version></dependency><!-- 日志 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.5.6</version><scope>test</scope></dependency><!-- servlet依赖 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- JSP--><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency>
<!--        SPring5和Thymeleaf整合包--><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>3.0.11.RELEASE</version></dependency></dependencies>
<!--    以插件的形式配置tomcat服务器--><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port>  <!--  端口号--><path>/SpringMvcTest</path>  <!-- 路径,以/开头--></configuration></plugin></plugins></build>

点击上方菜单栏的Run->Edit Configurations,出现以下界面,点击左上角的“+”,下拉选择Maven:

在Working directory输入项目在本地的路径,Command line中输入tomcat7:run,在此让项目在Tomcat中运行:

 🚦配置前端服务器

Spring MVC通过前端控制器拦截客户端的请求并进行转发。

在以下代码中的<servlet-class>中的部分,可以通过项目目录打开External Libraries->找到webmvc->打开spring-webmvc->打开web.servlet->找到DispatcherServlet->右键Copy Reference

在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">
<!--    配置SpringMVC前端控制器,对浏览器发送的请求进行统一处理--><servlet><servlet-name>SpringMVC_Test01</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--        配置SpringMVC文件的位置和名称--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--        将前端控制器DispatcherServlet的初始化时间提前到服务器启动时--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>SpringMVC_Test01</servlet-name>
<!--        如果是/*,服务器内部跳转jsp的过程会被DispatcherServlet解析,当作Controller处理,所以使用/--><!--        设置springMVC的核心控制器所能处理的请求的请求路径,/所匹配的请求可以是.html或.js或.css方式的请求路径,匹配不了.jsp请求路径的请求。/*代表的是所有请求--><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

🚦配置处理器映射信息和视图解析器

在resources文件夹下创建Spring MVC的配置文件spring-mvc.xml,具体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--配置Spring MVC要扫描的包--><context:component-scan base-package="com.haust.controller"/><!--    配置视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--  前缀  --><property name="prefix" value="/WEB-INF/config/"/><!--  后缀  --><property name="suffix" value=".jsp"/></bean>
</beans>

🚦创建处理器

在com.haust.controller包中创建FirstController类,用于处理客户端的请求并指定响应时跳转的页面,具体代码如下:

@Controller
public class FirstController {@RequestMapping("/")public String sayHello(){System.out.println("访问到FirstController");return "welcome";}
}

🚦创建视图页面

在webapp中的WEB-INF中新建包config,在包中新建文件welcome.jsp,具体代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h2>Welcome</h2>
</body>
</html>

以上操作完成后,运行后的浏览器的跳转页面为:

🎯SpringMVC的核心类

DispatcherServlet是SpringMVC的核心类,也称为SpringMVC的前端控制器,可以拦截客户端的请求,它的本质上是一个Servlet,可以在文件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"><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--        配置SpringMVC配置文件的位置和名称--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--        将前端控制器DispatcherServlet的初始化时间提前到服务器启动时--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!--        设置springMVC的核心控制器所能处理的请求的请求路径,/所匹配的请求可以是.html或.js或.css方式的请求路径,匹配不了.jsp请求路径的请求。/*代表的是所有请求--><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

以上就是本期介绍的全部内容了,主要是关于初始SpringMVC。如果您感兴趣的话,可以订阅我的相关专栏。非常感谢您的阅读,如果这篇文章对您有帮助,那将是我的荣幸。我们下期再见啦🧸! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

祖先序列重建结合机器学习改进双键还原酶-文献精读87

Ancestral Sequence Reconstruction Meets Machine Learning: Ene Reductase Thermostabilization Yields Enzymes with Improved Reactivity Profiles 祖先序列重建结合机器学习&#xff1a;酶还原酶热稳定化产生具有改进反应性特征的酶 摘要 烯还原酶&#xff08;EREDs&…

华为的USG6000为什么不能ping通

前言&#xff1a; 防火墙usg6000v的镜像 链接: https://pan.baidu.com/s/1uLRk0-hnHRTLYLx1Pnplow?pwdtymp 提取码: tymp 看了好多毒文章&#xff0c;感觉写作业更有意思&#xff0c;可以了解新的知识 内容&#xff1a; 首先看毒文章是这样说的&#xff0c;华为的防火墙是…

untiy之碰撞体编辑器

在进行游戏开发时经常会遇到复杂构造的物体&#xff0c;那么如何类似的物体增加碰撞体呢&#xff0c;通过unity自带的collider是很麻烦的&#xff0c;这里介绍一个插件 Easy Collider editor轻松解决这个需求 1. 打开easy collider editor编辑器 2. 选择要添加碰撞体的物体&…

【Leetcode】《双指针出击:多数和问题的“破阵之匙”,解锁高效算法密码》

前言 &#x1f31f;&#x1f31f;本期讲解关于双指针解决多数和问题~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不…

【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问

【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问 文章目录 【docker】Windows11创建Ubuntu-desktop并使用VNC完成远程访问前言创建Ubuntu容器下载镜像运行容器连接容器 搭建容器XFCE桌面环境安装ubuntu桌面 总结 前言 docker ubuntu容器在深度学习领域的使用过程…

【Vulkan入门】01-列举物理设备

目录 先叨叨git信息主要逻辑VulkanEnvEnumeratePhysicalDevices()PrintPhysicalDevices() 编译并运行程序 先叨叨 上一篇已经创建了VkInstance&#xff0c;本篇我们问问VkInstance&#xff0c;在当前平台上有多少个支持Vulkan的物理设备。 git信息 repository: https://gite…

【嵌入式系统设计】LES3~5:Cortex-M4系统架构(上)第1节 ARM处理器,M4内核处理器,M4调试跟踪接口

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…

分布式推理框架 xDit

1. xDiT 简介 xDiT 是一个为大规模多 GPU 集群上的 Diffusion Transformers&#xff08;DiTs&#xff09;设计的可扩展推理引擎。它提供了一套高效的并行方法和 GPU 内核加速技术&#xff0c;以满足实时推理需求。 1.1 DiT 和 LLM DiT&#xff08;Diffusion Transformers&am…

资料文件夹转移工具5.2.3 |快速转移到D盘,释放C盘空间

这是一款支持将C盘的常用文件夹转移到其他磁盘分区的工具&#xff0c;提供仅变目录、复制资料和转移资料三种转移方式。该工具完全免费&#xff0c;单文件免安装&#xff0c;大小仅为546KB&#xff0c;非常适合需要释放C盘空间的用户。 大小&#xff1a;546KB 下载地址&#…

学习笔记052——Spring Boot 自定义 Starter

文章目录 Spring Boot 自定义 Starter1、自定义一个要装载的项目2、创建属性读取类 ServiceProperties3、创建 Service4、创建自动配置类 AutoConfigration5、创建 spring 工程文件6、将项目打成 jar 包7、jar 打包到本地仓库8、配置application.yml Spring Boot 自定义 Starte…

uniapp 自定义导航栏增加首页按钮,仿微信小程序操作胶囊

实现效果如图 抽成组件navbar.vue&#xff0c;放入分包 <template><view class"header-nav-box":style"{height:Props.imgShow?:statusBarHeightpx,background:Props.imgShow?:Props.bgColor||#ffffff;}"><!-- 是否使用图片背景 false…

node.js基础学习-express框架-静态资源中间件express.static(十一)

前言 在 Node.js 应用中&#xff0c;静态资源是指那些不需要服务器动态处理&#xff0c;直接发送给客户端的文件。常见的静态资源包括 HTML 文件、CSS 样式表、JavaScript 脚本、图片&#xff08;如 JPEG、PNG 等&#xff09;、字体文件和音频、视频文件等。这些文件在服务器端…

下载maven 3.6.3并校验文件做md5或SHA512校验

一、下载Apache Maven 3.6.3 Apache Maven 3.6.3 官方下载链接&#xff1a; 二进制压缩包&#xff08;推荐&#xff09;: ZIP格式: https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zipTAR.GZ格式: https://archive.apache.org/dist/…

单片机知识总结(完整)

1、单片机概述 1.1. 单片机的定义与分类 定义&#xff1a; 单片机&#xff08;Microcontroller Unit&#xff0c;简称MCU&#xff09;是一种将微处理器、存储器&#xff08;包括程序存储器和数据存储器&#xff09;、输入/输出接口和其他必要的功能模块集成在单个芯片上的微型…

C# winform非常好用的图表开源控件Scottplot

wifnorm自带的chart控件功能和性能都不太行&#xff0c;所以在网上搜索到了Scottplot开源图表控件。根据自己需要&#xff0c;将已经试验使用过的用法记录在这里 winform建议使用版本 Scottplot包版本&#xff1a;4.1.71 这个版本在winform中可以以控件形式直接拖拉到窗体中使…

Python 3 教程第33篇(MySQL - mysql-connector 驱动)

Python MySQL - mysql-connector 驱动 MySQL 是最流行的关系型数据库管理系统&#xff0c;如果你不熟悉 MySQL&#xff0c;可以阅读我们的 MySQL 教程。 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL&#xff0c; mysql-connector 是 MySQL 官方提供的驱动器。…

Gooxi Eagle Stream 2U双路通用服务器:性能强劲 灵活扩展 稳定易用

人工智能的高速发展开启了飞轮效应&#xff0c;实施数字化变革成为了企业的一道“抢答题”和“必答题”&#xff0c;而数据已成为现代企业的命脉。以HPC和AI为代表的新业务就像节节攀高的树梢&#xff0c;象征着业务创新和企业成长。但在树梢之下&#xff0c;真正让企业保持成长…

UICollectionView在xcode16编译闪退问题

使用xcode15运行工程&#xff0c;控制台会出现如下提示&#xff1a; Expected dequeued view to be returned to the collection view in preparation for display. When the collection views data source is asked to provide a view for a given index path, ensure that a …

Gentoo Linux部署LNMP

一、安装nginx 1.gentoo-chxf ~ # emerge -av nginx 提示配置文件需更新 2.gentoo-chxf ~ # etc-update 3.gentoo-chxf ~ # emerge -av nginx 4.查看并启动nginx gentoo-chxf ~ # systemctl status nginx gentoo-chxf ~ # systemctl start nginx gentoo-chxf ~ # syst…

CQ 社区版 2024.11 | 新增“审批人组”概念、可通过SQL模式自定义审计图表……

CloudQuery 社区 11 月新版本来啦&#xff01;本月版本依旧是 CUG&#xff08;CloudQuery 用户组&#xff09;尝鲜版的更新。 针对审计模块增加了 SQL 模式自定义审计图表&#xff1b;在流程模块引入了“审批人组”概念。此外&#xff0c;在 SQL 编辑器、连接管理等模块都涉及…