zoukankan      html  css  js  c++  java
  • SpringMVC学习笔记(一)

    一.MVC的流程图

    分析流程图

      

    1、 首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的1、2步骤;
    2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图中3、4、5步骤;
    3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2中的步骤6、7;
    4、 前端控制器再次收回控制权,将响应返回给用户,图中的步骤8;至此整个结束。

    二.SpringMVC的流程图

    Spring工作流程描述

          1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;

          2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

          3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)

           4.  提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

          HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

          数据转换:对请求消息进行数据转换。如String转换成Integer、Double等

          数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等

          数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中

          5.  Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;

          6.  根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;

          7. ViewResolver 结合Model和View,来渲染视图

          8. 将渲染结果返回给客户端。

     

    三,创建SpringMVC的步骤:

       1.工程结构如图

        

       2.加入springMVC所需jar包

        

     3.添加Web.xml配置文件中关于SpringMVC的配置

    <servlet>
         <servlet-name>springMVC</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- SpringMVC配置文件不在WEB-INF下的情况 classpath:========>/web-inf/class/ (源文件下的文件经过编译后产生的字节码文件所在的文件夹)
            <param-value>classpath:springMVCAnnotation.xml</param-value>
     -->
         </init-param>
      </servlet>
      <servlet-mapping>
          <servlet-name>springMVC</servlet-name>
          <url-pattern>*.do</url-pattern>
      </servlet-mapping>

    4.在WEB-INF下添加springMVC-servlet.xml配置文件

     <!-- 讲解HandleMapping 映射 :映射的作用:根据请求URL找到对应的Controller类 -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
    
    <!-- 注册控制层类 -->
        <bean name="/index.do" class="com.eduask.ykq.controller.BeanNameController"></bean>
    
      <!-- 视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
           <property name="prefix" value="/view/"></property>
           <property name="suffix" value=".jsp"></property>
        </bean>

    5.创建Controller类

    public class BeanNameController extends AbstractController {
    
        @Override
        protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
                throws Exception {
            System.out.println("===========");
            ModelAndView andView=new ModelAndView("beanName");
            return andView;
        }
    
    }

      

  • 相关阅读:
    2013 年最不可思议的 10 个硬件开源项目
    三款SDR平台对比:HackRF,bladeRF和USRP
    形同虚设:花费700美元便可突破门禁
    oracle timestamp和date区别
    linux服务器性能——CPU、内存、流量、磁盘使用率的监控
    通过安装memadmin对memcache进行可视化管理
    SNMP MIBs and IPv6
    使用 cacti 监控 windows 服务器硬盘的 I/O 状况
    snmp对超过16T的磁盘大小识别不对的解决办法
    源码编译安装net-snmp
  • 原文地址:https://www.cnblogs.com/tony-hyn/p/6211621.html
Copyright © 2011-2022 走看看