SpringMVC之入门

目录

一.什么是SpringMVC

二.SpringMVC工作流程

三.SpringMVC核心组件

四.SpringMVC的入门

4.1.添加相关依赖

五.静态资源处理

 好啦,今天的分享就到这了,希望能够帮到你呢!  


一.什么是SpringMVC

SpringMVC是一个基于Java的Web应用开发框架,它是Spring Framework的一部分。它提供了一种模型-视图-控制器(MVC)的架构模式,用于构建灵活、可扩展和高效的Web应用程序。SpringMVC通过将请求和响应分离,使开发人员能够更好地组织和管理应用程序的不同组件。它还提供了许多功能,如请求映射、数据绑定、表单处理和验证等,以简化Web开发过程。

二.SpringMVC工作流程

SpringMVC之入门_第1张图片

 

SpringMVC的工作流程可以简述如下:

  1. 当客户端发送请求到SpringMVC应用程序时,请求将由前端控制器(Front Controller)DispatcherServlet接收。DispatcherServlet是SpringMVC的核心组件,负责协调和管理请求的处理流程。
  2. DispatcherServlet根据请求的URL找到对应的处理器(Handler),Handler是一个带有注解的方法或类,用于处理请求并生成响应。处理器可以根据请求的特征,如URL路径、请求方法、请求参数等进行匹配。
  3. 在执行处理器之前,SpringMVC通过处理器适配器(HandlerAdapter)对处理器进行封装和适配,使其符合统一的处理器接口(HandlerInterface)。这样就可以支持不同类型的处理器,如注解控制器(Annotation Controller)、Controller接口实现类、REST控制器等。
  4. 处理器执行过程中可以通过模型(Model)对象传递数据,模型是一个数据容器,用于保存处理结果并传递给视图(View)。处理器还可以返回一个逻辑视图名,告诉DispatcherServlet选择哪个视图来渲染响应。
  5. DispatcherServlet根据逻辑视图名选择合适的视图解析器(ViewResolver)来解析视图,并生成最终的响应。视图解析器负责将逻辑视图名解析为具体的视图,如JSP、Thymeleaf模板等。视图负责生成最终的HTML、XML、JSON等响应内容。
  6. 最后,DispatcherServlet将响应发送给客户端进行展示。整个请求-响应过程通过中央调度器DispatcherServlet进行协调和控制,使开发者能够集中精力在业务逻辑的处理上,提高开发效率。

SpringMVC还提供了许多功能和特性,如拦截器(Interceptor)用于对请求进行预处理和后处理、数据绑定和类型转换、表单验证、异常处理、RESTful支持等,以满足不同场景下的需求。总结而言,SpringMVC是一个基于Java的Web应用开发框架,通过MVC架构模式实现了灵活、可扩展的Web应用程序开发。它提供了一套全面的特性和组件,使开发人员能够快速构建高效、易于维护的Web应用程序。

三.SpringMVC核心组件

Spring MVC的核心组件包括以下几个部分:

  1. DispatcherServlet:前端控制器,作为中央调度器,接收并分发客户端请求。

  2. HandlerMapping:处理器映射器,根据请求的URL找到相应的处理器(Controller)。

  3. Controller:处理请求的处理器,负责执行业务逻辑并返回模型和逻辑视图名。

  4. ViewResolver:视图解析器,将逻辑视图名解析为具体的视图对象。

  5. View:视图对象,负责渲染模型数据并生成最终的响应。

  6. Model:模型对象,用于封装处理器处理逻辑得到的数据。

  7. HandlerInterceptor:处理器拦截器,可以在请求处理前后进行一些额外的处理,例如权限验证、日志记录等。

  8. DataBinder:数据绑定器,负责将请求参数绑定到处理器的方法参数上。

  9. Validator:验证器,用于对表单数据进行校验。

  10. MessageConverter:消息转换器,负责处理请求和响应的数据格式转换,例如JSON、XML等。

这些核心组件协同工作,构成了Spring MVC的基本架构,提供了强大而灵活的Web应用开发能力。

四.SpringMVC的入门

