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

相关推荐
编程、小哥哥2 小时前
netty之Netty与SpringBoot整合
java·spring boot·spring
wxin_VXbishe7 小时前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
OEC小胖胖8 小时前
Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)
java·spring boot·后端·spring·mybatis·web
落落落sss8 小时前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
潘多编程16 小时前
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
java·开发语言·spring
_阿伟_17 小时前
SpringMVC
java·spring
杨半仙儿还未成仙儿1 天前
Spring框架:Spring Core、Spring AOP、Spring MVC、Spring Boot、Spring Cloud等组件的基本原理及使用
spring boot·spring·mvc
攸攸太上1 天前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
无理 Java1 天前
【技术详解】SpringMVC框架全面解析:从入门到精通(SpringMVC)
java·后端·spring·面试·mvc·框架·springmvc
gobeyye1 天前
spring loC&DI 详解
java·spring·rpc