一,Spring MVC介绍及环境配置

一,Spring MVC介绍

一,简介

  • 是spring体系轻量级web mvc框架

  • 基于spring ioc容器运行,所有对象被ioc管理,提高了程序的健壮性与稳定性

  • MVC是架构模式,不是设计模式

  • View:界面部分,和用户进行交互,比如通过界面查询结果,通过表单接收用户信息等

  • Model:数据,相当于java中业务模式部分

  • Controller:中介,是mvc的核心,用于接收视图(view)中传入的数据,再根据数据调用后端业务逻辑(model)得到结果,再通过控制器将后端结果返回视图中(优势:界面和后端java业务逻辑有效解耦,提高程序可维护性)

  • 主要用途:简化web应用开发

在这里插入图片描述
二,Spring 5.x版本变化
在这里插入图片描述

  • 响应式编程:基于事件来的,比如前端点击按钮触发单击响应事件。后端就是当触发某个事件时候,自动去执行某一段代码,专注构建对事件做出响应的响应程序,是新的开发理念和风格(本次课程不涉及这部分)

  • 和4.0版本没有很大区别,99%代码都是相同的

三,spring mvc文档:

https://docs.spring.io/spring-framework/docs/current/reference/html/web.html

二,Idea环境下创建maven webapp:

  1. 创建maven工程
  2. 配置web功能:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 配合Tomcat 运行web文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三,spring mvc环境配置

  1. maven依赖spring-webmvc
<repositories>
    <repository>
        <id>aliyun</id>
        <name>aliyun</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
</dependencies>
  1. web.xml配置DispatchServlet(springmav最重要的一个类。作用:对所有请求进行拦截)
<?xml version="1.0" encoding="UTF-8"?>
<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_3_1.xsd"
         version="3.1">
    <!--DispatcherServlet是springmvc最核心的对象,用于拦截http请求,并根据请求的url调用与之对应的controller方法,来完成http请求的处理。
    相当于DispatcherServlet是公司前台,controller相当于公司对应的人-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--applicationContext.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <!--在web启动时自动创建spring ioc容器,并初始化dispatcherServlet-->
        <load-on-startup>0</load-on-startup>

    </servlet>
    <!--映射-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--/代表拦截所有请求-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
3. 配置applicationContext的mvc标记
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="http://www.springframework.org/schema/mvc"
       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">
    <!--component-scan:在spring ioc初始化过程中,自动创建并管理com.imooc.springmvc及其子包中拥有以下注解的对象:
    @Repository
    @Service
    @Component
    @Controller
    -->
    <context:component-scan base-package="com.imooc.springmvc"></context:component-scan>
    <!--启用spring mvc注解开发模式-->
    <mvc:annotation-driven/>
    <!--将图片/js/css等静态资源排除在外,提高执行效率-->
    <mvc:default-servlet-handler/>
</beans>
  1. 开发Controller控制器
@Controller
public class TestController {
    
    

    @GetMapping("/t") //localhost/t
    @ResponseBody  //直接向响应输出字符串数据,不跳转界面
    public String test() {
    
    
        return "SUCCESS";
    }
}
  1. 测试
  • 进行tomcat配置:左上角tomcat-edit configration-deployment-点击编辑键-按照下图操作-ok
    在这里插入图片描述

  • 点击debug启动tomcat

  • 网页查看
    在这里插入图片描述
    ps:如果点击debug后又对代码进行调整,可以右键-Reload changed classes进行重新编译,热部署

可以把TestController看成原有servlet的替代品,在开发时编写标准方法,也不再引入请求响应对象,只需要在方法中增加对应的注解即可完成web请求处理和结果返回。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36792120/article/details/113764052