Java框架快速入门: Spring MVC 请求映射、参数传递与响应处理

开源框架面试之Spring MVC面试题目 文章目录1、什么是 SpringMvc?2、Spring MVC 的优点:3、SpringMVC工作原理?4、SpringMVC 流程?5、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?6、如果你也用过struts2.简单介绍下springMVC和struts2的区别有哪 些?7、SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?8、@RequestMapping注解用在类上面有什么作用?9、怎么样把某个请求映射到特定的方法上面?10、如果在拦截请求中,我想拦截g 阅读详情

本文纲要

  1. 请求路径映射
    @RequestMapping 基本用法
    类级别与方法级别路径的组合
  2. 普通参数传递与中文乱码处理
    GET / POST 发送普通参数
    接收参数
    乱码过滤器配置
  3. 五种参数类型传递
    普通参数(同/不同名)
    POJO 对象参数
    嵌套 POJO 参数
    数组参数
    集合参数
  4. JSON 数据传递
    添加 Jackson 依赖与开启 JSON 转换
    @RequestBody 接收 JSON
    集合、对象、对象集合的接收
  5. 日期类型参数处理
    @DateTimeFormat 指定格式
  6. 控制器响应
    页面跳转
    文本响应
    JSON 响应与 HttpMessageConverter
  7. 核心流程与总结

请求路径映射

1 ) 概念

在 Spring MVC 中,使用 @RequestMapping 注解将某个请求路径映射到指定的控制器方法上。当一个 HTTP 请求的 URL 与方法上注解的路径匹配时,对应的控制器方法就会被执行。

为了避免团队开发时不同模块路径冲突,通常在类上添加公共前缀,类上的路径与方法上的路径会进行拼接,形成最终的请求 URL。

2 ) 项目结构
以 springmvc_03_request_mapping 为例,关键目录结构如下:

springmvc_03_request_mapping 
├── pom.xml 
└── src 
    └── main 
        ├── java 
        │   └── com 
        │       └── wb 
        │           ├── config 
        │           │   ├── ServletContainersInitConfig.java 
        │           │   └── SpringMvcConfig.java 
        │           └── controller 
        │               ├── BookController.java 
        │               └── UserController.java 
        └── webapp 
            └── index.jsp 

3 )代码实现

pom.xml 核心依赖:

<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.10.RELEASE</version>
    </dependency>
</dependencies>

配置类 SpringMvcConfig.java:

package com.wb.config;
 
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@Configuration 
@ComponentScan("com.wb.controller")
public class SpringMvcConfig {
}

ServletContainersInitConfig.java 初始化前端控制器:

package com.wb.config;
 
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
 
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
 
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }
 
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
 
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }
}

控制器示例 – 初始未加类前缀时的冲突:

// BookController.java 
package com.wb.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
@Controller 
public class BookController {
    @RequestMapping("/save")
    @ResponseBody 
    public String save(){
        System.out.println("book save ...");
        return "{'module':'book save'}";
    }
}
// UserController.java 
package com.wb.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
@Controller 
public class UserController {
    @RequestMapping("/save")
    @ResponseBody 
    public String save(){
        System.out.println("user save ...");
        return "{'module':'user save'}";
    }
 
    @RequestMapping("/delete")
    @ResponseBody 
    public String delete(){
        System.out.println("user delete ...");
        return "{'module':'user delete'}";
    }
}

此时启动会报错,因为 /save 路径重复。

解决方案:通过类级别映射路径添加前缀

// UserController.java 改进版 
package com.wb.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
@Controller 
@RequestMapping("/user")          // 设置当前模块前缀 
public class UserController {
    @RequestMapping("/save")
    @ResponseBody 
    public String save(){
        System.out.println("user save ...");
        return "{'module':'user save'}";
    }
 
