【问题标题】:What is flow of Spring MVC applicationSpring MVC 应用的流程是什么
【发布时间】:2014-09-02 04:57:21
【问题描述】:

我对 Spring MVC 很陌生。 我已经阅读了很多关于它的内容,但无法获取用 Spring MVC 编写的应用程序的确切流程。 如果可能的话,请给我一个应用程序流程的高级视图,可能是登录应用程序的例子。

有类似的文件

Web.xml- 根据我的发现,这个文件配置了调度程序
dispatcher-servlet - 此文件包含用于将请求分派到特定控制器的 bean 标签。
ApplicationContext.xml- 我无法理解此文件的工作原理。

普通的java应用程序和Spring MVC应用程序到底有什么区别。

【问题讨论】:

  • 请考虑重新审视您的问题并提出具体问题,并提供您为解决该问题所做的分析。要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

标签: spring spring-mvc model-view-controller


【解决方案1】:

在阅读了一些教程后,我了解了 Spring MVC 是什么。 当任何 Web 应用程序启动时,它首先加载欢迎页面,可能是 index.jsp,它将我从 /webcontent/Web-INF/jsp 下的文件夹重定向到起始页面(可能是登录)。 现在登录请求将被发送给 Dispatcher-servlet.xml,它会从 bean 定义中找到合适的控制器,并将控制权移交给 login_controller,我们可以在其中执行用户 ID 和密码检查。 根据条件,我们得到successView或FormView(即登录页面)。 我们使用 ParametirazableViewController 在页面上显示静态内容。

PS:我考虑了一个正常的登录示例。

【讨论】:

    【解决方案2】:

    这可能会对您有所帮助。

    • Spring 的 MVC 模块基于前端控制器设计模式 其次是 MVC 设计模式。

    • 所有传入的请求都由名为 DispatcherServlet 在 Spring 的 MVC 中充当前端控制器 模块。

    • DispatcherServlet 然后引用 HandlerMapping 来找到一个 可以处理请求的控制器对象。

    • DispatcherServlet 然后将请求分派给控制器 对象,以便它可以实际执行业务逻辑来完成 用户请求。

    (控制器可以将责任委托给称为服务对象的其他应用程序对象)。控制器返回一个包含模型对象和视图对象(或视图的逻辑名称)的封装对象。

    在 Spring 的 MVC 中,这个封装的对象由类 ModelAndView 表示。如果 ModelAndView 包含视图的逻辑名称,则 DispatcherServlet 引用 ViewResolver 以根据逻辑名称查找实际的 View 对象。然后 DispatcherServlet 将模型对象传递给视图对象,然后将视图对象呈现给最终用户。

    要了解每个组件,请点击链接

    Spring MVC Concept

    【讨论】:

    • 这张图是非常抽象的层次。那些处理程序拦截器,过滤器应用在哪里?我想了解在进入控制器方法之前和离开控制器方法之后调用了哪些流和层。
    【解决方案3】:
    1. 浏览器向 Web 应用程序发出请求。
    2. 作为前端控制器 DispatcherServlet 捕获并接受请求并应用安全、日志记录等公共系统服务,
    3. DispatcherServlet 使用 HandlerMapping 组件根据传入的请求 uri 决定要使用的 Handler 类。
    4. DispatcherServlet 通过调用方法将控制权传递给 Handler 类。
    5. 处理程序类内部将接收到的表单数据写入命令类对象。
    6. 处理程序类处理请求并生成输出,如果需要它还使用命令对象处理表单数据。有时处理程序类将请求委托给其他外部组件,如 ejc、webservices 等,
    7. 处理程序类将逻辑视图名称返回给 DispatcherServlet。
    8. DispatcherServlet 使用视图解析器获取具有视图层技术和资源名称的视图对象。
    9. DispatcherServlet 使用视图对象将控件传递给视图资源。
    10. 视图资源格式化结果并将输出发送到浏览器(响应浏览器)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 2013-11-15
      • 2019-11-14
      相关资源
      最近更新 更多