简单了解SpringMVC

文章目录

1、SpringMVC概述

SpringMVC是一种基于Java实现MVC模型的轻量级Web框架

优点:使用简单,相比Servlet开发更加便捷,灵活性强

MVC(Model View Controller),一种用于设计创建Web应用程序表现层的模式

作用:分离数据的存储和数据的展示

  • Model(模型):数据模型,用于封装数据
  • View(视图):页面视图,用于展示数据
  • Controller(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑
2、使用SpringMVC技术开发

开发程序流程

  1. 创建Web工程
  2. 导入坐标(spring-webmvc + Servlet)
  3. SpringMVCConfig配置类,配置前缀后缀
  4. ServletConfig配置类创建IOC容器和拦截请求
  5. 自定义控制器类
  6. 开发视图页面

代码实现

1、创建Web工程

2、在pom.xml导入坐标

xml 复制代码
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
  </dependencies>

3、初始化SpringMVC环境(同Spring环境)

java 复制代码
@Configuration
@ComponentScan("com.demo")
public class SpringMvcConfig {

    //创建视图解析器
    @Bean
    public InternalResourceViewResolver internalResourceViewResolver(){

        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();

        internalResourceViewResolver.setPrefix("/pages/"); //设置前缀

        internalResourceViewResolver.setSuffix(".jsp");     //设置后缀

        return internalResourceViewResolver;

    }
}

4、初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC请求拦截的路径

java 复制代码
public class ServletConfig extends AbstractDispatcherServletInitializer {
    //加载Springmvc配置
    @Override
    protected WebApplicationContext createServletApplicationContext() {

        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();

        ctx.register(SpringMvcConfig.class);

        return ctx;
    }

    //设置Tomcat接收的请求  / 表示所有请求都会被mvc处理
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }

    //过滤器解决中文乱码
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("utf-8");
        return new Filter[]{characterEncodingFilter};
    }
}

5、创建SpringMVC控制器类(等同于Servlet功能)

java 复制代码
@Controller
@RequestMapping("/user")  //表示所有方法都会在原有的路径上加上/user
public class UserController {

    @RequestMapping("/save")
    public String sava(){
        return "success";
    }

}

6、开发视图页面,创建展现的视图页面,在webapp目录下创建pages目录,pages目录下创建success.jsp页面

3、SpringMVC执行流程

一个核心控制器和三大组件

DispatcherServlet:前端控制器,是整体流程控制的中心,由其调用其它组件处理用户的请求,有效的降低了组件间的耦合性

RequestMappingHandlerMapping :处理器映射器,负责根据用户请求路径找到对应Controller控制器方法

RequestMappingHandlerAdapter :处理器适配器,执行Controller控制器的方法

InternalResourceViewResolver :视图解析器,根据Controller控制器方法返回值解析找到展现数据的jsp页面输出数据展现

相关推荐
Spring AI学习4 小时前
Spring AI深度解析(9/50):可观测性与监控体系实战
java·人工智能·spring
java1234_小锋5 小时前
Spring IoC的实现机制是什么?
java·后端·spring
前端小端长7 小时前
Vue 中 keep-alive 组件的原理与实践详解
前端·vue.js·spring
气π8 小时前
【JavaWeb】——(若依 + AI)-基础学习笔记
java·spring boot·笔记·学习·java-ee·mybatis·ruoyi
YDS8298 小时前
SpringCould —— 网关详解
后端·spring·spring cloud
老华带你飞9 小时前
列车售票|基于springboot 列车售票系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring
猿与禅10 小时前
Spring Boot 4.0 完整核心特性及实践指南
java·spring boot·后端·spring·重大升级·springboot4.0
运维@小兵11 小时前
Spring-AI系列——Tool Calling获取当前时间
java·后端·spring
她说..12 小时前
MySQL数据处理(增删改)
java·开发语言·数据库·mysql·java-ee