简单了解SpringMVC

1、SpringMVC概述

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

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

image-20240202212259240

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

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

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

image-20240202212459816

2、使用SpringMVC技术开发

开发程序流程

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

代码实现

1、创建Web工程

image-20240202212959473

2、在pom.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环境)

@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请求拦截的路径

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功能)

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

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

}

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

image-20240202213432057

3、SpringMVC执行流程

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

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

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

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

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

image-20240202213628625

相关推荐

  1. springMVC简介

    2024-02-03 00:08:02       5 阅读
  2. SpringMVC知识点简单规整

    2024-02-03 00:08:02       31 阅读
  3. 简单了解仿真测试

    2024-02-03 00:08:02       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 00:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 00:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 00:08:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 00:08:02       20 阅读

热门阅读

  1. 把 matlab 公式输出成 latex 公式形式

    2024-02-03 00:08:02       27 阅读
  2. python怎样把形似列表的字符串转换为列表?

    2024-02-03 00:08:02       30 阅读
  3. uniapp生命应用生命周期和页面生命周期

    2024-02-03 00:08:02       25 阅读
  4. LeetCode 面试热门 100 题(第 038 ~ 050题)

    2024-02-03 00:08:02       35 阅读
  5. 常用的数据库SQL语句使用大全

    2024-02-03 00:08:02       26 阅读
  6. 面了搜狐大模型算法岗(实习),有惊无险。。。

    2024-02-03 00:08:02       29 阅读
  7. 网络编程练习题(TCP)

    2024-02-03 00:08:02       26 阅读
  8. 一线大厂面试真题——谈谈你对ES的理解

    2024-02-03 00:08:02       24 阅读
  9. linux 上库五步走,经验贴

    2024-02-03 00:08:02       29 阅读
  10. Spark如何用累加器Accumulator收集日志

    2024-02-03 00:08:02       29 阅读