    @RequestMapping("/delete")
    @ResponseBody 
    public String delete(){
        System.out.println("user delete ...");
        return "{'module':'user delete'}";
    }
}
// BookController.java 改进版 
@Controller 
@RequestMapping("/book")
public class BookController {
    @RequestMapping("/save")
    @ResponseBody 
    public String save(){
        System.out.println("book save ...");
        return "{'module':'book save'}";
    }
}

路径映射规律

  • 当类上有 @RequestMapping("/user") ,方法上有 @RequestMapping("/save") 时,最终访问路径为 /user/save。
  • Postman 测试:
    • GET http://localhost/user/save
    • GET http://localhost/book/save

小结

  • @RequestMapping 可标明在类上(模块公共前缀)和方法上(具体功能路径)。
  • 完整路径 = 类前缀 + 方法路径。
  • 作用:避免项目内路径冲突,提高可维护性。

普通参数传递与中文乱码处理

1 ) 概念

通过 URL 问号传参或表单传递普通参数(数字、字符串等),Spring MVC 可以自动将请求参数绑定到控制器方法的形参上,依据 名称相同 的原则。处理 POST 请求的中文乱码,需要配置 CharacterEncodingFilter。

2 ) 项目结构
基于 springmvc_04_request_param:

springmvc_04_request_param 
├── pom.xml 
└── src/main/java/com/wb 
    ├── config 
    │   ├── ServletContainersInitConfig.java 
    │   └── SpringMvcConfig.java 
    └── controller 
        └── UserController.java 

3 ) 代码说明

pom.xml 添加 Jackson 依赖,用于后续 JSON 处理:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.0</version>
</dependency>

SpringMvcConfig.java 基础配置:

package com.wb.config;
 
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@Configuration 
@ComponentScan("com.wb.controller")
public class SpringMvcConfig {
}

ServletContainersInitConfig.java 中配置乱码过滤器:

package com.wb.config;
 
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
 
import javax.servlet.Filter;
 
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }
 
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }
 
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
 
    // 处理中文乱码 
    @Override 
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}

UserController.java 接收普通参数:

package com.wb.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
@Controller 
public class UserController {
 
    // GET/POST 请求普通参数,形参与参数名一致即可自动绑定 
    @RequestMapping("/commonParam")
    @ResponseBody 
    public String commonParam(String name, int age){
        System.out.println("普通参数 name ==> " + name);
        System.out.println("普通参数 age ==> " + age);
        return "{'module':'common param'}";
    }
}

Postman 测试

  • GET: http://localhost/commonParam?name=wf&age=15
  • POST: 选择 Body → x-www-form-urlencoded,填入 name=wf&age=15

中文乱码处理
当 POST 表单包含中文时,需添加上述 CharacterEncodingFilter。处理后中文可以正常接收。

五种参数类型传递

Spring MVC 支持多种参数绑定方式,满足不同业务场景。

1 ) 普通参数:名称不同时使用 @RequestParam

若请求参数名为 name,但方法参数名为 userName,可用 @RequestParam 绑定:

@RequestMapping("/commonParamDifferentName")
@ResponseBody 
public String commonParamDifferentName(@RequestParam("name") String userName, int age){
    System.out.println("userName ==> " + userName);
    System.out.println("age ==> " + age);
    return "{'module':'common param different name'}";
}

访问时仍发送 name=xxx&age=yy,userName 可以接收到值。

2 ) POJO 对象参数

当请求参数与实体类属性同名时,可以直接将参数封装为对象。

// domain/User.java 
package com.wb.domain;
 
public class User {
    private String name;
    private int age;
    private Address address; // 后面嵌套使用 
 
    // 省略 getter/setter/toString 
}
@RequestMapping("/pojoParam")
@ResponseBody 
public String pojoParam(User user){
    System.out.println("pojo参数 user ==> " + user);
    return "{'module':'pojo param'}";
}

请求:name=wf&age=15,user 对象自动填充。

3 ) 嵌套 POJO 参数

