zoukankan      html  css  js  c++  java
  • Spring Web MVC 笔记

    Spring Web MVC 流程

    Dispatcher Servlet

    这是一个前端分派 Servlet(前端控制器模式),外部所有的请求都会先到达这里,然后由其将请求分派给其他组件进行实际的处理。

    Handler Mapping

    处理器映射,由 DispatcherServlet 通过 url 信息查询映射表,确定该请求要分派给哪个 Controller(即 Handler)。

    Controller

    请求被从 DispatcherServlet 发送到合适的 Controller 后,会在这里卸下它的负载(request context)并等待控制器处理这些信息。

    实际上,设计良好的 Controller 本身只处理很少的工作(甚至根本不处理),而是将业务逻辑委托给一个或多个 Service 对象进行处理。

    在处理完信息后,Controller 将模型数据打包进 Model 中,然后内部会自动将 Model 和 ViewName 打包成 ModelAndView 回传给 DispatcherServlet。(如果该方法有 @Repsonsebody 注解,则会跳过后面的视图解析,直接写入流)

    Service

    业务逻辑应该在这里实现

    Repository

    即 DAO(Data Access Object),专门连接数据库做增删查改用。

    View Resolver

    视图解析器,通过 Controller 返回的 ViewName 查询对应的 View。

    View

    这是请求的最后一站,在这里,View 得到 Model 对象,并将该对象中的数据渲染,然后该输出会被作为响应体返回给客户端。

    使用 Spring Web MVC

    配置 DispatcherServlet

    Java Servlet 是 Java Web 的核心技术,所有的 Http 请求都要通过它进行处理,Http 响应对象都要通过它来填充。因此要使用 Spring Web MVC,首先要在 Servlet 容器中配置 DispatcherServlet。传统的配置方式是使用 web.xml,从 Spring3.1 和 Serlvet 3.0 规范开始,可以使用基于 Java 类的方式来配置 Servlet。

    在 Serlvet3.0 环境中,Servlet 容器会在 classpath 中查找实现了 javax.servlet.ServletContainerInitializer 接口的类,如果找到了,就使用它来配置 Servlet 容器。从 Spring3.2 开始,可以直接继承 AbstractAnnotationConfigDispatcherServletInitializer 类,该类提供了一个很方便的基础实现。

    Context Hierarchy(Context 层次结构)

    DispatcherServlet 有两个 Context:一个 WebApplicationContext(ApplicationContext 的拓展),而 WebApplicationContext 又有一个指向它所关联的 ServletContext 和 Servlet 的链接。

    待续。。

    参考

    附:完整的运行流程

  • 相关阅读:
    让IT工作者过劳的13个坏习惯zz
    WPF Radio button的解决方案
    程序退出的各种方法,如何关闭多线程。
    文本框输入自动切换输入法问题
    在外部js文件中读取带母版页的子页当中控件的值
    Showwindow/FindWindow/PostMessage 转
    vb读取字节中的某一位
    C# 禁止windows程序重复运行的两种基本方法
    C# DllImport的用法(转)
    sqlserver存储过程中sql语句连接及datetime字段的处理
  • 原文地址:https://www.cnblogs.com/kirito-c/p/9220866.html
Copyright © 2011-2022 走看看