码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-11-08 17:45:18      阅读:26      评论:0      收藏:0      [点我收藏+]

标签:底层实现   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">

    <!--1.注册DispatcherServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--启动级别-1-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--/ 匹配所有请求:(不包括,jsp)-->
    <!--/* 匹配所有请求:(包括,jsp)-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-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">

    <!--处理映射器(url处理器)-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <!--处理器适配器(url适配器)-->
    <!--视图解析器-->
    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--Handler-->
    <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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!