SpringMVC是Spring框架的一个模块,无需通过中间层整合在一起。
SpringMVC是一个基于MVC设计模式web框架,MVC-model-view-controller:MVC将服务器端分为M、V、C三个组件,各模块负责各自的业务,实现了数据、业务逻辑和视图显示的分离。使软件模块化。model处理数据属于业务逻辑,controller完成数据和业务的调度,view完成视图显示。

SpringMVC的几个重要组件:
DispatcherServlet:前端控制器,主要是接收前端数据,通过HandlerMapping查找相应的Handler(通过HandlerAdapter适配)。DispatcherServlet将数据调度到相应的Handler执行。Handler(即SpringMVC中的Controller的实例?)执行得到ModelAndView,返回给DispatcherServlet。然后DispatcherServlet调用ViewResolver进行视图解析,ViewResolver解析完成得到View返回给DispatcherServlet,最后DispatcherServlet渲染数据到JSP/JSTL等返回给客户。
HandlerMapping映射器:根据请求的url查找Handler。
HandlerAdapter适配器:通过适配器DispatcherServlet无需实现所有的Handler的调用规则,只需执行对HandlerAdapter的调用。按照特定规则(HandlerAdapter要求的规则)去执行Handler
处理器Handler(需要攻城狮开发):编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行HandlerHandler。是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要攻城狮根据业务需求开发Handler
视图解析器ViewResolver(不需要攻城狮开发),由框架提供:进行视图解析,根据逻辑视图名解析成真正的视图(view)。ViewResolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
视图View(需要攻城狮开发jsp...)

xml配置方式的SpringMVC的开发:
1、在web.xml中配置前端控制器(DispatcherServlet)
<servlet>
    <!--   配置前端控制器(DispatcherServlet)  -->
    <!--   配置name&class   -->
    <!--   <init-param>是SpringMVC配置文件在web.xml的映射  -->
    <!--   <servlet-mapping>中将所有的.action结尾的url交给DispatcherServlet解析  -->
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <!-- contextConfigLocation:指定springmvc配置的加载位置,如果不指定则默认加
           载WEB-INF/servlet名称—servlet.xml(springmvc-servlet.xml)
     -->
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <!-- load-on-startup:表示servlet随服务启动; -->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!--
          第一种:*.action 或者 *.do,访问以.action或*.do结尾 由DispatcherServlet进行解析
          第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析
          使用此种方式可以实现 RESTful风格的url
          第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,
          仍然会由DispatcherServlet解析jsp地址,不能根据jsp页面找到handler,会报错。
   -->
    <url-pattern>*.action</url-pattern>
</servlet-mapping>
<!-- springMvc前端控制器配置 -->
2、配置Spring MVC的配置文件
Spring MVC的配置文件由<servlet><init-param></init-param></servlet>指定
在springmvc中配置处理器适配器
<!-- 处理器适配器 所有处理器适配器都实现 HandlerAdapter接口 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
3、开发handler(及Controller)
需要实现Controller(com.springmvc.controller)接口实现handleRequest方法:方法原型:ModelAndView handleRequest(HttpServletRequest req,
HttpServletResponse res) throws Exception
返回ModelAndView接口
4、配置Handler
      <!-- 配置Handler -->
    <bean id="itemsController1" name="/queryItems_test1.action" class="com.springmvc.controller.ItemsController01" />

5、配置视图解析器
              <!-- 视图解析器   解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包   -->
          <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
              <!-- 配置jsp路径的前缀 -->
              <property name="prefix" value="/WEB-INF/jsp/"/>
              <!-- 配置jsp路径的后缀 -->
              <property name="suffix" value=".jsp"/>
          </bean>
6、配置HandlerMapping:一个映射器可以有多个Url和Controller的映射,也可同时存在多个HandlerMapping映射器,url和Controller是一对一的关系,而Controller与url可以是一对多的关系。Controller可以处理多个url请求,url要指定一个Controller来执行,否则引起混乱。
       <!--简单url映射  -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <!-- 对itemsController1进行url映射,url是/queryItems1.action -->
                <prop key="/queryItems1.action">itemsController1</prop>
                <prop key="/queryItems2.action">itemsController1</prop>
                <prop key="/queryItems3.action">itemsController2</prop>
            </props>
        </property>
    </bean>
