Spring MVC-01(初识及Hello 程序)

文章目录

    • 1、Spring MVC 概述
      • 1.1 什么是 Spring MVC
      • 1.2 为什么提出 Spring MVC
      • 1.3 Spring MVC 工作流程
    • 2、 Hello Spring MVC
      • 2.1 创建 Maven 项目,并且添加web的支持
      • 2.2 导入依赖
      • 2.3 配置 web.xml
      • 2.4 编写 spring-servlet.xml
      • 2.5 编写 Controller 测试
      • 2.6 编写 hello.jsp
      • 2.7 最后的项目结构
      • 2.8 导入所有的依赖
      • 2.9 配置 Tomcat
      • 2.10 启动 Tomcat

1、Spring MVC 概述

1.1 什么是 Spring MVC

Spring MVC 是 Spring 框架的一个模块,是基于 MVC 的 webframework 模块。

Spring MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。

MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。

  • 模型封装了应用程序数据,并且通常它们由 POJO 组成。
  • 视图主要用于呈现模型数据,并且通常它生成客户端的浏览器可以解释的 HTML 输出。
  • 控制器主要用于处理用户请求,并且构建合适的模型并将其传递到视图呈现。

1.2 为什么提出 Spring MVC

为解决持久层中一直未处理好的数据库事务的编程,又为了迎合 NoSQL 的强势崛起,Spring MVC 给出了方案;

持久层:就是将数据存在持久化设备上(数据库或者硬盘等),而不是像在内存中断电即消失。

NoSQL:NoSQL( Not Only SQL ),泛指非关系型的数据库。

Spring MVC-01(初识及Hello 程序)_第1张图片

  • 传统的模型层被拆分为了业务层(Service)和数据访问层(DAO)。
  • 在业务层下可以通过 Spring 的声明式事务操作数据访问层;
  • 在业务层还允许访问 NoSQL;

1.3 Spring MVC 工作流程

Spring MVC 框架主要由 DispatcherServlet、处理器映射、控制器、视图解析器、视图组成;
Spring MVC-01(初识及Hello 程序)_第2张图片

由上图可以看出 Spring MVC 的工作流程如下:

  1. 客户端请求提交到 DispatcherServlet;
  2. 由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller;
  3. DispatcherServlet 将请求提交到 Controller;
  4. Controller 调用业务逻辑处理后返回 ModelAndView;
  5. DispatcherServlet 寻找一个或多个 ViewResolver 驶入解析器,找到 ModelAndView 指定的视图;
  6. 视图负责将结果显示到客户端;

2、 Hello Spring MVC

2.1 创建 Maven 项目,并且添加web的支持

创建好的项目结构如下:
Spring MVC-01(初识及Hello 程序)_第3张图片

2.2 导入依赖

<dependencies>
    <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-webmvcartifactId>
        <version>5.1.9.RELEASEversion>
    dependency>
dependencies>

2.3 配置 web.xml


<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    
    <servlet>
        <servlet-name>DispatcherServletservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:spring-servlet.xmlparam-value>
        init-param>
        
        <load-on-startup>1load-on-startup>
    servlet>

    
    <servlet-mapping>
        <servlet-name>DispatcherServletservlet-name>
        <url-pattern>/url-pattern>
    servlet-mapping>

web-app>

2.4 编写 spring-servlet.xml


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    

    

    
    <context:component-scan base-package="com.su.controller"/>

    
    <mvc:annotation-driven/>

    
    
    <mvc:default-servlet-handler/>

    
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        
        <property name="prefix" value="/WEB-INF/views/"/>
        
        <property name="suffix" value=".jsp"/>
    bean>

beans>

2.5 编写 Controller 测试

package com.su.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class HelloController {
    @RequestMapping("/hello")
    public String hello(Model model) {
        System.out.println("进入此方法");
//        给前端传递参数
        model.addAttribute("msg","Hello,SpringMVC");
        return "hello";
    }
}

2.6 编写 hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Hello



${msg}

2.7 最后的项目结构

Spring MVC-01(初识及Hello 程序)_第4张图片

2.8 导入所有的依赖

Spring MVC-01(初识及Hello 程序)_第5张图片

2.9 配置 Tomcat

Spring MVC-01(初识及Hello 程序)_第6张图片

2.10 启动 Tomcat

启动服务器,在地址栏最后边输入:hello
Spring MVC-01(初识及Hello 程序)_第7张图片

你可能感兴趣的:(Spring MVC-01(初识及Hello 程序))