JavaEE——spring MVC请求处理

目录

主要目的:

[1. Spring web 项目搭建](#1. Spring web 项目搭建)

[2. 添加依赖](#2. 添加依赖)

[3. 配置插件](#3. 配置插件)

[4. 配置设置类](#4. 配置设置类)

[5. 编写controller层类](#5. 编写controller层类)

[6. 编写测试的http请求](#6. 编写测试的http请求)


主要目的:

创建一个spring web项目;

创建控制类;

掌握如何配置MVC;

编写http请求用例,模拟后端读取数据并做处理。

1. Spring web 项目搭建

项目创建好的一个文件结构

2. 添加依赖

依赖添加完成记得刷新maven下载依赖!

XML 复制代码
<!-- Junit 测试依赖 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

<!-- Spring MVC 依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.0</version>
    </dependency>

<!-- Lombok 依赖,用于减少Java的样板代码 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
      <scope>provided</scope>
    </dependency>
<!-- Jackson JSON处理库的核心依赖 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.13.1</version>
    </dependency>

<!-- Jackson 数据绑定库 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.13.1</version>
    </dependency>

<!-- Jackson 注解库 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.13.1</version>
    </dependency>
<!-- Servlet API 依赖 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
<!-- 构建配置 -->
  <build>
    <!-- 插件管理配置 -->
    <pluginManagement>
      <plugins>
        
<!-- Tomcat Maven 插件配置 -->
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.1</version>
          <configuration>
            <port>8081</port> <!-- 端口 -->
            <path>/api</path> <!-- 路径 -->
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

3. 配置插件

4. 配置设置类

① 创建实体类

② 配置MVC:在config包中创建一个名为MvcConfig的类; @EnableWebMvc 是一个Spring框架的注解,用于在基于Java的Spring应用程序中启用Spring MVC(Model-View-Controller)配置。通常将它应用于带有@Configuration注解的配置类上。

在config包中创建一个名为MvcInit的类,它继承了AbstractAnnotationConfigDispatcherServletInitializer

配置Spring的根容器和Spring MVC子容器

指定DispatcherServlet的URL映射

配置字符编码过滤器,以确保应用程序能够处理UTF-8编码

java 复制代码
public class MvcInit extends AbstractAnnotationConfigDispatcherServletInitializer {
    /**
     * springmvc容器的父容器spring配置类
     * 实际工作中我们的项目比较复杂,可以将controller层放在springmvc容器中
     * 其他层,如service层、dao层放在父容器了,bean管理起来更清晰一些
     * 也可以没有父容器,将所有bean都放在springmvc容器中
        */
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    // ②:2、设置springmvc容器的spring配置类
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{MvcConfig.class};
    }
   
// ③:3、配置DispatcherServlet的url-pattern
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    // ④:4、注册拦截器
    @Override
    protected Filter[] getServletFilters() { // 配置Servlet过滤器
        CharacterEncodingFilter filter = new CharacterEncodingFilter();// 创建字符编码过滤器
        filter.setEncoding("UTF-8"); // 设置字符编码为UTF-8
        return new Filter[]{filter}; // 返回过滤器数组,确保正确处理字符编码
    }

}

5. 编写controller层类

① 在Controller包下创建控制器类如:xxxIndexController.java

使用 @RestController 注解将其标记为 Spring MVC 控制器且该控制器方法将直接返回 JSON 格式的数据。

使用 @RequestMapping 注解来定义处理默认请求(根路径'/')的方法。

使用 @GetMapping、@PutMapping、@DeleteMapping 注解定义处理用户的登入、注册、根据id批量删除请求。

6. 编写测试的http请求

① 在项目的根目录下创建一个request.http文件用于给后端发送http请求

相关推荐
开开心心就好1 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
Flynn Liang2 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling
乌暮3 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
hey you~6 小时前
个体户门店办理400电话,如何对接订单系统实现来电弹窗
node.js·webhook·400电话·门店数字化·来电弹窗·订单系统对接
CoderYanger7 小时前
Java EE 进阶:5. Spring IoC&DI(第三弹):Spring DI
java·开发语言·spring boot·spring·面试·java-ee·mvc
郭小李7 小时前
spring中@Transactional注解对事务的支持
数据库·spring·oracle
步行cgn20 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
霸道流氓气质1 天前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
captain3761 天前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
步行cgn1 天前
Spring MVC + Thymeleaf 模板解析失败:从 500 错误到页面正常显示
java·spring·mvc