简单了解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页面输出数据展现

相关推荐
.NET修仙日记2 小时前
2025年ASP.NETMVC面试题库全解析
面试·职场和发展·c#·asp.net·mvc·面试题·asp.net mvc
wxin_VXbishe2 小时前
基于SpringBoot的天天商城管理系统的设计与现-计算机毕业设计源码79506
java·c++·spring boot·python·spring·django·php
曾令胜10 小时前
excel导出使用arthas动态追踪方法调用耗时后性能优化的过程
spring·性能优化·excel
多云几多10 小时前
Yudao单体项目 springboot Admin安全验证开启
java·spring boot·spring·springbootadmin
摇滚侠12 小时前
Spring Boot 3零基础教程,Spring Intializer,笔记05
spring boot·笔记·spring
兮动人12 小时前
Spring Bean耗时分析工具
java·后端·spring·bean耗时分析工具
MESSIR2213 小时前
Spring IOC(控制反转)中常用注解
java·spring
William_cl16 小时前
C# MVC网页调试的方法
开发语言·c#·mvc
hello 早上好17 小时前
深入 Spring 条件化配置底层:从硬编码到通用注解的实现原理
java·后端·spring
亚林瓜子17 小时前
Spring中Date日期序列化与反序列化中格式设置
java·后端·spring·jackson·date