SpringMvc入门

目录

1.什么是SpringMvc

2.SpringMVC工作流程

3.SpringMVC核心组件

 4.SpringMvc入门

添加依赖

编写spring-mvc.xml

 编写IndexController类

编写jsp

编写web.xml

测试结果

5.静态资源处理 

编写Spring-mvc.xml

测试结果

​编辑 


1.什么是SpringMvc

Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

此外,Spring MVC 的注解驱动和对 REST 风格的支持,也是它最具特色的功能。无论是在框架设计,还是扩展性、灵活性等方面都全面超越了 Struts2 等 MVC 框架。并且由于 Spring MVC 本身就是 Spring 框架的一部分,所以可以说与 Spring 框架是无缝集成,性能方面具有先天的优越性,对于开发者来说,开发效率也高于其它的 Web 框架,在企业中的应用越来越广泛,成为主流的 MVC 框架。

2.SpringMVC工作流程

SpringMvc入门_第1张图片

  1. 用户发来一个请求,首先进入的是前端控制器DispatcherServlet

  2. 前端控制器(DispacherServlet)将用户发来的请求发送给处理器映射器(HandlerMapping)

  3. 处理器映射器根据前端控制器发来的用户的请求找到对应符合的控制器(Handler),并且将其封装成处理器执行链,返回给前端控制器。

  4. 处理器适配器接收到来自前端控制器的执行链后,找到对应执行此执行链的处理器适配器(HandlerAdapter)来调用的具体的控制器(就是说其对应的方法或者逻辑)

  5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller(处理业务逻辑)

  6. 控制器执行完成后,会返回一个ModelAndView对象给处理器适配器

  7. 处理器适配器将返回来的ModelAndView对象返回给前端控制器(到这里所有的业务处理过程就要完了,接下就是将结果以页面的的形式响应给用户)

  8. 前端控制器将返回回来的ModelAndView对象交给视图解析器(ViewResolver),视图解析器根据传过来的View对象解析成对应的页面对象

  9. ViewResolver 将封装好的将页面对象和Model对象返回给 DIspatcherServlet

  10. 前端控制器再将返回回来的对象交给视图(View)

  11. 视图根据传过来的Model对象再一次的对页面进行渲染(将模型数据填充至视图中),然后在返回给前端控制器。

  12. 前端控制器将完成的结果响应给浏览器,然后浏览器在展现给用户。

 

3.SpringMVC核心组件

SpringMVC是一个基于Java的Web框架,它使用了一些核心组件来处理Http请求和响应。以下是SpringMVC的一些核心组件:

  1. DispatcherServlet:作为前端控制器,它是SpringMVC处理请求的入口点。它接收所有的请求,并将它们分发给相应的控制器来处理。

  2. HandlerMapping:根据请求的URL地址和相关的配置信息,将请求映射到对应的处理器(Controller)。

  3. HandlerAdapter:负责调用处理器(Controller)来处理请求,并返回结果。

  4. ViewResolver:根据处理器返回的逻辑视图名解析出实际的视图对象。

  5. View:负责渲染数据,并生成最终的响应。

  6. Model:用于存储和传递数据,在处理器和视图之间进行交互。

  7. Interceptor:用于在请求处理的各个阶段添加拦截逻辑,例如日志记录、权限校验等。

 4.SpringMvc入门

添加依赖

SpringMvc入门_第2张图片

 SpringMvc入门_第3张图片

编写spring-mvc.xml



    
    

    
    

    
    
        
        
        
        
    



    
    

 编写IndexController类

package com.zking.web;

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

/**
 * @author bing人
 * @site
 * @company xy集团
 * @create 2023-09-04 16:31
 * @Controller替换了自定义mvc中的
 * extends ActionSupport
 */

@Controller
public class IndexController {
    //首页
    @RequestMapping("/hello")
    public String hello(){
        System.out.println("hello soringmvc");
        return  "hello";
    }
}

编写jsp

<%--
  Created by IntelliJ IDEA.
  User: 30340
  Date: 2023/9/4
  Time: 16:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


hello word!


编写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
    /
  

测试结果

SpringMvc入门_第4张图片

5.静态资源处理 

编写Spring-mvc.xml

SpringMvc入门_第5张图片

SpringMvc入门_第6张图片 

测试结果

 

你可能感兴趣的:(状态模式)