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. 【CSS】 CSS 定位

    css 定位和浮动 *******本章大量内容copy自w3school********* 定位对于html界面还是很重要的,因为定位会直接影响到用户的视图.对于css而言,定位也比较灵活. 浮动是一 ...

  2. Repeating Decimals UVA - 202

    The / repeats indefinitely with no intervening digits. In fact, the decimal expansion of every ratio ...

  3. JavaScript(简介)【Javascript历史】

    学习一门知识应该了解其背景,很多人认为会用就行,起初我也是这么认为的,但后来才知道对起源的了解也很必要,从事javascript开发5年,今天开始总结一些笔记,分享下. 一.什么是JavaScript ...

  4. 记录python接口自动化测试--从excel中读取params参数传入requests请求不生效问题的解决过程(第七目)

    在第六目把主函数写好了,先来运行一下主函数 从截图中可以看到,请求参数打印出来了,和excel中填写的一致 但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中 ...

  5. Welcome to StackEdit!

    Welcome to StackEdit! Hey!our first Markdown document in StackEdit1. Don't delete me, I'm very helpf ...

  6. C语言第三次博客作业—循环结构

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数 char sex; //sex表示性别 double High; //Hight表示身高 scanf("%d&qu ...

  7. 每日冲刺报告——Day5(Java-Team)

    第五天报告(11.6  周一) 团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://git ...

  8. jquery基本使用和实例

    一.寻找元素 表单选择器 $(":input") //匹配所有 input, textarea, select 和 button 元素 $(":text") / ...

  9. Java 后端微信小程序支付demo (网上说的坑里面基本上都有)

    Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...

  10. socket , 套接口还是套接字,傻傻分不清楚

    socket 做网络通信的朋友大都对socket这个词不会感到陌生,但是它的中文翻译是叫套接口还是套接字呢,未必大多数朋友能够分清,今天我们就来聊聊socket的中文名称. socket一词的起源 在 ...