7、配置DispatcherSerlvet.properties
路径在org.springframework.web.servlet.DispatcherSerlvet.properties

二、使用注解

Spring MVC基础学习的更多相关文章

  1. Spring Framework基础学习

    Spring Framework基础学习 Core support for dependency injection,transaction management,web applications,d ...

  2. Spring MVC 基础

    Spring MVC 基础 1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是 ...

  3. ASP.NET MVC基础学习

    ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及 ...

  4. springboot学习章节代码-Spring MVC基础

    1.项目搭建. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  5. Spring MVC基础了解

    参考网址:https://www.yiibai.com/spring_mvc/springmvc_overview.html Spring框架相关 Spring Security 一个灵活强大的身份验 ...

  6. Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)

    书接上文 首先根据各种Spring MVC教程,建立了基础的结构,是否合理不知道,姑且先这样,有问题再解决问题.学习新东西,不能怕掉坑里... 查询网上别人的经历说需要把根目录下的lib目录下的所有包 ...

  7. spring boot基础学习教程

    Spring boot 标签(空格分隔): springboot HelloWorld 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新 ...

  8. spring mvc 深入学习

    参考文章: 第二章 Spring MVC入门 —— 跟开涛学SpringMVC Spring MVC 3.0 深入总结:http://blog.csdn.net/sunitjy/article/det ...

  9. spring mvc 注解 学习笔记(一)

    以前接触过spring,但是没有接触spring mvc 以及注解的应用,特习之,记之: 注解了解 @Component 是通用标注, @Controller 标注web控制器, @Service 标 ...

随机推荐

  1. shell脚本里获取字符串的最后一个字符

    STR=123456abc FINAL=`echo ${STR: -1}` 或者 FINAL=${STR: -1} 都可以让FINAL获得c这个最后一个字符  

  2. IntelliJ IDEA的入门使用

    1 修改背景颜色 点击File,Settings 2 修改字体格式,以及字体大小 我个人习惯Eclipse的默认字体,所有把字体修改成Eclipse默认的Consolas 同上点击File,Setti ...

  3. Java基础学习笔记二十三 Java核心语法之反射

    类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任 ...

  4. 实验四:Android 开发基础

    实验四:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:5月26日 实验密级: 非密级 预习程度: 已预习 必修/选修 ...

  5. Alpha冲刺Day4

    Alpha冲刺Day4 一:站立式会议 今日安排: 我们把项目大体分为四个模块:数据管理员.企业人员.第三方机构.政府人员.完成了数据库管理员模块.因企业人员与第三方人员模块存在大量的一致性,故我们团 ...

  6. 设计模式NO.2

    设计模式NO.2 本次博客内容为第二次设计模式的练习.根据老师的要求完成下列题目: 题目1 如果需要开发一个跨平台视频播放器,可以在不同操作系统平台(如Windows.Linux.UNIX等)上播放多 ...

  7. 20145237 实验二 “Java面向对象程序设计”

    20145237 实验二 “Java面向对象程序设计” 实验内容 • 理解并掌握面向对象三要素:封装.继承.多态 • 初步掌握UML建模 • 熟悉S.O.L.I.D原则 • 使用TDD设计实现复数类 ...

  8. 【iOS】swift 枚举

    枚举语法 你可以用enum开始并且用大括号包含整个定义体来定义一个枚举: enum SomeEnumeration { // 在这里定义枚举 } 这里有一个例子,定义了一个包含四个方向的罗盘: enu ...

  9. SDOI2017 相关分析

    把两个式子拆开 Σ(xi-px)(yi-py) =Σ xiyi + py * Σ xi - px * Σ yi + Σ 1* px * py Σ (xi-px)² = Σ xi² +  px * Σ ...

  10. win10 安装mingw ruby rails

    原文可以参考 https://ruby-china.org/topics/17581 在window10 安装ruby rails https://rubyinstaller.org/download ...