【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.rhkb.cn/news/486428.html

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

相关文章

深度学习图像增强介绍

目录 一、引言二、常用数据增广方法三、图像变换类3.1 AutoAugment3.2 RandAugment 四、图像裁剪类4.1 Cutout4.2 RandomErasing4.3 HideAndSeek 五、图像混叠5.1 Mixup5.2 Cutmix 六、结论 一、引言 在图像分类任务中&#xff0c;图像数据的增广是一种常用的正则化方法&#…

Python办公—DataMatrix二维条码制作

目录 专栏导读1、库的介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果

基于Java Springboot在线招聘APP且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

Hbase整合Mapreduce案例1 hdfs数据上传至hbase中——wordcount

目录 整合结构准备java API 编写pom.xmlMain.javaMap.javaReduce 运行 整合结构 准备 上传hdfs data.txt数据 data.txt I am wunaiieq QAQ 123456 Who I am In todays interconnected world the role of technology cannot be overstated It has revolutionized the way we …

基于openzeppelin插件的智能合约升级

一、作用以及优点 部署可升级合约&#xff0c;插件自动部署proxy和proxyAdmin合约&#xff0c;帮助管理合约升级和交互&#xff1b;升级已部署合约&#xff0c;通过插件快速升级合约&#xff0c;脚本开发方便快捷&#xff1b;管理代理管理员的权限&#xff0c;只有proxyAdmin的…

MQ的基本概念

1 MQ的基本概念 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;它使用Erlang语言编写并运行在多种操作系统上&#xff0c;如Linux、Windows等。RabbitMQ可以接收、存储和转发消息&#xff08;也称为“事件”&#xff09;到连接的客户端。它适用于多种场景&#xff0c;…

【计算机网络】实验11:边界网关协议BGP

实验11 边界网关协议BGP 一、实验目的 本次实验旨在验证边界网关协议&#xff08;BGP&#xff09;的实际作用&#xff0c;并深入学习在路由器上配置和使用BGP协议的方法。通过实验&#xff0c;我将探索BGP在不同自治系统之间的路由选择和信息交换的功能&#xff0c;理解其在互…

HDD 2025年技术趋势深度分析报告

随着数据量的指数级增长以及人工智能&#xff08;AI&#xff09;、物联网&#xff08;IoT&#xff09;、云计算和视频监控等领域的需求激增&#xff0c;硬盘驱动器&#xff08;HDD&#xff09;行业正面临着前所未有的挑战与机遇。本报告旨在深入剖析2025年HDD技术的发展方向&am…

Pyside6 --Qt Designer--Qt设计师--了解+运行ui_demo_1.py

目录 一、打开Qt设计师1.1 Terminal终端1.2 打开env&#xff0c;GUI虚拟环境下的scripts文件1.3 不常用文件介绍&#xff08;Scripts下面&#xff09; 二、了解Qt设计师的各个控件作用2.1 点击widget看看效果&#xff01;2.2 点击Main Window看看效果 三、编写一个简易的UI代码…

Mysql索引,聚簇索引,非聚簇索引,回表查询

什么是索引 数据库索引是为了实现高效数据查询的一种有序的数据数据结构&#xff0c;类似于书的目录&#xff0c;通过目录可以快速的定位到想要的数据&#xff0c;因为一张表中的数据会有很多&#xff0c;如果直接去表中检索数据效率会很低&#xff0c;所以需要为表中的数据建立…

【MySQL】视图详解

视图详解 一、视图的概念二、视图的常用操作2.1创建视图2.2查询视图2.3修改视图2.4 删除视图2.5向视图中插入数据 三、视图的检查选项3.1 cascaded&#xff08;级联 &#xff09;3.2 local(本地) 四、视图的作用 一、视图的概念 视图&#xff08;View&#xff09;是一种虚拟存…

大语言模型技术相关知识-笔记整理

系列文章目录 这个系列攒了很久。主要是前段之间面试大语言模型方面的实习&#xff08;被拷打太多次了&#xff09;&#xff0c;然后每天根据面试官的问题进行扩展和补充的这个笔记。内容来源主要来自视频、个人理解以及官方文档中的记录。方便后面的回顾。 2024-12-7: 对公式…

【软件安全】软件安全设计规范,软件系统安全设计制度(Word原件)

1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 软件全面文档清单涵盖以下核心内容&a…

华为云域名网站,域名切换到Cloudflare CDN出现访问报错:DNS 重定向次过多

网站域名切换到Cloudflare出现访问报错&#xff1a;重定向次过多&#xff0c;应该如何处理&#xff1f; 最近我自己已经遇到很多次这个情况了&#xff0c;将网站域名DNS切换到Cloudflare之后&#xff0c;网站会打不开&#xff0c;出现重定向次数过多报错。 网站域名切换到Clo…

1-12 GD32基于定时器输入捕获

前言&#xff1a; 基于本人对相关知识回顾与思考&#xff0c;仅供学习参考 目录 前言&#xff1a; 1.0 输入捕获 2.0 信号周期 3.0 定时器配置 4.0 定时器配置 5.0 定时器中断 后记&#xff1a; 1.0 输入捕获 2.0 信号周期 获取信号周期的方法&#xff0c;在第一次捕获与…

实现RAGFlow-0.14.1的输入框多行输入和消息框的多行显示

一、Chat页面输入框的修改 1. macOS配置 我使用MacBook Pro&#xff0c;chip 是 Apple M3 Pro&#xff0c;Memory是18GB&#xff0c;macOS是 Sonoma 14.6.1。 2. 修改chat输入框代码 目前RAGFlow前端的chat功能&#xff0c;输入的内容是单行的&#xff0c;不能主动使用Shift…

【LeetCode】80.删除有序数组中的重复项II

题目链接&#xff1a; 80.删除有序数组中的重复项II 题目描述&#xff1a; 解题思路&#xff1a; 按照题目中要求&#xff0c;必须在原来数组中进行修改&#xff0c;并且在O(1)额外空间条件下完成。因此我们可以使用双指针算法&#xff0c;算法具体流程如下&#xff1a; 如…

国产GPU中,VLLM0.5.0发布Qwen2.5-14B-Instruct-GPTQ-Int8模型,请求返回结果乱码

概述 国产GPU: DCU Z100 推理框架&#xff1a; vllm0.5.0 docker容器化部署 运行如下代码&#xff1a; python -m vllm.entrypoints.openai.api_server --model /app/models/Qwen2.5-14B-Instruct-GPTQ-Int8 --served-model-name qwen-gptq --trust-remote-code --enforce…

[Redis#18] 哨兵机制 | docker 部署实验 | 选举机制(leader主)

目录 基本概念 工作原理 哨兵节点的作用与配置 监控与心跳检测 ⭕故障恢复流程 Docker 部署 Redis Sentinel 场景介绍 Docker 简介 Docker 安装 Docker Compose 编排 Redis 主从及哨兵节点 编排 Redis 主从节点 编排 Redis 哨兵节点 创建哨兵配置文件 启动服务 …