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

快速入门Spring MVC 一篇就够了

前言

我们前面学习了Spring两大核心机制IoC和AOP,接下来我们一起来学习Spring MVC。这篇文章带你快速入门Spring MVC。

Spring MVC概述

Spring MVC是目前主流的实现MVC设计模式的框架,是Spring框架的一个分支产品,以Spring loC容器为基础,并利用容器的特性来简化它的配置。Spring MVC相当于Spring的-一个子模块,可以很好的和Spring结合起来进行开发,是Java Web开发者必须要掌握的框架。

什么是MVC设计模式?

将应用程序分为Controller Model View 三层,Controller 接收客户端请求,调用Model生成业务数据,传递给View,Spring MVC就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,让开发者可以更加轻松、便捷地完成基于MVC模式的Web开发。

MVC核心组件

  • DispatcherServlet: 前置控制器,是整个流程控制的核心,控制其他组件的执行,进行统一调度,降低组件之间的耦合性,相当于总指挥。

  • Handler: 处理器,完成具体的业务逻辑,相当于Servlet 或Action。

  • HandlerMapping: DispatcherServlet 接收到请求之后,通过HandlerMapping将不同的请求映射到不同的Handler。

  • HandlerInterceptor: 处理器拦截器,是-一个接口,如果需要完成- -些拦截处理, 可以实现该接口。

  • HandlerExecutionChain: 处理器执行链,包括两部分内容: Handler 和HandlerInterceptor (系统会有一个默认的HandlerInterceptor,如果需要额外设置拦截,可以添加拦截器)。

  • HandlerAdapter: 处理器适配器,Handler执行业务方法之前,需要进行- -系列的操作,包括表单数据的验证、数据类型的转换、将表单数据封装到JavaBean等,这些操作都是由HandlerApater来完成,开发者只需将注意力集中业务逻辑的处理上,DispatcherServlet 通过HandlerAdapter执行不同的Handler。

  • ModelAndView: 装载了模型数据和视图信息,作为Handler的处理结果,返回给DispatcherServlet。

  • ViewResolver: 视图解析器,DispatcheServlet 通过它将逻辑视图解析为物理视图,最终将渲染结果响应给客户端。

Spring MVC的工作流程

  • 客户端请求被DisptacherServlet接收。

  • 根据HandlerMapping映射到Handler。

  • 生成Handler和HandlerInterceptor。

  • Handler 和HandlerInterceptor以HandlerExecutionChain的形式一并返回给DisptacherServlet。

  • DispatcherServlet 通过HandlerAdapter调用Handler的方法完成业务逻辑处理。

  • Handler 返回一个ModelAndView给DispatcherServlet。

  • DispatcherServlet将获取的ModelAndView对象传给ViewResolver视图解析器,将逻辑视图解析为物理视图View。

  • ViewResovler 返回-个View给DispatcherServlet。

  • DispatcherServlet 根据View进行视图渲染。

  • DispatcherServlet 将渲染后的结果响应给客户端。

创建第一个Spring MVC项目

前面我们讲了这么多的理论,看起来非常的复杂,其实,在我们实际开发中,Spring MVC使用起来还是比较简单的,其中很多的过程Spring都会自动去处理好。下面我们就来创建自己的第一个Spring MVC项目。

1.创建一个maven项目

这里创建maven项目不同于我们之前,这里需要勾选Create from archetype并选择archetype-webapp,后面就很简单,一路next下去就ok。

创建项目之后,需要稍等几分钟下载一些依赖。

创建完成之后就是这么个目录结构。webapp包中存放的是webapp的一些组件。

在main目录下创建java文件夹用于存放Java代码,然后右键点击java文件夹。

2.在pom.xml中引入spring-webmvc依赖

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.3.15</version>
</dependency>b
复制代码

3.spring.xml配置

<!-- 自动扫描 -->
<context:component-scan base-package="com"></context:component-scan>

<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>
复制代码

自动扫描我们应该比较熟悉,之前在AOP中有配置过。

这个视图解析器呢实际上就是相当于把逻辑视图解释成物理视图,这么说可能比较抽象。比如我们一个方法返回了一个homepage,我们这时需要将homepagehomepage.jsp匹配起来,我们就需要配个前缀和后缀,prefixsuffix分别就是前缀和后缀的意思。前缀是在homepage前面写的/ 表示根目录,后缀即写在homepage后面的就是.jsp

4.在web.xml中配置DispatcherServlet

<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.xml</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
复制代码

5.创建Handler

在java文件下创建一个包,我的包名为com.controller,包下创建FirstHandlerjava文件。

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class FirstHandler {

    @RequestMapping("/homepage")
    public String homepage(){
        System.out.println("打开homepage");
        return "homepage";
    }
}
复制代码

代码解析

@Controller注解与@Component注解类似,都是将类交给IoC容器来进行管理,但与@Component不同的是,@Controller多了一个控制器的功能。

homepage()就是我们的业务方法,这时我们需要将业务方法和控制器关联起来,我们就需要用到 @RequestMapping注解参数为"/homepage",这样在我们在浏览器中访问http://localhost:8080/homepage的时候,我们就能执行homepage()方法,这个方法又返回一个"homepage"相当于一个逻辑视图,这样再配合我们前面配置的视图解析器就能找到我们的homepage.jsp文件了。

6.创建homepage.jsp文件

<html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <h1>HelloWorld</h1>
    </body>
</html>
复制代码

这样我们Spring MVC的基本环境就配置好了,接下来要运行我们的项目就需要配置tomcat。

配置tomcat

1.首先,我们点击ADD Configurations,如图所示:

2.然后,点击左上角的+号。

3.在左侧边栏中找到Tomcat Server并点击Local。

4.点击Deplyment,再点击+号,将项目war包添加进来。

5.修改Application context。

我们去掉后面的直接访问根目录。然后点击Apply和ok就可以了。

启动项目

运行项目,然后我们在浏览器中访问http://localhost:8080/homepage就能看到我们的页面了。

这样我们就完成了Spring MVC的基本的环境搭建。

对Spring MVC感兴趣的小伙伴们支持一下,后面的内容我会持续更新。

相关文章:

  • 本溪做网站 淘宝店/自己想开个网站怎么弄
  • 企业网站设计行业/自助发稿
  • 教怎么做ppt的网站/厦门网络推广哪家强
  • 做二手的网站有哪些/免费影视软件靠什么赚钱
  • wordpress内网穿透/查网站排名
  • 深圳住房城乡建设局网站/如何做好网络推广
  • 【知识图谱】什么是知识图谱?知识图谱的应用。知识图谱的数据模型(三元组 模型、属性图模型)。西游记中的知识图谱。
  • mybatis 中@SelectProvider注解的使用
  • QT qt 3d 绘图
  • SpringCloud Alibaba | 网关(三) : SpringCloudGateway 过滤器获取application/json中body数据
  • 李沐精读论文:Swin transformer: Hierarchical vision transformer using shifted windows
  • R语言应用xgboost进行机器学习(1)
  • 2023年天津理工大学中环信息学院专业课考试具体安排
  • URLLC关键技术和网络适应性分析
  • 【圣诞节特辑】爱心代码(程序员的浪漫plus+)-李峋
  • Apache Spark 练习六:使用Spark分析音乐专辑数据
  • 【DETR目标检测】关键词:Decoder。Encoder。query向量。注意力机制。
  • Hook原理