zoukankan      html  css  js  c++  java
  • SpringMVC框架的学习(一):初步认识

    前言:首先我们学习SpringMVC之前需要理解什么是MVC模式

    MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。

    MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。(下面是个人理解的简单流程图)

     SpringMVC的流程图

    详细理解一下这个流程图

    其中导入相应的jar包(其中jackson是后面需要用到)

    1.  首先是客户发出一个请求http://localhost:8080/springmvc-01/my.do.
    2. 到达web.xml文件中DispatherServlet查看是否符合url的要求
    3. DispathcherServlet就会查询到springmvc中的配置文件找到HanderMapping
    4. 根据bean中的名称查找相应的controller
    5. 找到我的Mycontroller类执行该类中的handleRequestInternal方法
    6. 根据返回的modelAndView在找springmvc配置文件中视图解析器。

    把viewName和prefix以及suffix做了一个拼接。把拼接的页面展示给客户

    当中HanderMapping一般有三种

     1. BeanNameUrlHandlerMapping 根据bean标签的名称找到对应的Controller类(也就是默认调用的那种)

     1  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2     xsi:schemaLocation="http://www.springframework.org/schema/beans
     3         http://www.springframework.org/schema/beans/spring-beans.xsd">
     4          
     5     <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
     6      
     7     <bean name="/my.do" class="com.zhiyou100.hhz.controller.MyController2"></bean>   
     8     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     9         <property name="prefix" value="/WEB-INF/view/"/>
    10         <property name="suffix" value=".jsp"/>
    11     </bean>
    12  
    13 </beans>

     2. SimpleUrlHandlerMapping 根据bean的id查找对应的Controller类。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans
     5         http://www.springframework.org/schema/beans/spring-beans.xsd">
     6          
     7     <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     8         <property name="mappings">
     9             <props>
    10                 <prop key="/a.do">my1</prop>
    11                 <prop key="/b.do">my2</prop>
    12             </props>
    13         </property>
    14      
    15         <bean id="/my1" class="com.zhiyou100.hhz.controller.MyController1"></bean>
    16     <bean  id="/my2" class="com.zhiyou100.hhz.controller.MyController2"></bean>
    17     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    18         <property name="prefix" value="/WEB-INF/view/"/>
    19         <property name="suffix" value=".jsp"/>
    20     </bean>
    21  
    22 </beans>

    3. ControllerClassNameHandlerMapping 根据controller类的名字找到对应的Controller。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans
     5         http://www.springframework.org/schema/beans/spring-beans.xsd">
     6          
     7     <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
     8     <bean class="com.zhiyou100.hhz.controller.MyController1"></bean>
     9     <bean class="com.zhiyou100.hhz.controller.MyController2"></bean>
    10  
    11     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    12         <property name="prefix" value="/WEB-INF/view/"/>
    13         <property name="suffix" value=".jsp"/>
    14     </bean>
    15  
    16 </beans>
  • 相关阅读:
    《C++ Primer(第五版)》知识巩固
    Ubuntu下配置安装Hadoop 2.2
    Golang框架beego和bee的开发使用
    C++下混合编译c语言方法总结
    算法导论学习笔记1---排序算法(平台:gcc 4.6.7)
    基于web端去除空格小工具
    Google Map API抓取地图坐标信息小程序
    【算法导论】散列表
    【算法导论】二叉搜索树
    【算法导论】基本数据结构
  • 原文地址:https://www.cnblogs.com/banzhuanlaowang/p/11482117.html
Copyright © 2011-2022 走看看