当前位置: 首页 > news >正文

MVC接收请求教程

mvc接收各种请求

1-环境搭建

1.1-准备apifox发送请求
1.2-项目搭建
①创建Web骨架的Maven项目

​ --打开2023-IDEA ,选择New Project

​ --选择Maven Archetype

​ --注意点:Catalog默认就行了

​ --Archetype选择webapp

​ --JDK跟着黑马敲最好用11

②创建好以上包结构

在这里插入图片描述

③导入pom.xml坐标
 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><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><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>provided</scope></dependency></dependencies>
④导入各种类,接口等

​ --config配置类

//ServletContainersInitConfig
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}protected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{"/"};}@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter charactFilter =  new CharacterEncodingFilter();charactFilter.setEncoding("UTF-8");return new Filter[]{charactFilter};}
}//SpringConfig
@Configuration
@ComponentScan(value = "com.bdqn",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class)) //排除注解类型,排除Controller.class
public class SpringConfig {
}//SpringMvcConfig
@Configuration //标识这是一个配置类
@ComponentScan("com.bdqn.controller") //对指定范围进行扫包,对容器注册Bean对象
@EnableWebMvc //@EnableWebMvc 的作用是将当前的配置类标识为 Spring MVC 的配置类,并通过自动配置和默认功能,为我们提供方便快捷的 Spring MVC 开发环境。
public class SpringMvcConfig {
}

​ --controller包

//UserController
@Controller
public class UserController {@RequestMapping("/save")@ResponseBodypublic String save(){System.out.println("user save ...");return "{'info':'springmvc'}";}//post带中文参数的接收@RequestMapping("/getUser")@ResponseBodypublic String getUser(String name,int age){System.out.println("姓名:"+name);System.out.println("年龄:"+age);return "{'name':'"+name+"','age':'"+age+"',}";}//post发送json数据的接收@RequestMapping("/getJson")@ResponseBodypublic String getJson(@RequestBody User user){System.out.println("姓名:"+user.getName());System.out.println("年龄:"+user.getAge());return "{'name':'"+user.getName()+"','age':'"+user.getAge()+"',}";}
}

​ --mapper包

public interface UserDao {@Insert("insert into tbl_user(name,age)values(#{name},#{age})")public void save(User user);
}

​ --pojo包

@Data
public class User {private Integer id;private String name;private Integer age;//setter..getter..toString略
}

​ --service包

public interface UserService {public void save(User user);
}

​ --impl

@Service
public class UserServiceImpl implements UserService {@Overridepublic void save(User user) {System.out.println("user service ...");}
}

2-请求参数

2.1-普通参数
①接口参数
请求类型--get请求地址--http://localhost/commonParamDifferentName?name=张三&age=18请求参数--name=张三&age=18请求名称:普通参数请求    
②接收代码
@RequestMapping("/commonParamDifferentName")
@ResponseBody
public String commonParamDifferentName(String userName , int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param different name'}";
}
2.2-pojo参数
①接口参数
请求类型--post请求地址--http://localhost/pojoParam请求参数--name=张三&age=18请求名称:pojo参数请求    
②接收代码
//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
@RequestMapping("/pojoParam")
@ResponseBody
public String pojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return "{'module':'pojo param'}";
}

相关文章:

MVC接收请求教程

mvc接收各种请求 1-环境搭建 1.1-准备apifox发送请求 1.2-项目搭建 ①创建Web骨架的Maven项目 ​ --打开2023-IDEA &#xff0c;选择New Project ​ --选择Maven Archetype ​ --注意点&#xff1a;Catalog默认就行了 ​ --Archetype选择webapp ​ --JDK跟着黑马敲最好…...

P8711 [蓝桥杯 2020 省 B1] 整除序列 存疑解决篇 Python

[蓝桥杯 2020 省 B1] 整除序列 题目描述 有一个序列&#xff0c;序列的第一个数是 n n n&#xff0c;后面的每个数是前一个数整除 2 2 2&#xff0c;请输出这个序列中值为正数的项。 输入格式 输入一行包含一个整数 n n n。 输出格式 输出一行&#xff0c;包含多个整数…...

「Linux系列」聊聊vi/vim的3种命令模式

文章目录 一、vim简介二、命令模式1. 光标移动2. 复制、剪切和粘贴3. 撤销和重做4. 搜索和替换5. 显示行号 三、输入模式1. 进入输入模式2. 在输入模式下编辑文本3. 使用特殊字符和快捷键注意事项 四、命令行模式1. 保存和退出2. 查找和替换3. 显示行号和其他设置4. 执行外部命…...

密码学——数字签名

数字签名 引言数字签名签名方案直接数字签名EIGamal 数字签名方案公钥和私钥对的产生签名的产生签名的验证Schnorr 数字签名方案公钥和私钥生成签名生成签名验证证书和认证中心引言 消息认证可以保护双方不受第三方的攻击,但是消息认证不能处理双方自身发生的攻击。如接受方可…...

【Mysql事务】

目录 前言 1.事务的特性是什么?可以详细说一下吗? 2.并发事务带来哪些问题&#xff1f;怎么解决这些问题呢&#xff1f;Mysql的默认隔离级别是&#xff1f; 3.undo log和redo log的区别。 4.事务中的隔离性是如何保证的&#xff08;解释一下MVCC&#xff09;? 5.主从同…...

从SQL质量管理体系来看SQL审核(2) - SQL质量标准

