SpringMVC(一)【入门】

简介: SpringMVC(一)【入门】

前言

       学完了大数据基本组件,SpringMVC 也得了解了解,为的是之后 SpringBoot 能够快速掌握。SpringMVC 可能在大数据工作中用的不多,但是 SSM 毕竟是现在就业必知必会的东西了。SpringBoot 在数仓开发可能会经常用到,所以不废话学吧。

1、SpringMVC 概述

1.1、请求响应模式演进过程

1.1.1、三层架构

  • web:页面数据的收集以及产生页面
  • service:业务处理
  • dao:数据持久化

弊端:一个 Servlet 只能一个处理请求。

1.1.2、MVC 模式

       浏览器将请求发送给控制器,控制器调用 Service 层,再由 Service 层调用 dao 层得到数据,将得到的数据组织成数据模型(封装成对象),然后将页面和数据模型封装到一起返回给浏览器。这样,一个 Servlet 就可以处理多个请求了。

       MVC 模式下的 view 一般用的是 jsp,但是现在我们一般都用的是 HTML、CSS、E        lementUI、Vue 这些技术:

1.13、异步调用

       异步调用模式下,我们不再需要将 jsp 和 model 共同返回给浏览器展示了,而是页面和 model 分开,页面用 html、vue 这些前端技术,model 需要将它封装成 json 对象返回给我们的前端(因为 java 对象不能直接返回给页面):

这样,我们的前端页面就可以从 json 中把数据抽取出来,然后组织成页面展示到浏览器上面。

异步调用下 SpringMVC 的任务
  • Controller 层的开发
  • 数据转为 json 格式返回给前端

2、SpringMVC 入门案例

2.1、入门案例

使用 Servlet 开发 web 程序的过程:

  1. 创建 web 工程
  2. 设置 tomcat 服务器
  3. 导入依赖(Servlet)
  4. 定义处理请求的功能类(UserServlet)
  5. 配置请求映射关系

使用 SpringMVC 开发 web 程序的过程:

  1. 创建 web 工程
  2. 设置 tomcat 服务器
  3. 导入依赖(SpringMVC + Servlet)
  4. 定义处理请求的功能类(UserController
  5. 配置请求映射关系
  6. 将 SpringMVC 设定加载到 Tomcat 容器中

0、配置环境

1、导入依赖

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>85</port>
          <path>/</path>
          <ignorePackaging>true</ignorePackaging>
        </configuration>
      </plugin>
    </plugins>
  </build>
 
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.0.RELEASE</version>
    </dependency>
  </dependencies>

2、初始化SpringMVC环境

@Configuration
public class SpringMvcConfig {
}

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

@Controller
public class UserController {
 
    @RequestMapping("/save")
    public void save(){
        System.out.println("user save ...");
    }
 
}

4、设定SpringMVC加载对应的Bean

@Configuration
@ComponentScan("com.lyh.controller") // 扫描
public class SpringMvcConfig {
 
}

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

/**
 * Servlet 容器配置类
 */
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
 
    /**
     * 加载SpringMVC容器对象
     * @return
     */
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(SpringMvcConfig.class);
        return ctx;
    }
 
    /**
     * 请求由谁来处理?tomcat/springmvc
     * @return
     */
    protected String[] getServletMappings(){
        return new String[]{"/"};  // 所有请求都由 springmvc 来处理
    }
 
    /**
     * 加载 Spring 的配置对应的容器对象
     * @return
     */
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

6、报错1

访问 localhost:85/save 报错:

7、设置请求返回值为 json 信息 并添加注解@ResponseBody 代表返回内容就是响应内容

8、重新请求  localhost:85/save

SpringMVC(一)【入门】(2)https://developer.aliyun.com/article/1534190

相关文章
|
XML Java 数据格式
肝了30天总结,史上最全面透彻的Spring核心原理分析和27道高频面试题
在阅读面试题之前,小伙伴们可以先看看我之前发布的系列文章,Spring核心原理包括源码分析和用30个类手写。面试刷题固然很重要,但是知其然知其所以然更重要。
2042 4
肝了30天总结,史上最全面透彻的Spring核心原理分析和27道高频面试题
|
SpringCloudAlibaba 网络协议 Cloud Native
Spring Cloud Alibaba-全面详解(学习总结---从入门到深化)
Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。
14696 2
Spring Cloud Alibaba-全面详解(学习总结---从入门到深化)
|
Java 容器 Spring
|
9月前
|
JSON 前端开发 Java
【SpringMVC】基础入门(1)
spirngMVC,RequestMapping建立连接,RequestController,Requestparam,RequestBody传递参数、对象、数组、集合、JSON数据,JSON字符串和JAVA对象的转换
|
9月前
|
存储 缓存 Java
Spring面试必问:手写Spring IoC 循环依赖底层源码剖析
在Spring框架中,IoC(Inversion of Control,控制反转)是一个核心概念,它允许容器管理对象的生命周期和依赖关系。然而,在实际应用中,我们可能会遇到对象间的循环依赖问题。本文将深入探讨Spring如何解决IoC中的循环依赖问题,并通过手写源码的方式,让你对其底层原理有一个全新的认识。
202 2
|
9月前
|
XML 前端开发 安全
Spring MVC:深入理解与应用实践
Spring MVC是Spring框架提供的一个用于构建Web应用程序的Model-View-Controller(MVC)实现。它通过分离业务逻辑、数据、显示来组织代码,使得Web应用程序的开发变得更加简洁和高效。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring MVC,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
492 2
|
11月前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)
416 5
|
10月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
【Java集合类面试十一】、HashMap为什么用红黑树而不用B树?
HashMap选择使用红黑树而非B树,是因为红黑树在内存中实现简单,节点更小,占用内存少,且在插入、删除和查找操作上提供更好的平衡性能。
|
11月前
|
XML Java 应用服务中间件
SpringMvc的具体操作,如何配置springMvc(完整教程)
一个完整的Spring MVC配置教程,包括引入依赖、配置Tomcat、设置DispatcherServlet、编写Spring配置文件、创建Controller以及测试结果。
1172 0
SpringMvc的具体操作,如何配置springMvc(完整教程)