SpringMVC基础:运行原理流程图及实现

2021-03-19 09:24

阅读:673

标签:底层实现   inter   -o   servlet   bean   jsp   sch   支持   生成   

MVC:Model(dao,service) View(jsp)  Controller(servlet)

     模型           视图        控制器   

一,web开发的两个发展阶段

技术图片

 

 

 技术图片

二,SpringMVC流程图(官方中文版)

技术图片

 

 

 

 

 实际上(具体流程)SpringMVC流程图

注意:实线部分Spring已经完成的

   我们只需要是实现虚线部分    

技术图片

 

 

三,SpringMVC的简单搭建 (底层实现)

  1.导入MVC依赖(添加web支持)

   使用Idea做web开发时,注意:别忘了在项目结构中的 artifacts/WERB-NF下创建一个lib,并将依赖jar包全部导入其中

  2.配置web.xml,注册DispatcherServlet

    DispatcherServlet,是servlet上一层,对用户和servlet之间进行接收或转发(分发的作用),是SpringMVC的特有的,

    因为有封装了一层,是程序更加简易

xml version="1.0" encoding="UTF-8"?>
web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    
    servlet>
        servlet-name>springmvcservlet-name>
        servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        
        init-param>
            param-name>contextConfigLocationparam-name>
            param-value>classpath:springmvc-servlet.xmlparam-value>
        init-param>
        
        load-on-startup>1load-on-startup>
    servlet>

    
    
    servlet-mapping>
        servlet-name>springmvcservlet-name>
        url-pattern>/url-pattern>
    servlet-mapping>
web-app>

  注意:/和/*的区别
  答:/:只匹配所有请求,不会去匹配jsp页面

    /*:匹配所有请求,会去匹配jsp页面

  3,创建控制器(类)

package com.king.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {

        //ModelAndView 模型和视图
        ModelAndView mv = new ModelAndView();

        //封装对象,放在ModelAndView
        mv.addObject("msg","HelloSpringMVC!");

        //封装要跳转的视图,放在ModelAndView中
        mv.setViewName("hello");//:  /WEB-INF/jsp/hello.jsp

        return mv;
    }
}

 

 

  4,创建bean配置文件(Application.xml)

   作用:将对应类导入springIOC容器中

xml version="1.0" encoding="UTF-8"?>
beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        https://www.springframework.org/schema/aop/spring-aop.xsd">

    
    bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    
    
    
    bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        
        property name="prefix" value="/WEB-INF/jsp/"/>
        
        property name="suffix" value=".jsp"/>
    bean>

    
    bean id="/hello" class="com.king.controller.HelloController"/>

beans>

  

SpringMVC工作流程小结:1,用户操作,生成一个请求(servlet)

            2.这个servlet进入到SpringMVC的DispatcherServlet(请求分发器),通过映射处理器(BeanNameUrlHandlerMapping)的execution方法解析,获得参数,返回给请求分发器,

            3.DispatcherServlet在将信息传给url/映射适配器,通过它去找相对应controller,控制层的接口实现类,

            4.controller将已经封装好的model和view传回给适配器(HandlerAdapter),适配器再传给dispatcherServlet

            5.最后跳转页面,并将model部署到页面中实现后台与用户的交互

      

    

 

  

SpringMVC基础:运行原理流程图及实现

标签:底层实现   inter   -o   servlet   bean   jsp   sch   支持   生成   

原文地址:https://www.cnblogs.com/CL-King/p/13942123.html


评论


亲,登录后才可以留言!