简单了解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 小时前
Word图片格式调整与转换工具
java·javascript·spring·eclipse·pdf·word·excel
一只码代码的章鱼4 小时前
spring -MVC-02
java·spring·mvc
IT光5 小时前
Redis 五种类型基础操作(redis-cli + Spring Data Redis)
java·数据库·redis·spring·缓存
沛沛老爹6 小时前
软件架构风格系列(3):管道 - 过滤器架构
spring·数据架构·软件架构风格·架构入门·管道-过滤器
努力学习的明8 小时前
Spring MVC 中请求处理流程及核心组件解析
java·spring·mvc
亚林瓜子9 小时前
AWS Elastic Beanstalk控制台部署Spring极简工程(LB版)
spring·云计算·aws·elb·beanstalk·alb·eb
冬日枝丫9 小时前
【spring】spring学习系列之六:spring的启动流程(下)
java·学习·spring
哞哞不熬夜19 小时前
JavaEE--初识网络
java·网络·java-ee
沛沛老爹19 小时前
软件架构风格系列(2):面向对象架构
spring·软件架构风格·面向对象架构·架构入门