当实体类内部包含其他对象时,使用“属性名.属性名”传递。

Address 类:

package com.wb.domain;
 
public class Address {
    private String province;
    private String city;
    // getter/setter/toString 
}

请求格式:name=wf&age=15&address.province=北京&address.city=北京

控制器方法同 pojoParam,无需修改,框架自动封装。

4 ) 数组参数

请求中同名参数会自动映射到数组。

@RequestMapping("/arrayParam")
@ResponseBody 
public String arrayParam(String[] likes){
    System.out.println("数组参数 likes ==> " + Arrays.toString(likes));
    return "{'module':'array param'}";
}

请求:likes=Java&likes=Spring&likes=MyBatis
结果:数组包含三个元素。

5 ) 集合参数

直接使用 List<String> 接收会报错,因为框架默认将其视为 POJO 并尝试创建实例。需要添加 @RequestParam 注解明确为参数绑定。

@RequestMapping("/listParam")
@ResponseBody 
public String listParam(@RequestParam List<String> likes){
    System.out.println("集合参数 likes ==> " + likes);
    return "{'module':'list param'}";
}

请求方式与数组相同。

五种参数传递总结表

参数类型请求格式形参示例关键注解
普通参数(同名)?name=xx&age=yyString name, int age无
普通参数(不同名)?name=xx@RequestParam("name") String userName@RequestParam
POJO?name=xx&age=yyUser user无
嵌套 POJO?address.province=北京User user (内部含 address)无
数组?likes=A&likes=BString[] likes无
集合?likes=A&likes=B@RequestParam List<String> likes@RequestParam

JSON 数据传递

1 ) 概念

当前后端分离时,主流交互格式为 JSON。Spring MVC 需要依赖 Jackson 库,并使用 @EnableWebMvc 开启自动转换,再用 @RequestBody 将 JSON 请求体绑定到对象或集合。

配置三步走

  1. pom.xml 中引入 jackson-databind。
  2. 在 Spring MVC 配置类上添加 @EnableWebMvc:
@Configuration 
@ComponentScan("com.wb.controller")
@EnableWebMvc   // 开启 JSON 自动转换 
public class SpringMvcConfig {
}

在方法参数前加 @RequestBody。

1 ) 接收 JSON 集合(普通类型)

@RequestMapping("/listParamForJson")
@ResponseBody 
public String listParamForJson(@RequestBody List<String> likes){
    System.out.println("list common(json) likes ==> " + likes);
    return "{'module':'list common for json param'}";
}

Postman 发送:Body → raw → JSON → ["Java","Spring","MyBatis"]

2 ) 接收 JSON POJO 对象

@RequestMapping("/pojoParamForJson")
@ResponseBody 
public String pojoParamForJson(@RequestBody User user){
    System.out.println("pojo(json) user ==> " + user);
    return "{'module':'pojo for json param'}";
}

请求体 JSON:

{
  "name":"wf",
  "age":15,
  "address":{
    "province":"北京",
    "city":"北京"
  }
}

3 ) 接收 JSON 对象集合

@RequestMapping("/listPojoParamForJson")
@ResponseBody 
public String listPojoParamForJson(@RequestBody List<User> list){
    System.out.println("list pojo(json) list ==> " + list);
    return "{'module':'list pojo for json param'}";
}

请求体:

[
  {"name":"wf","age":15},
  {"name":"wf2","age":12}
]

JSON 参数传递要点

  • @RequestBody 表示从请求体中获取数据,适用于 POST/PUT 等。
  • @EnableWebMvc 配置不可少,否则 JSON 映射会失败。
  • 单一方法中 @RequestBody 只能使用一次。

日期类型参数处理

Spring MVC 默认可解析 yyyy/MM/dd 格式的日期。对于其他格式,需用 @DateTimeFormat 指定 pattern。

