SpringMVC源码解读[1] -Spring MVC 环境搭建

  • 源码地址: https://github.com/chen-jiacheng/springmvc-quickstart

一、使用 IDEA 创建 Spring MVC 项目

直接创建项目即可

在这里插入图片描述

默认项目结构:

springmvc-quickstart
├── pom.xml
└── src├── main│   ├── java│   │   └── com│   │       └── chenjiacheng│   │           └── springmvc│   │               └── Main.java│   └── resources└── test└── java

二、依赖管理

引入servlet-api、jsp、springmvc等

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.chenjiacheng.springmvc</groupId><artifactId>springmvc-quickstart</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--   spring framework version     --><spring.version>5.3.24</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><!-- Servlet API --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl-api</artifactId><version>1.2</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-framework-bom</artifactId><version>${spring.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><finalName>${project.artifactId}</finalName></build></project>

三、IDEA-WEB项目构建

File => Project Structure

3.1 Model

在这里插入图片描述
在这里插入图片描述
Deployment Descriptors: ~/IdeaProjects/springmvc-quickstart/src/main/webapp/WEB-INF/web.xml

Web Resource Directories: ~/Jetbrains/IdeaProjects/springmvc-quickstart/src/main/webapp

3.2 Artifacts

在这里插入图片描述

项目结构:

springmvc-quickstart
├── pom.xml
├── springmvc-quickstart.iml
└── src├── main│   ├── java│   │   └── com│   │       └── chenjiacheng│   │           └── springmvc│   │               └── Main.java│   ├── resources│   └── webapp│       └── WEB-INF│           └── web.xml└── test└── java

四、代码编写

4.1 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_3_1.xsd"version="3.1"><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

4.2 spring-mvc.xml

位置: ~/Jetbrains/IdeaProjects/springmvc-quickstart/src/main/resources/spring-mvc.xml

<?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 https://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.chenjiacheng.springmvc"/><mvc:default-servlet-handler/><mvc:annotation-driven/><bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/views/"/><property name="suffix" value=".jsp"/></bean>
</beans>

4.3 JSP 文件编写

4.3.1 index.jsp

位置: ~/Jetbrains/IdeaProjects/springmvc-quickstart/src/main/webapp/index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Spring MVC</title>
</head>
<body>
<h1>Hello, Spring MVC.</h1>
</body>
</html>
4.3.2 echo.jsp

位置: ~/Jetbrains/IdeaProjects/springmvc-quickstart/src/main/webapp/views/echo.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Echo</title>
</head>
<body>
<h1>EchoServer: ${msg} </h1>
</body>
</html>

4.4 EchoController

位置:~/Jetbrains/IdeaProjects/springmvc-quickstart/src/main/java/com/chenjiacheng/springmvc/controller/EchoController.java

package com.chenjiacheng.springmvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;/*** Created by chenjiacheng on 2024/5/23 00:47** @author chenjiacheng* @since 1.0.0*/
@Controller
public class EchoController {@GetMapping("/echo")public String echo(Model model, @RequestParam("msg")String msg){model.addAttribute("msg",msg);return "echo";}
}

最终项目结构:

springmvc-quickstart
├── pom.xml
├── springmvc-quickstart.iml
└── src├── main│   ├── java│   │   └── com│   │       └── chenjiacheng│   │           └── springmvc│   │               ├── Main.java│   │               └── controller│   │                   └── EchoController.java│   ├── resources│   │   └── spring-mvc.xml│   └── webapp│       ├── WEB-INF│       │   └── web.xml│       ├── index.jsp│       └── views│           └── echo.jsp└── test└── java

五、配置Tomcat服务器

5.1 配置Tomcat服务器

在这里插入图片描述

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

在这里插入图片描述

5.2 启动&访问

在这里插入图片描述

5.2.1 访问地址主页

地址: http://localhost:8080/springmvc_quickstart_war_exploded/
返回: index.jsp

在这里插入图片描述

5.2.2 访问 echo.jsp

地址: http://localhost:8080/springmvc_quickstart_war_exploded/echo?msg=hello,springmvc
返回: echo.jsp

在这里插入图片描述

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

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

相关文章

Stable Diffusion简单食用方法

1.下载 1.1打开B站 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili哔哩哔哩&#xff08;bilibili.com)是国内知名的视频弹幕网站&#xff0c;这里有及时的动漫新番&#xff0c;活跃的ACG氛围&#xff0c;有创意的Up主。大家可以在这里找到许多欢乐。https://www.bilibili.com/ 1.2搜索…

521源码-免费教程-Linux系统硬盘扩容教程

本教程来自521源码&#xff1a;更多网站源码下载学习教程&#xff0c;请点击&#x1f449;-521源码-&#x1f448;获取最新资源 首先&#xff1a;扩容分区表 SSH登陆服务器输入命令&#xff1a;df -TH&#xff0c;获得数据盘相关信息 可以看到演示服务器的数据盘分区是&…

Java中的封装、继承和多态性详解

一、封装 技术难点 封装是面向对象编程的四大基本特性之一&#xff0c;它的主要目标是隐藏对象的内部状态和信息&#xff0c;只对外提供有限的访问接口。技术难点在于如何合理地设计类的私有成员变量和公有方法&#xff0c;以确保数据的安全性和操作的便捷性。封装要求开发者…

CentOS历史命令查询、用户操作审计

目录 历史命令查询 常规方法 直接解析历史命令文件&#xff08;推荐&#xff09; 用户操作审计 sudo日志 audit日志 systemd日志&#xff08;推荐&#xff09; 历史命令查询 常规方法 # 显示历史命令 history# 增加时间显示&#xff1a; # 临时生效 export HISTTIMEFO…

UVa1086/LA4452 The Minister’s Major Mess

UVa1086/LA4452 The Minister’s Major Mess 题目链接题意分析AC 代码 题目链接 本题是2009年icpc世界总决赛的H题 题意 n&#xff08;n≤500&#xff09;个人对m&#xff08;m≤100&#xff09;个方案投票。每个人最多只能对其中的4个方案投票&#xff08;其他相当于弃权票&a…

FastJSON2 > FastJSON 好在何处

FastJSON 是一种广泛使用的 JSON 解析库&#xff0c;其高性能和简单易用的特点受到开发者的喜爱。然而&#xff0c;随着应用场景的复杂化和安全要求的提高&#xff0c;FastJSON 逐渐暴露出一些问题。为了解决这些问题并进一步提升性能和安全性&#xff0c;阿里巴巴推出了 FastJ…

Linux基础入门和帮助-第一篇

马哥教育 Linux SRE 学习笔记 Linux基础 备注&#xff1a;本笔记使用Linux版本为Rocky 8.6和Ubuntu 23.10&#xff0c;大部分使用Rocky 8.6 查看当前的终端设备 tty命令可以查看当前所在的终端 范例&#xff1a; [rootrocky8 ~]$tty /dev/pts/0bash shell 显示当前使用的she…

css扇形菜单动画效果

菜单组件 IntelligentAnalysis.vue 中间圆形区域可以换个图片 <template><div class"intel-analysis"><div class"info" :class"{ close-animation: !showMenu }"><div class"middle"></div><div cl…

【工具使用】搜狗输入法如何输入希腊字母等特殊字符

步骤&#xff1a; 1&#xff0c;点击悬浮框的输入方式&#xff0c;选择“符号大全”&#xff1a; 2&#xff0c;根据自己需要选择对应的符号即可&#xff1a;

Power BI实现动态度量值

假设有一张销售数据表Sale: 报表上有一个切片器(Slicer)(下拉框样式)&#xff0c; 当选择"第一"时&#xff0c;计算列[FirstSale]与列[Target]的百分比&#xff0c; 选择"第二"时&#xff0c;计算列[SecondSale]与列[Target]的百分比 选择"第三&qu…

Spring Cloud 框架的应用详解

Spring Cloud 框架的应用详解 Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具&#xff0c;它提供了一系列工具用于快速构建分布式系统中的常见模式&#xff0c;如配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、选举、分布式会话和集群状态管理…

如何看待知乎入局 「AI整合商」 赛道

引言 在人工智能&#xff08;AI&#xff09;快速发展的格局中&#xff0c;公司不断探索利用 AI 的变革潜力的策略。知乎&#xff0c;一家领先的中国问答平台&#xff0c;最近宣布进军“人工智能集成商”领域。这一战略举措涉及与领先的人工智能模型团队合作&#xff0c;并开发专…

3d数字化虚拟交互展厅让您紧跟时代的步伐

虚实融合打破边界&#xff0c;北京VR虚拟数字展厅搭建让体验者彷如置身于一部三维电影中&#xff0c;可以对场景中的物体、角色、模型进行自由参观和体验&#xff0c;并且系统支持随时更新&#xff0c;让您紧跟时代的步伐&#xff0c;领略更新的展览风采。 除了常见的科普培训&…

浅谈mysql中的null - 能不能用索引

浅谈mysql中的null - 能不能用索引 照旧&#xff0c;在开始前&#xff0c;先附上本次试验的ddl, 然后插入数据&#xff0c;随机抽取几条幸运数据的name设为null CREATE TABLE user (id int NOT NULL COMMENT id,name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin…

docker- 购建服务镜像并启动

文章目录 前言docker- 购建服务镜像并启动1. 前期准备2. 构建镜像3. 运行容器4. 验证 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实…

软考中级嵌入式系统设计师知识点

主要介绍一些软考中级嵌入式系统设计师涉及到的一些考点。 文章目录 前言 一、嵌入式系统设计师 二、知识点 总结 前言 主要介绍一些软考中级嵌入式系统设计师涉及到的一些考点。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、嵌入式系统设计师 …

宝塔面包安装搭建Flarum开源论坛程序 文档教程

一、服务器环境说明 宝塔 7.0.3 或更新版本 Linux Server&#xff08;本文用的是 CentOs 7.4.6 64位&#xff09; Apache 或者 Nginx&#xff08;本文用的是 Nginx 1.16.0&#xff09; MySQL 5.6&#xff08;本文使用 MySQL 5.7&#xff0c;原因请看下方引用&#xff09; PHP 7…

IPFS矿机托管使用普通专线跟IDC机房托管对比分析

IPFS矿机托管使用普通专线跟IDC机房托管对比分析 1 、可靠性高&#xff0c;灵活性好 选择多路由网络稳定&#xff0c;安全性能更高。重要网络设备采用双机备份 2、提供365天全天候运营服务 如果在idc机房进行托管服务器的话&#xff0c;出现服务器遭受攻击数据丢失以及系统…

Java如果系统要使用超大整数(超过long长度范围)请设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)

要设计一个数据结构来存储超过long长度范围的超大整数&#xff08;也称为大数或高精度数&#xff09;&#xff0c;我们可以使用数组来模拟多位数的表示。通常&#xff0c;我们会选择一个固定大小的整数类型&#xff08;如int或short&#xff09;来作为数组的每个元素&#xff0…

产品经理交接规范及流程

一、交接内容 1.1产品整体情况 交接人员需了解产品的整体情况&#xff0c;包括产品的定位、目标用户、主要功能、特点等。 1.2产品文档交接 交接人员需确保所有关于产品的文档的完整性和准确性&#xff0c;包括产品需求文档&#xff08;PRD&#xff09;、产品原型、交互文档…