10初识Spring MVC框架

学习内容

一、回顾

1.JSP Model2架构模型

  • 采用JSP + Servlet + JavaBean技术实现了页面显示、流程控制和业务逻辑的分离
  • Jsp负责生成动态网页,只用做显示页面;Servlet负责流程控制,用来处理各种请求的分派;JavaBeans负责业务逻辑,对数据库的操作
  • 流程控制等通用逻辑以硬编码的方式实现,每次开发新的Web应用程序均需重新编写流程控制、通用逻辑代码

2.Web MVC应用框架

  • Spring MVC框架就是目前最主流的Web MVC应用框架之一

二、Spring MVC介绍

1.Spring MVC概述

(1)Java EE开发的经典三层架构

包括表现层、业务层和持久层。

  • 表现层(Web层):负责接收客户端请求,并向客户端响应结果
  • 业务层(Service层):负责业务逻辑处理,和项目需求息息相关
  • 持久层(Dao层):负责和数据库交互,对数据库表进行增删改查

(2)Spring MVC框架

  • Spring MVC作用于三层架构中的表现层,用于接收客户端的请求并响应 ![image-20220416093655813](10初识Spring MVC框架/image-20220416093655813.png)
  • Spring MVC包含了控制器和视图
    • 控制器接收到客户端的请求后,对请求数据进行解析和封装,将请求转发给业务层
    • 业务层会对请求进行处理,最后将处理结果返回给表现层
    • 表现层接收到业务层的处理结果后,再由视图对处理结果进行渲染,渲染完成后响应给客户端

2.Spring MVC特点

  • Spring MVC是Spring框架的后续产品,可以方便地使用Spring框架所提供的其他功能
  • Spring MVC使用简单,很容易设计出干净简洁的Web层
  • Spring MVC支持各种请求资源的映射策略
  • Spring MVC具有非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API。
  • Spring MVC支持国际化,可以根据用户区域显示多国语言
  • Spring MVC支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术
  • Spring MVC灵活性强,易扩展

三、Spring MVC入门程序

1.实验环境要求

  • 要创建Web项目
  • 准备相关依赖包:
    • Spring MVC开发包:spring-webmvc.jar、spring-web.jar
    • Spring基础开发包:commons-logging-1.2.jar、spring-beans.jar、spring-context.jar、spring-core.jar、spring-expression.jar
    • spring-aop.jar
  • 配置Tomcat服务器

2.入门程序步骤

约定:Spring MVC的学习内容有三个单元,每个单元建一个项目,均放在springMVC目录下。

第一步:创建Web项目

  • 启动IDEA,单击菜单File -->New-->project...,弹出下图对象话并按图示设置

  • 选定项目位置为SpringMVC,项目名称chap10Introduce,具体如下图示。

  • 在src下创建包com.introduce,用以存放第10单元需要的源文件;在web\WEB-INF文件夹下创建jsp文件夹用以存放第10单元需要的jsp网页文件。具体项目结构如下图所示。

  • 设置web项目各类资源位置

  • web项目部署配置

单击ok前配置图示:

第二步:添加JAR包

  • 创建放依赖包的文件夹:在web\WEB-INF文件夹下创建lib文件夹
  • 复制依赖包:将Spring MVC开发spring-webmvc.jar、spring-web.jar,Spring基础开发包commons-logging-1.2.jar、spring-beans.jar、spring-context.jar、spring-core.jar、spring-expression.jar,及spring-aop.jar复制到lib文件夹中

![image-20220418114216904](10初识Spring MVC框架/image-20220418114216904.png)

  • 将依赖包文件夹添加为项目的库:在lib文件夹上单击鼠标右键,选择Add as Library...

第三步:配置Tomcat服务器

  • 单击菜单Run-->Edit configurations...,弹出对话框后按下图操作

  • 配置tomcat服务器

  • 添加部署项目

上图第二步后结果如下图。

  • 按Shift+F10启动项目 项目成功启动,并在浏览器中打开了默认网页,则说明之前配置没问题,可以开始开发web项目了!!
  • 为项目添加tomcat依赖包

第四步:配置前端控制器

  • Spring MVC通过前端控制器拦截客户端的请求并转发**(必有可少)**
  • 在web/WEB-INF/web.xml文件中配置


    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        
        1
    
    
        dispatcherServlet
         
        /
    

第五步:配置处理器映射信息和视图解析器

  • 编写Spring MVC配置文件spring-mvc.xml(放src文件夹。注意:如果创建了资源文件夹,也可以放在资源文件夹中),其中配置视图解析器及相关映射信息


    
    

    
    
        
        
        
    

第六步:编写处理器

  • 创建处理(控制)器类FirstController.java (放com.introduce.controller包)
package com.introduce.controller;

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

@Controller //设置当前类为处理器
public class FirstController {
    @RequestMapping("/hello") //设置当前方法的访问映射地址(在浏览器中输入的访问地址)
    public String toHello(){
        System.out.println("访问Hello.jsp");
        return "jsp/hello"; //设置具体的跳转页面
    }
}

第七步:创建视图(View)页面

  • 创建hello.jsp文件**(放web/WEB-INF/jsp文件夹)**
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

    
        First SpringMVC
    
    
        我的第一个Spring MVC文件。
    