@RequestMapping("/dataParam")
@ResponseBody 
public String dataParam(Date date,
                        @DateTimeFormat(pattern="yyyy-MM-dd") Date date1,
                        @DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date2){
    System.out.println("默认格式 date ==> " + date);
    System.out.println("date1(yyyy-MM-dd) ==> " + date1);
    System.out.println("date2(yyyy/MM/dd HH:mm:ss) ==> " + date2);
    return "{'module':'data param'}";
}

请求示例:

  • date=2025/01/01
  • date1=2025-01-01
  • date2=2025/01/01 12:30:45

控制器响应

1 ) 概念

控制器方法返回值不同,对应不同的响应类型:

  • 返回 String 且不加 @ResponseBody → 跳转到对应页面。
  • 返回 String 且加 @ResponseBody → 直接将字符串写入响应体。
  • 返回实体类或集合,加 @ResponseBody → 转为 JSON 输出。

1 ) 页面跳转

@RequestMapping("/toJumpPage")
public String toJumpPage(){
    System.out.println("跳转页面");
    return "page.jsp";  // 根据视图解析器找到 /page.jsp 
}

项目中需要配置视图解析器(此处未展开),通常返回逻辑视图名。

2 ) 文本响应

@RequestMapping("/toText")
@ResponseBody 
public String toText(){
    System.out.println("返回纯文本数据");
    return "response text";
}

此时 @ResponseBody 告诉框架不要去找页面,而是直接输出返回的字符串。

3 ) JSON 响应

返回单个 POJO 对象

@RequestMapping("/toJsonPOJO")
@ResponseBody 
public User toJsonPOJO(){
    User user = new User();
    user.setName("wf");
    user.setAge(15);
    return user;
}

返回结果自动转为 JSON 对象。
返回 POJO 集合

@RequestMapping("/toJsonList")
@ResponseBody 
public List<User> toJsonList(){
    List<User> userList = new ArrayList<>();
    User user1 = new User();
    user1.setName("小明");
    user1.setAge(15);
    userList.add(user1);
 
    User user2 = new User();
    user2.setName("黑马程序员");
    user2.setAge(12);
    userList.add(user2);
 
    return userList;
}

返回结果自动转为 JSON 数组。

核心注解与配置

注解/配置作用
@ResponseBody将返回的对象/集合写进响应体,并触发类型转换(对象→JSON)
@EnableWebMvc启用 Spring MVC 高级功能,包括 JSON 消息转换
jackson-databind 依赖提供 JSON 与对象之间的转换实现

4 ) 类型转换器接口

背后执行转换的核心是 HttpMessageConverter 接口。它负责将 HTTP 消息与 Java 类型相互转换。Jackson 实现类 MappingJackson2HttpMessageConverter 通过 @EnableWebMvc 自动被注册。

RequestResponseBody

读取注解

JSON ↔ 对象

HTTP请求/响应

RequestMappingHandlerAdapter

HttpMessageConverter

Jackson Databind

Java POJO / 集合

核心流程与总结

请求处理总流程

ViewResolverMessageConverterControllerHandlerMappingDispatcherServletClientViewResolverMessageConverterControllerHandlerMappingDispatcherServletClient参数绑定(@RequestParam, @RequestBody 等)alt[返回视图名][返回 @ResponseBody]HTTP 请求查找匹配的 Controller 方法返回处理器执行链调用方法,注入参数返回 ModelAndView 或响应体解析视图渲染页面将返回值转为 JSON/文本写入 HTTP 响应

总结

本文从 Spring MVC 基础出发,介绍了:

  • 请求路径映射:@RequestMapping 类与方法的组合应用。
  • 参数传递:普通参数、POJO、嵌套 POJO、数组、集合,以及不同名参数绑定 @RequestParam。
  • JSON 交互:@EnableWebMvc + @RequestBody 实现 JSON 请求数据的接收,以及 - @ResponseBody 结合 Jackson 实现 JSON 响应。
  • 日期参数:@DateTimeFormat 自定义格式。
  • 响应处理:页面跳转、文本响应、JSON 响应,背后依赖 HttpMessageConverter 进行类型转换。

