• SpringMVC(一、快速入门)


    1、SpringMVC概述

    ​ SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。

    ​ SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优 秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时 ,它还支持 RESTful 编程风格的请求。

    ​ 它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具有的优势。而且框架本身有代码,看起来容易理解。

    2、SpringMVC快速入门

    开发步骤:

    ​ ① 导入SpringMVC相关坐标

    ​ ② 配置SpringMVC核心控制器DispathcerServlet

    ​ ③ 创建Controller类和视图页面

    ④ 使用注解配置Controller类中业务方法的映射地址
    
    ⑤ 配置SpringMVC核心文件 spring-mvc.xml 
    
    • 1
    • 2
    • 3

    ​ ⑥ 客户端发起请求测试

    1、导入坐标

    • ​ 导入Spring和SpringMVC的坐标
    		
                org.springframework
                spring-web
                5.0.5.RELEASE
            
            
                org.springframework
                spring-webmvc
                5.0.5.RELEASE
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • ​ 导入Servlet和Jsp的坐标
    		
                javax.servlet
                javax.servlet-api
                3.0.1
                provided
            
            
                javax.servlet.jsp
                javax.servlet.jsp-api
                2.2.1
                provided
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2、在web.xml配置SpringMVC的核心控制器

    
    
    
    
        
        
            DispatcherServlet
            org.springframework.web.servlet.DispatcherServlet
            
                contextConfigLocation
                classpath:spring-mvc.xml
            
            1
        
        
            DispatcherServlet
            /
        
    
    
        
        
            contextConfigLocation
            classpath:applicationContext.xml
        
    
        
        
            org.springframework.web.context.ContextLoaderListener
        
    
    
        
            UserServlet
            com.xmp.web.UserServlet
        
        
            UserServlet
            /userServlet
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    3、创建Controller类和视图页面

    • 创建Controller和业务方法
    @Controller
    @RequestMapping("/user")
    public class UserController {
    
        // 请求地址  http://localhost:8080/user/quick
        @RequestMapping(value="/quick",method = RequestMethod.GET,params = {"username"})
        public String save(){
            System.out.println("Controller save running....");
            return "success";
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 创建视图页面index.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
        

    Success!

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4、测试

    在这里插入图片描述

    3、SpringMVC流程图示

    在这里插入图片描述

    在这里插入图片描述

    小结

    SpringMVC的开发步骤

    导入SpringMVC相关坐标 
    
    配置SpringMVC核心控制器DispathcerServlet
    
    创建Controller类和视图页面 
    
    使用注解配置Controller类中业务方法的映射地址
    
    配置SpringMVC核心文件 spring-mvc.xml 
    
    客户端发起请求测试
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4、SpringMVC 组件解析

    在这里插入图片描述

    1、SpringMVC的执行流程

    ① 用户发送请求至前端控制器DispatcherServlet。

    ② DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    ③ 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果 有则生成)一并返回给DispatcherServlet。

    ④ DispatcherServlet调用HandlerAdapter处理器适配器。

    ⑤ HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

    ⑥ Controller执行完成返回ModelAndView。

    ⑦ HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

    ⑧ DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

    ⑨ ViewReslover解析后返回具体View。

    ⑩ DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet响应用户。

    2、SpringMVC组件解析

    1. 前端控制器:

      DispatcherServlet 用户请求到达前端控制器,它就相当于 MVC 模式中的 C,DispatcherServlet 是整个流程控制的中心,由 它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。

    2. 处理器映射器:

      HandlerMapping HandlerMapping 负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器实现不同的 映射方式,例如:配置文件方式,实现接口方式,注解方式等。

    3. 处理器适配器:

      HandlerAdapter 通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理 器进行执行。

    4. 处理器:Handler 它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由 Handler 对具体的用户请求进行处理。

    5. 视图解析器:

    6. View Resolver View Resolver 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名,即 具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

    7. 视图:

      View SpringMVC 框架提供了很多的 View 视图类型的支持,包括:jstlView、freemarkerView、pdfView等。最 常用的视图就是 jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程 序员根据业务需求开发具体的页面

    3、SpringMVC注解解析

    @RequestMapping

    • ​ 作用:

    ​ 用于建立请求 URL 和处理请求方法之间的对应关系

    • ​ 位置:

    ​ 类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录

    ​ 方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径

    • ​ 属性:

    ​ value:用于指定请求的URL。它和path属性的作用是一样的

    ​ method:用于指定请求的方式

    ​ params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样

    • ​ 例如:

    ​ params = {“accountName”},表示请求参数必须有accountName

    ​ params = {“moeny!100”},表示请求参数中money不能是100

    1. mvc命名空间引入

      命名空间:

      xmlns:context=“http://www.springframework.org/schema/context”

      xmlns:mvc=“http://www.springframework.org/schema/mvc”

      约束地址:http://www.springframework.org/schema/context

      http://www.springframework.org/schema/context/spring-context.xsd

      http://www.springframework.org/schema/mvc

      http://www.springframework.org/schema/mvc/spring-mvc.xsd

    2. 组件扫描 SpringMVC基于Spring容器,所以在进行SpringMVC操作时,需要将Controller存储到Spring容器中,如果使 用@Controller注解标注的话,就需要使用进行组件扫描。

    5、SpringMVC的XML配置解析

    1、视图解析器

    ​ SpringMVC有默认组件配置,默认组件都是DispatcherServlet.properties配置文件中配置的,该配置文件地址 org/springframework/web/servlet/DispatcherServlet.properties,该文件中配置了默认的视图解析器,如下:

    org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver
    
    • 1

    ​ 翻看该解析器源码,可以看到该解析器的默认设置,如下:

    REDIRECT_URL_PREFIX = "redirect:" --重定向前缀
    FORWARD_URL_PREFIX = "forward:" --转发前缀(默认值)
    prefix = ""; --视图名称前缀
    suffix = ""; --视图名称后缀
    
    • 1
    • 2
    • 3
    • 4

    ​ 我们可以通过属性注入的方式修改视图的的前后缀

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    小结

    SpringMVC的相关组件

    ​ • 前端控制器:DispatcherServlet

    ​ • 处理器映射器:HandlerMapping

    ​ • 处理器适配器:HandlerAdapter

    ​ • 处理器:Handler

    ​ • 视图解析器:View Resolver • 视图:View

    SpringMVC的注解和配置

    ​ • 请求映射注解:@RequestMapping

    ​ • 视图解析器配置:

    REDIRECT_URL_PREFIX = “redirect:”

    FORWARD_URL_PREFIX = “forward:”

    prefix = “”; suffix = “”;

  • 相关阅读:
    在windows平台通过jenkins.war 启动jenkins,并设置JENKINS_HOME
    c++11特性(3)
    Nginx的核心配置文件详解
    b 树和 b+树的理解
    初识C语言(1)
    计算机视觉发展历史、优势以及面临的挑战
    安装nginx,配置https,并解决403问题
    打不开github网页解决方法
    百度超级链开放网络治理监督藏品火爆售罄!
    Java dom4j生成XML文件的方法分享
  • 原文地址:https://blog.csdn.net/qq_53463544/article/details/126082768