第八步:启动项目并测试应用

  • 按快捷键Shift+F10
  • 在浏览器中输入网址http://localhost:8080/chap10Introduce/hello,显示下图页面

![image-20220418115032048](10初识Spring MVC框架/image-20220418115032048.png)

四、Spring MVC工作原理

1.Spring MVC三大组件

  • 处理器映射器:HandlerMapping负责根据用户请求的URL找到Handler(处理器)。可以理解为一个Map,Spring MVC提供了不同的映射器来实现不同的映射方式。
  • 处理器适配器:根据处理器映射器找到的处理器 Handler 信息,去执行相关的Handler。不同的处理器映射器映射出来的Handler对象是不一样的,不同的映射由不同的适配器来负责解析。
  • 视图解析器:进行视图解析。首先将逻辑视图名解析成物理视图名,即具体的页面地址,再生成View视图对象返回

2.Spring MVC执行流程

![image-20220418114845353](10初识Spring MVC框架/image-20220418114845353.png)

执行流程说明

(1)用户通过浏览器向服务器发送请求,请求被Spring MVC的前端控制器DispatcherServlet拦截。

(2)DispatcherServlet拦截到请求后,调用HandlerMapping(处理器映射器)。

(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

(4)DispatcherServlet通过返回信息选择合适的HandlerAdapter(处理器适配器)。

(5) HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。

(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。

(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet。

(8)前端控制器请求视图解析器根据逻辑视图名解析真正的视图。

(9)ViewResolver解析后,会向DispatcherServlet中返回具体的View(视图)。

(10)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。

(11)前端控制器向用户响应结果。

在上述执行过程中,DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver对象的工作是在框架内部执行的,开发人员只需要配置DispatcherServlet,完成Controller中的业务处理并在视图中(View)中展示相应信息。

3.配置文件中的相关配置

  • 在老版本的Spring MVC中,配置文件内必须要配置处理器映射器、处理器适配器和视图解析器
  • 在Spring4.0以后
    • 可以不配置处理器映射器、处理器适配器和视图解析器,框架会加载内部默认的配置完成相应的工作
    • 也可以在配置文件中使用 mvc:annotation-driven/ 元素自动注册处理器映射器和处理器适配器
    • 一般会配置视图解析器,而不是使用默认配置

五、补充:Maven管理Web项目

1.概述

Maven是一个项目管理工具,有如下作用:

  • maven根据pom.xml文件中相应的配置,自动从远程仓库下载相应的jar包;
  • maven可以将配置的jar包依赖的其他jar包自动下载下来;
  • maven可以对项目打war包或者jar包。

2.配置文件pom.xml

  • pom.xml中配置依赖如下图所示

![image-20220426230335506](10初识Spring MVC框架/image-20220426230335506.png)

  • pom.xml中防止资源导出失败配置


    
        
        
            src/main/resources
            
                **/*.properties
                **/*.xml
            
            true
        
        
        
            src/main/java
            
                **/*.properties
                **/*.xml
            
            true
        
    

3.使用Maven管理Spring MVC项目

第一步:创建mavent项目

  • 新建项目时按下图选择"Maven"

  • 新建项目结构如下图

![image-20220426232152364](10初识Spring MVC框架/image-20220426232152364.png)

第二步:为项目添加web资源文件夹

  • 单击菜单File -> Project structure...,在弹出的对话中为当前项目添加web模块,具体如下图:

![image-20220426233640878](10初识Spring MVC框架/image-20220426233640878.png)

  • 上图单击OK后,按下面两张图分别设置web.xml文件位置和web资源的根目录

  • 设置完效果如下图,之后OK

  • 上图OK后,项目结构如下图

![image-20220426235310881](10初识Spring MVC框架/image-20220426235310881.png)

第三步:配置本地仓库和远程仓库

  • 网上下载maven后解压在D:\Program Files文件夹中,文件结构如下图

  • 打开上图中conf文件夹下的settings.xml文件,按下图分别设置本地仓库位置和远程仓库地址


D:\Program Files\apache-maven-3.8.4\maven-repo


    nexus-aliyun  
    *,!jeecg,!jeecg-snapshots  
    Nexus aliyun  
    http://maven.aliyun.com/nexus/content/groups/public 

  • 单击File ->setting...按下图进行maven设置

第四步:在pom.xml中配置Spring MVC开发的依赖

  • 单击下图箭头的地方,会开始在远程仓库中按配置下载配置的JAR包

  • 下载成功后如下图

第五步:后续进行项目部署、配置Tomcat服务器做法与前述介绍一样。

注:如果依赖包不知道应该怎样书写依赖,可以到maven仓库搜索查找其书写方法

第一步:输入网址https://mvnrepository.com/,按下图搜索想要的jar包

第二步:按下图选个版本进入下一步

第三步:按下图复制依赖配置

六、课后练习

在入门案例的基础上,完成下述任务:

  • 在web/WEB-INF/jsp文件夹在创建test.jsp
  • 完成相关配置,在浏览器访问网址http://localhost:8080/chap10Introduce/user/test时显示如下页面

![image-20220418121052268](10初识Spring MVC框架/image-20220418121052268.png)

你可能感兴趣的:(JAVA,EE笔记,servlet,spring,java)