掌握这些技能,即可应对日常开发中 90% 的请求与响应场景,为后续深入 RESTful 开发打下坚实基础。

秋招突击——Java的SSM框架快速入门(4)——SpringMVC SpringMVC的相关内容 阅读详情

相关推荐

用Python实现四叉树(quad tree)

import numpy as np #正方形类 class square: #lx、ly为左上角坐标(x对应行号,y对应列号),rx、ry为右下角坐标 def __init__(self,lx,ly,rx,ry): self.lx=lx self.ly=ly self.rx=rx self.ry=ry #检查该矩阵中是否满足条件 #参数:原矩阵,阈值 #返回值:布尔类型 def check(s

weixin_44164489的博客 5868

[Spring]Spring MVC 请求和响应及用到的注解

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分。⼤⽩话: Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包。是类注解, 也是方法注解, 修饰类时, 表示类中所有方法都返回的是数据。直接通过url或者body的方式传递和对象中对应属性的名字的内容即可。

m0_73992740的博客 1258

Python多版本共存指南:用CMD命令一键切换3.6和3.8解释器(含pip使用技巧)

本文详细介绍了在Windows CMD环境下实现Python多版本(如3.6和3.8)共存与一键切换的完整方案。通过文件重命名策略、环境变量优化和自定义脚本,开发者可快速切换Python解释器版本,并管理各版本独立的pip依赖库,确保项目环境隔离与兼容性。

weixin_29035405的博客 424

【Java EE】Spring Web MVC 请求与响应的全过程

Spring MVC是Java Web开发的核心框架,基于MVC设计模式实现前后端交互。它将应用分为Model(业务逻辑)、View(数据展示)和Controller(请求调度)。Spring Boot作为开发脚手架,通过集成Spring MVC(spring-web依赖)提供Web能力。核心流程包括:1) 建立连接:使用@RequestMapping绑定URL与方法;2) 获取参数:支持普通参数、对象、数组、集合及@RequestParam重命名;3) 返回响应。适用于前后端分离场景,后端主要

记录了从0学习Java技术栈的日常 807

Arduino程序设计(十)8×8 共阴极LED点阵显示(MAX7219)

本文主要介绍8×8 LED点阵显示实验,分别是:1、介绍MAX7219点阵模块;2、点阵显示部分图形;3、点阵显示数字 0~9 及 26 个英文字母。1、通过上述两个点阵实验,了解了8*8点阵显示的基本原理;2、通过SPI通信控制点阵显示,学会了Arduino用SPI通信方式控制外设。

Alice的博客 1万+

实战教程:用YOLOv11+PyQt5打造工地安全帽检测系统(附完整数据集)

本文提供了一份完整的实战指南,详细介绍了如何利用YOLOv11目标检测模型与PyQt5界面库,从零开始构建一个智能工地安全帽检测桌面应用。内容涵盖高质量数据集的准备与标注、YOLOv11模型训练与调优,以及如何使用PyQt5开发流畅、专业的图形用户界面,最终实现一个可实际部署的AI安全监控系统。

plum99的博客 738

Spring Web MVC快速入门:掌握Java Web开发基础

RquestMapping支持哪些类型的请求?@RequestMapping的使用。对象和JSON字符串序列化和反序列化。什么是Spring Web MVC。必传参数@RequestParam。method方法指定请求方式。这两种传递方式有什么区别呢?传递json数据(最最常用)反序列化出现失败原因(重点)学习Spring MVC。客户端向服务器上传文件。form表单传递参数。前端传JSON字符串。

Coding经历 1372

Spring AI Alibaba 项目源码学习(九)-其他继承BaseAgent