4.1.添加相关依赖

在项目中的pom.xml文件中添加依赖,增加后的所有引用配置如下 : 


 

  4.0.0
 
  org.example
  index
  1.0-SNAPSHOT
  war
 
  index Maven Webapp
  
  http://www.example.com
 
  
    UTF-8
    1.8
    1.8
    3.7.0
 
    
    
    5.0.2.RELEASE
    
    3.4.5
    
    5.1.44
    
    5.1.2
    
    1.3.1
    
    2.1.1
    2.4.3
    
    2.9.1
    
    4.12
    4.0.0
    1.18.2
    
    1.2
    1.1.2
    
    5.0.2.RELEASE
 
  
 
 
  
    
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-orm
      ${spring.version}
    
    
      org.springframework
      spring-tx
      ${spring.version}
    
    
      org.springframework
      spring-aspects
      ${spring.version}
    
    
      org.springframework
      spring-web
      ${spring.version}
    
    
      org.springframework
      spring-test
      ${spring.version}
    
 
    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    
    
    
      mysql
      mysql-connector-java
      ${mysql.version}
    
    
    
      com.github.pagehelper
      pagehelper
      ${pagehelper.version}
    
    
    
      org.mybatis
      mybatis-spring
      ${mybatis.spring.version}
    
 
    
    
      org.apache.commons
      commons-dbcp2
      ${commons.dbcp2.version}
    
    
      org.apache.commons
      commons-pool2
      ${commons.pool2.version}
    
 
    
    
    
      org.apache.logging.log4j
      log4j-core
      ${log4j2.version}
    
    
      org.apache.logging.log4j
      log4j-api
      ${log4j2.version}
    
    
    
      org.apache.logging.log4j
      log4j-web
      ${log4j2.version}
    
 
    
    
      junit
      junit
      ${junit.version}
      
    
    
      javax.servlet
      javax.servlet-api
      ${servlet.version}
      provided
    
    
      org.projectlombok
      lombok
      ${lombok.version}
      provided
    
 
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
      jstl
      jstl
      ${jstl.version}
    
    
      taglibs
      standard
      ${standard.version}
    
 
  
 
  
    index
 
    
      
      
        src/main/java
        
          **/*.xml
        
      
      
      
        src/main/resources
        
          jdbc.properties
          *.xml
        
      
    
 
      
 
        
          org.apache.maven.plugins
          maven-compiler-plugin
          ${maven.compiler.plugin.version}
          
            ${maven.compiler.source}
            ${maven.compiler.target}
            ${project.build.sourceEncoding}
          
        
        
          org.mybatis.generator
          mybatis-generator-maven-plugin
          1.3.2
          
            
            
              mysql
              mysql-connector-java
              ${mysql.version}
            
          
          
            true
          
        
 
 
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
  

创建 spring-mvc.xml:



    
    
 
    
    
 
    
    
        
        
        
        
    
 
    
    
 
    
    
 

配置web.xml:



  Archetype Created Web Application
  
  
  
    contextConfigLocation
    classpath:spring-context.xml
  
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
 
  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    true
    
      encoding
      UTF-8
    
  
  
    encodingFilter
    /*
  
 
  
  
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
    
    true
  
  
    SpringMVC
    /
  

创建一个 IndexController :

package com.junlinyi.web;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 

/**
 * @author 君临沂
 * @site www.junlinyi.jly
 * @company 君氏集团
 * @create  2023-09-04 16:15
 */
@Controller
@RequestMapping("/Cloud")
public class IndexController {
 
    @RequestMapping("/Jun")
    public String primary(){
        System.out.println("hello SpringMVC。。。");
        return "hello";
    }
}

测试为:

SpringMVC之入门_第2张图片

五.静态资源处理

在webapp下建立一个static,然后建立一个image用来存图片,如图:

再在 spring-mvc.xml 配置文件中增加以下代码 :

     
    

效果图:

SpringMVC之入门_第3张图片

 好啦,今天的分享就到这了,希望能够帮到你呢!  

你可能感兴趣的:(spring)