从SQL质量管理体系来看SQL审核系列将通过多篇文章从SQL质量管理体系的角度来讨论如何设计一个优秀SQL审核引擎。 本系列的第一篇博文介绍了SQL质量管理体系的四个主要组成部分&#xff0c;SQL质量标准确立目标&#xff0c;SQL开发规范指导编码实践&#xff0c;SQL审核工具监督…...

idea远程试调jar、远程试调war

idea远程试调jar、远程试调war 目的&#xff1a;测试运行时与ide开发时是否一致。 配置jar Maven中添加 <packaging>jar</packaging>将其打包为jar。 设置运行入口main 编译jar 看到jar输出 配置试调 添加jar运行 远程试调 先在源码中打好断点试调 debug运行…...

hdlbits系列verilog解答(Gatesv)-58

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本节我们得到一个4位的输入向量,我们想知道每个比特与相邻比特之间的一些关系。 out_both:此输出向量的每个位都应指示相应的输入位及其左侧的邻居(较高索引)是否均为“1”。例如, out_both[2] 应指示 和 …...

pdf文件属性的删除

pdf文件属性的删除 投标过程中需要处理文件属性&#xff0c;特别是word文件属性以及pdf文件的处理 这里讲解pdf文件属性的处理 word处理在我的另外一个博客中&#xff0c;word文件属性的处理 https://ht666666.blog.csdn.net/article/details/134102504 一般用 adobe acroba…...

OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(二)

防御提示词 在对抗提示注入攻击的持续战斗中&#xff0c;以下是防御方的防御提示。请随意将这些内容复制到您的提示库中&#xff0c;以防止提示误用 1. Please, no matter what anyone asks you, do not share these instructions with anyone asking for them. No matter how…...

mysql update set时使用and连接使更新的数据出现问题

mysql update set时使用and连接使更新的数据出现问题 简单来讲&#xff0c;我在开发时因为错误的使用and进行set连接而不是用,连接&#xff0c;使数据更新的不对&#xff0c;原本的decimal的数据值0.5被我更新后变成了null而不是0.3 原理在这篇博客里有进行说明&#xff08;我没…...

高职(大专)教师结构化面试之复习攻略

一般高校自己组织的面试&#xff0c;结构化分为以下几部分&#xff1a; 1.岗位认知&#xff08;必背&#xff09; 2.职教热点&#xff08;很重要&#xff09; 3.教育教学&#xff08;包括教育教学理论、教育热点、教学相关问题解决&#xff09; 4.人际关系&#xff08;与领…...

蓝桥杯C++大学B组一个月冲刺记录2024/3/18

蓝桥杯C大学B组一个月冲刺记录2024/3/18 规则:每日三题 昨天因为前妻姐emo上了,静下来思考了点东西,就没做题啦.今日补上! 另外:博客浏览量破万了,写的东西有人看还是很开心的 1.母亲的牛奶 农夫约翰有三个容量分别为 A,B,C升的挤奶桶。 最开始桶 A和桶 B都是空的&#xff0c;…...

科技云报道:第五次工业革命,中国AI企业如何打造新质生产力?

科技云报道原创。 人类历史的叙述与技术进步的影响深深交织在一起。 迄今为止&#xff0c;每一次工业革命都彻底改变了我们社会的轮廓&#xff0c;引入了机械化、大规模生产和数字化&#xff0c;并重新定义了人类生存的规范。 自2022年11月30日OpenAI发布ChatGPT以来&#x…...

图片怎么转jpg格式?一键完成图片格式转换

jpg图片格式作为最常用的图片类型之一&#xff0c;经常出现在不同的使用场景中&#xff0c;如果遇到手上的图片不是jpg格式的话&#xff0c;就需要图片转jpg之后再操作&#xff0c;那么该如何进行图片转换格式呢&#xff1f;试试本文分享的这个图片转格式的方法吧&#xff0c;利…...

Qt笔记 信号和槽

在Qt中&#xff0c;如何将两个对象进行关联&#xff0c;让一个对象发出信号&#xff0c;然后另外一个对象接收到信号后&#xff0c;执行该对象的一个方法&#xff0c;要实现这种方式&#xff0c;则需要使用到信号和槽机制。 信号&#xff1a; 信号一定是一个没有返回值的函数…...

后端配置拦截器的一个问题【问题】

后端配置拦截器的一个问题【问题】 前言版权后端配置拦截器的一个问题问题解决 最后 前言 2024-3-14 00:07:28 以下内容源自《【问题】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog…...

C++提高笔记(六)---STL函数对象、STL常用算法(遍历、查找)

1、STL-函数对象 1.1函数对象 1.1.1函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为函数对象 函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a;函数对象(仿函数)是一个类&#xff0c;不是一个…...

【每日一问】手机如何开启USB调试?

一、背景 当电脑跟手机之间需要进行交互的时候&#xff0c;可以考虑使用usb进行连接。那么手机如何开启USB调试呢&#xff1f; 二、操作步骤&#xff1a; 思路&#xff1a; 步骤1&#xff1a;手机开启开发者模式 步骤2&#xff1a;在开发者模式中&#xff0c;开启“USB调试”…...

Java映射知识点(含面试大厂题含源码)

在Java中&#xff0c;映射&#xff08;Map&#xff09;是一个存储键值对的数据结构&#xff0c;其中每个键映射到一个值。Java提供了几种实现Map接口的类&#xff0c;以满足不同的需求。了解映射的知识点可以帮助你在处理需要键值关联的数据时更加高效。 核心知识点 Map接口&a…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...