本文分析了Spring AI Alibaba Agent Framework中的A2aRemoteAgent实现,主要特点包括: 实现了Agent间的远程调用能力,支持分布式部署 核心组件包括AgentCard封装元数据、A2aNodeActionWithConfig处理调用逻辑、AgentCardProvider提供卡片管理 支持流式调用和状态共享机制 采用Builder模式构建Agent实例 通过指令传递实现Agent间通信 关键流程包括状态提取、请求构建、远程调用和状态更新四个步骤,形成Agent

820

Spring MVC:Spring 前置知识 & HTTP 请求的参数传递1.0

SpringMVC-1

2401_83595513的博客 2370

基于深度学习的树木种类识别

本文介绍了基于深度学习的树木种类识别技术。我们将通过深度学习模型和图像处理技术实现对树木的自动识别与分类。首先,我们将介绍深度学习的基本原理和相关算法。接着,我们将详细说明树木种类识别的数据准备、模型构建和训练过程。最后,我们将给出代码示例,帮助读者深入了解和实践该技术。

一键难忘的博客 2319

HTOL集成电路老化测试学习总结-20250510

电子元器件的可靠性在产品开发中至关重要,尤其是在微电子技术迅速发展的今天。电子元器件的失效率通常遵循“浴盆曲线”,分为早期失效期、可使用期和老化期。为了评估芯片的可靠性,常采用高温操作寿命测试(HTOL),通过高温和高压加速芯片老化,以筛选出早期失效的芯片并评估其长期可靠性。HTOL测试中,芯片在高温下运行并监控其性能变化,通过阿伦尼乌斯公式计算加速因子,预测芯片的失效率和寿命。此外,Burn-in测试用于加速芯片老化,提前发现并剔除不合格产品,而早期失效率测试(ELFR)则用于评估产品初期使用阶段的可靠性

歌颂苦难的行为是无耻的; 2108

【SpringMVC】Spring Web MVC入门(一)

前面我们了解了什么是Spring,那么今天我将为大家分享一种在日常网站开发中使用非常广泛的框架——Spring Web MVC。先来看看官方解释。Spring Web MVC是Spring Framework提供的Web组件,它是一个MVC设计模式的框架,主要用于开发灵活、松散耦合的Web应用程序。它提供了模型-视图-控制(Model-View-Controller,简称MVC)的体系结构和可以用来开发Web应用程序的组件。

m0_74825541的博客 1697

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[Java EE 进阶]Spring Web MVC 入门 (请求)

访问不同的路径 , 就是发送不同的请求 , 在发送请求时 , 可能会带一些参数 , 所以学习 Spring 的请求 , 主要是学习如何传递参数到后端以及后端如何接收。("/User2")注册路由路径 , 可以修饰类和方法 , 访问路径为类路径+方法路径 , 支持 GET , POST 多种请求方式;: 但有多个参数时 , 前后端进行参数匹配时 , 是以参数的名称进行匹配的 , 因此参数的位置是不影响后端获取参数的结果。可以上传任意格式的文本 , 可以上传 text,json,xml,html 等。

Boop_wu的博客 1202

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Java开发】Java热门框架深入开发第7篇:二、请求与响应【附代码文档】

学习目标 一、Spring简介 2 初识Spring 3 Spring体系结构 二、IOC和DI入门案例【重点】 五、Bean的生命周期【了解】 问题导入 1 生命周期相关概念介绍 2 代码演示 3 Bean销毁时机 六、依赖注入(DI配置) 1 依赖注入方式【重点】 2 依赖自动装配【理解】 3 集合注入 今日目标 一、第三方资源配置管理 1 管理DataSource连接池对象 2 加载properties属性文件【重点】 四、Spring整合其他技术【重点】 二、AOP案例 1 案例-测量业务层接口万次

小帅说java 756

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA之Spring MVC 请求与响应 postman简介 REST风格

使用简单,开发便捷(相比于Servlet)灵活性强。

m0_73859807的博客 730

Spring Web MVC快速入门

Spring Web MVC心得

