第一个 Spring MVC 程序

一、配置文件类

在创建Spring MVC的时候,最基础的就是3个配置文件

pom.xml

pom.xml 就是导入依赖

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency></dependencies>

web.xml

这个 xml 文件是 idea 创建的时候自动给创建的

<servlet-class> 标签下的 DispatcherServlet 指的就是 前端控制器

<servlet-mapping> 这个标签是一个映射关系, 使URL映射到类servlet-class所指定的类中!

servlet 和 servlet-mapping 都含有 <servlet-name> 主要原因是想通过servlet-name作为纽带,将servlet-class和url-pattern构成联系,使URL映射到类servlet-class所指定的类中!

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><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:springmvc-config</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 开启注解扫描 --></web-app>

springmvc-config.xml

这个配置文件只要自己载入的

InternalResourceViewResolver 该类表示一个视图解析器

suffixprefix 的作用分辨是限定加载的文件后缀名和文件所在目录

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd  "><!--开启注解扫描--><context:component-scan base-package="controller"/><!--开启视图解析器--><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--限定文件后缀名--><property name="suffix" value=".jsp"/><!--文件所在的目录,找这个路径下的文件--><property name="prefix" value="/WEB-INF/pages"/></bean><!--开启springmvc框架注解支持--><mvc:annotation-driven/>
</beans>

二、写两个前端页面实现跳转功能

index.jsp

主页

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<a href="/hello">开始跳转</a>
</body>
</html>

succes.jsp

跳转之后的页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>跳转成功吧</h1>
</body>
</html>

三、写一个控制器控制跳转

@RequestMapping 指的是接收某个请求之后就进入 toSuccess 方法

@Controller 是一个标记式注解,表示该类是一个 控制器 ,用于被扫描

@Controller
public class HelloController {@RequestMapping(path = "/hello")public String toSuccess(){System.out.println("成功跳转到success页面");return "/success";}
}

四、总结整个流程

1 启动服务器,加载一些配置文件

  • DispatcherServlet 对象被创建
  • springmvc-config 被夹在
  • HelloController 创建成对象

2 发送请求,后台处理请求

以上是第一个Spring MVC 内部运行的图,它的顺序是这样的。在 index.jsp 页面上得到一个 /hello 请求。由于在 web.xml 中设置了

<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
...
<servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>

也就是说,任何请求都要通过控制中心 DispatcherServlet 一方面找到对应请求的控制器中的方法让他去执行,会返回 /success,以后一方面加载 InternalResourceViewResolver 视图解析器, 使页面跳转到 success.jsp 页面

【SpringMVC 之应用篇】 1_SpringMVC入门 —— 第一个 Spring MVC 程序相关推荐

  1. 我的第一个Spring MVC程序

    1.先简单说一下SpringMVC的概念: Spring MVC是Spring为表现层提供的基于MVC设计模式的轻量级Web框架,是目前最主流的 MVC框架之一.它与Struts2框架一样,都属于MV ...

  2. 自己手写一个Spring MVC框架

    想要了解Spring MVC框架的原理,探究框架是如何设计的,不错的学习方式是阅读源码,然后自己手写一个框架.本文带领大家简化的手写一个Spring MVC框架. Spring框架对于Java后端程序 ...

  3. 从 0 开始手写一个 Spring MVC 框架,向高手进阶

    转载自   从 0 开始手写一个 Spring MVC 框架,向高手进阶 Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面.如 ...

  4. spring mvc学习(4):第一个spring mvc项目

    一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring MVC项目 ...

  5. 使用 Spring Boot CLI 运行第一个Spring boot程序

    简介 Spring Boot CLI是Spring Boot的命令行界面.它可以用来快速启动Spring.  它可以运行Groovy脚本.  Spring Boot CLI是创建基于Spring的应用 ...

  6. Spring学习笔记:第一个Spring Boot程序HelloWorld

    Spring学习笔记:第一个Spring Boot程序HelloWorld 一.跟着 Spring 了解技术趋势 1.看看 Spring 5.x 的改变暗示了什么 2.Spring Boot 和 Sp ...

  7. 用Intellij IDEA 创建第一个Spring MVC项目

    0 前言 一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring M ...

  8. spring Boot 2 基础篇 。内含 整合一个spring boot 的 小案例

    目录 springBoot2基础篇 前言与开发环境 一.快速创建Boot项目 1.使用spring提供的快速构建 2.基于maven的手动构建 3.在Idea中隐藏指定文件/文件夹 二.SpringB ...

  9. 【Spring-Boot】【入门 01】第一个 Spring Boot 程序

    文章目录 一.SpringBoot入门 1. SpringBoot简介 2.微服务 3.Spring Boot 的基础知识 4.环境约束 5.环境配置 maven设置 IDEA设置 二.创建一个Hel ...

最新文章

  1. 【Android NDK 开发】Kotlin 语言中使用 NDK ( 创建支持 Kotlin 的 NDK 项目 | Kotlin 语言中使用 NDK 要点 | 代码示例 )
  2. 021:自定义path(或url)转换器
  3. 《JavaScript设计模式与开发实践》——第3章 闭包和高阶函数
  4. ul1977标准_UL 1977连接器认证知识
  5. showdoc windows 搭建_ShowDoc的搭建
  6. 你真的会用 regexp_replace 吗?
  7. PHP实现调用淘宝SDK开放接口返回天猫或淘宝商品详情
  8. 用MSDN下载镜像(以Windows11为例)
  9. matlab遗传算法之goat工具箱
  10. 聚类分析方法的研究与应用综述
  11. 德语区国家的摄影测量与遥感
  12. 利用555定时器的双电源电路原理
  13. python 单词拆音节_基于Trie树进行拆分字符串变成拼音音节(一):构建拼音音节模型...
  14. 有文化的人吟了一句诗
  15. 实验05 视图的创建与管理
  16. android6.0 cta认证,手机cta认证要求有哪些?
  17. 单端阻抗为什么是50欧姆-探究
  18. [读书]《自驱型成长》
  19. Nomad集群 自身高可用测试
  20. Phoenix重磅 | Phoenix核心功能原理及应用场景介绍

热门文章

  1. docker 在esx上的网络配置
  2. 构造函数 Create 与 析构函数 Destroy
  3. Windows Batch [精华]
  4. CAN设备多机联网之总线容抗注意事项
  5. IAR环境下STM32+IAP方案的实现(转)
  6. ESP8266之2M脚本
  7. 设计模式总结之Builder Pattern(建造者模式)
  8. 测验1: Python基本语法元素 (第1周)
  9. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型
  10. MIMIC 以太坊医疗项目开发(7) 医疗智能合约 sample