美文网首页
Java后台-Spring Web MVC 框架-2020-12

Java后台-Spring Web MVC 框架-2020-12

作者: 勇往直前888 | 来源:发表于2020-12-22 11:12 被阅读0次

    Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。

    • 模型封装了应用程序数据,并且通常它们由 POJO 组成。

    • 视图主要用于呈现模型数据,并且通常它生成客户端的浏览器可以解释的 HTML 输出。

    • 控制器主要用于处理用户请求,并且构建合适的模型并将其传递到视图呈现。

    DispatcherServlet

    Spring Web 模型-视图-控制(MVC)框架是围绕 DispatcherServlet 设计的,DispatcherServlet 用来处理所有的 HTTP 请求和响应。

    image.png
    1. 收到一个 HTTP 请求后,DispatcherServlet 根据 HandlerMapping 来选择并且调用适当的控制器。

    2. 控制器接受请求,并基于使用的 GET 或 POST 方法来调用适当的 service 方法。Service 方法将设置基于定义的业务逻辑的模型数据,并返回视图名称到 DispatcherServlet 中。

    3. DispatcherServlet 会从 ViewResolver 获取帮助,为请求检取定义视图。

    4. 一旦确定视图,DispatcherServlet 将把模型数据传递给视图,最后呈现在浏览器中。

    HandlerMapping、Controller 和 ViewResolver 是 WebApplicationContext 的一部分,而 WebApplicationContext 是带有一些对 web 应用程序必要的额外特性的 ApplicationContext 的扩展。

    定义控制器

    @Controller 注释表明一个特定类是一个控制器的作用。
    @RequestMapping 注释用于映射 URL 到整个类或一个特定的处理方法。

    @Controller
    public class HelloController{
       @RequestMapping(value = "/hello", method = RequestMethod.GET)
       public String printHello(ModelMap model) {
          model.addAttribute("message", "Hello Spring MVC Framework!");
          return "hello";
       }
    }
    
    • @RequestMapping值属性表明 URL 映射到哪个处理方法,方法属性定义了 service 方法来处理 HTTP GET 请求。

    • 基于定义的业务逻辑,你将在这个方法中创建一个模型。你可以设置不同的模型属性,这些属性将被视图访问并显示最终的结果。这个示例创建了一个带有属性 “message” 的模型。

    • 一个定义的 service 方法可以返回一个包含视图名称的字符串用于呈现该模型。这个示例返回 “hello” 作为逻辑视图的名称。

    创建 JSP 视图

    对于不同的表示技术,Spring MVC 支持许多类型的视图。这些包括 JSP、HTML、PDF、Excel 工作表、XML、Velocity 模板、XSLT、JSON、Atom 和 RSS 提要、JasperReports 等等。但我们最常使用利用 JSTL 编写的 JSP 模板。所以让我们在 /WEB-INF/hello/hello.jsp 中编写一个简单的 hello 视图:

    <html>
       <head>
       <title>Hello Spring MVC</title>
       </head>
       <body>
       <h2>${message}</h2>
       </body>
    </html>
    

    其中,${message} 是我们在控制器内部设置的属性。

    参考文章

    Spring Web MVC 框架

    相关文章

      网友评论

          本文标题:Java后台-Spring Web MVC 框架-2020-12

          本文链接:https://www.haomeiwen.com/subject/pqnxnktx.html