m0_73784978的博客 1091

剖析Spring MVC如何将请求映射到Controller

源码剖析Spring MVC如何将请求映射到Controller

mlynb的博客 1137

spring MVC了解

传统 MVC 中,View、Controller、Model 多在同一应用内交互;前后端分离模式下,View(前端页面)和 Controller/Model(后端服务)通过网络交互,实现了前后端的解耦,更适合大型分布式应用的开发。前后端分离后,前端不再依赖后端生成的 “视图模板”,而是通过 HTTP 请求和后端纯数据交互,自己负责界面渲染c. Spring Boot 是快速开发脚手架 / 工具集,本身无法处理 Web 请求,因此在创建 Web 项目引入Web 依赖时,会自动引入Spring MVC。

2401_87215410的博客 953

Spring Web MVC 入门:从基础到实战的全面指南

本文系统介绍了SpringMVC框架的核心概念与应用实践。首先解析了SpringMVC作为基于ServletAPI的MVC框架,与SpringBoot的协同关系。重点讲解了框架的三大核心能力:通过@RequestMapping实现URL路由映射;多种参数接收方式(@RequestParam处理普通参数、@RequestBody接收JSON、@PathVariable获取路径参数等);灵活的响应数据返回机制。

xiepinan的博客 579

Java29:Spring MVC

Spring Web MVC 是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC” 来自其源模块名称(spring-webmvc)但它通常被称为“Spring Mvc”在控制层框架历经 Strust ,WebWork,Strust2等诸多产品的历代更迭之后,目前业界普遍选择了Spring MVC 作为JavaEE 项目表述层开发的首先方案。优势:》Spring 家族的原生产品,与IOC容器等基础设施无缝对接。

zzx_nihao的博客 1224

Spring Web MVC⼊⻔

摘要:Spring Web MVC是基于Servlet API构建的Web框架,实现了MVC设计模式,通过控制器、模型和视图分离实现请求处理。作为Spring框架的一部分,它简化了Web开发流程,支持路由映射、参数接收、JSON处理、文件上传等功能。文章详细介绍了Spring MVC的核心概念,包括请求连接建立(@RequestMapping)、参数处理(@RequestParam、@RequestBody)、会话管理(Cookie/Session)以及响应处理方式。同时对比了MVC模式与三层架构(表现层、

iou10222004的博客 576

Spring MVC 框架解析

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。

MoneyHacksPro的博客 653

【JavaEE】(13) Spring Web MVC 入门

但是现在为了提高开发效率,Spring Web 中直接没有 View 这一部分了,View 是前端的任务,我们负责的只是 Controller 和 Model:浏览器访问一个地址,能够调用我们的 Sring 程序。获取到浏览器传入的参数。执行业务逻辑后,把结果返回给浏览器。HTTP 协议是“无状态”的,即没有记忆,客户端和服务器的通信数据,在下一次是记不住的。我们就可以用Cookei/Session 搭配,让 HTTP 协议能够将多次的通信联系起来。

2401_86272648的博客 985

spring MVC 介绍

(模型):封装业务数据和业务逻辑(如 POJO 对象、Service 层)。(视图):负责数据展示(如 JSP、Thymeleaf、HTML)。:Spring MVC 的入口,统一处理所有请求,协调各组件工作。:根据请求 URL 找到对应的 Controller 和方法。(控制器):接收请求,调用业务逻辑,返回模型和视图。:全局异常处理(所有 Controller 共享)。:在请求处理前后插入逻辑(如日志、权限校验)。:将请求体(JSON/XML)绑定到对象。等:简化特定 HTTP 方法的映射。

LCY133的博客 1075

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 307
上一篇: Java框架快速入门: Spring MVC 核心概念与实战
下一篇: AI Agent白手起家16: DeepSeek云端部署与API调用实战指南
Wang's Blog
博客等级 码龄12年 7438粉丝 2422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值