JavaWeb 的常用的请求传参注解

CST仿真微带贴片天线学习笔记 谐振频率为3.48GHz,基板采用Rogers RT5880板材,介电常数2.2,损耗角正切0.0009,厚度1.57mm,馈电方式为同轴馈电。 阅读详情

1、@RequestMapping

@RequestMapping 既可以用在类级别,也可以用在方法级别,当它定义在类级别的时候,标明该控制器所处理的请求都将被映射到这个路径下。另外,@RequestMapping中可以使用method属性,如果指定了method属性的值,那么就只能使用指定的请求方法,如果没有指定的话,那么就可以使用HTTP的get/post方法了。

1、get 请求特点:

a. 请求参数会添加到请求资源路径的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)
b. 请求参数会显示在浏览器地址栏,路由器会记录请求地址 (极为的不安全)
c.如果传输中文,必定会乱码(原因:get 请求默认编码格式为:IIO-8859-1,后台编码格式一般为:GBK或者UTF-8)

2、post 请求的特点:

a. 请求参数添加到请求体里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到 Http 包的请求体当中)
b. 相对安全,但是,post 请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)

2、@GetMapping

用于将HTTP GET请求映射到特定处理程序方法的注释。相当于@RequestMapping(method = RequestMethod.GET)

3、@PostMapping

用于将 HTTP POST 请求映射到特定处理程序方法的注释。相当于@RequestMapping(method = RequestMethod.POST)

4、@RequestParam

这个注解是使用在方法的形参上的,主要用途就是将请求的参数绑定到方法的形参上,有一个required属性,默认情况下是true,就是必须要传参数,如果想该形参可传可不传参数的话,就将属性值设置为false即可。

@RequestMapping("/hello")
  public String hello(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "age", required = true) String age) {
  //age参数必须传 ,name可传可不传
  ...
  }

5、@PathVariable

该注解主要是用于做动态绑定使用,让形参的值变成可供使用的URL变量,多用在 Restful 风格中。

@RequestMapping(value="/hello/{name}",method=RequestMethod.GET)
public String findPet(@PathVariable String name) {
//使用@PathVariable注解绑定 {name} 到String name
}

@PathVariable中的参数可以是任意的简单类型,如int、long、Date等,Spring会自动将其转换成合适的类型或者抛出TypeMismatchException异常,也可以注册支持额外的数据类型。另外,它也支持正则表达式,这就决定了它超强的属性,它能在路径模板中使用占位符,可以设定特定的前缀匹配和后缀匹配,自定义格式等。

6、@RequestBody

该注解是指方法形参应该被绑定到HTTP请求的Body上。

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody User user){
   //可以绑定自定义的对象类型
}

在这里插入图片描述
(1)使用 @RequestBody 注解

@RequestBody 注解是用于接收请求的 Content-Type为application/json 类型的请求,数据类型是 JSON。
在这里插入图片描述

(2)不使用 @RequestBody 注解

不使用 @RequestBody 注解时,可以接收 Content-Type为application/x-www-form-urlencoded 类型,或者 Text 类型的请求所提交的数据,数据格式:

aaa=111&bbb=222  

1)form 表单提交以及用 Ajax 提交数据时方法所发送的请求就是这种类型。
2) 后台只需用具有对应属性 id 和 name 的对象接收就行。
在这里插入图片描述
如果使用了 @RequestBody 来强行接收 Text 或者 application/x-www-form-urlencoded 类型,会报类型 not supported 的如下错误:
在这里插入图片描述

手教你如何使用Simulink和相关工具箱模拟和实现无人机的多机接力信号中继的建模 扩大通信范围:单架无人机的通信能力有限,通过多机接力的方式可以显著扩展通信覆盖范围。提高可靠性:当某架无人机出现故障或电量不足时,其他无人机可以接管其任务,确保通信不中断。适应复杂环境:在山区、森林等复杂地形中,多机接力可以绕过障碍物,建立稳定的通信链路。使用Communications Toolbox中的模块来模拟无线通信链路。例如,可以使用模块模拟噪声信道,或者使用模块计算信号衰减。matlab深色版本。 阅读详情

相关推荐

Linux 系统管理员必备:Chrome 企业版离线部署全攻略(含 RPM/DEB 双版本)

本文详细介绍了Linux系统管理员如何离线部署Chrome企业版,涵盖RPM和DEB双版本。从获取官方离线安装包到静默安装、权限配置及企业级策略管理,提供全流程解决方案,特别适合Ubuntu等DEB系系统管理员参考。

f9g0h的博客 481

javaweb中前端向后端传值的几种方式

javaweb中前端向后端传值的几种方式

蓝色海洋-探寻 7028

STM32F4+FreeRTOS实战:手把手教你移植LWIP2.1.2(含LAN8720配置避坑指南)

本文提供了一份详尽的实战指南,手把手教你如何在STM32F4平台结合FreeRTOS实时操作系统,成功移植轻量级TCP/IP协议栈LWIP 2.1.2。文章重点剖析了硬件驱动层LAN8720 PHY芯片的配置要点与常见“坑点”,并深入讲解了LWIP与FreeRTOS的深度整合、关键配置及稳定性优化策略,旨在帮助开发者构建稳定可靠的产品级嵌入式网络功能。

ik678901234的博客 1063

Java web中页面传值方法

传值时有以下几种方式,分别如下: 1、利用URL直接进行传值 URL传值格式是:URL?参数名1=参数值1&参数名2=参数值2&… 例如:http://localhost:8080/project/page.jsp?m=3&n=5 表示访问http://localhost:8080/project/page.jsp,并给其传送参数m,其值为3,参数n,其值为5 既然送出去了,那怎么接收,下面介绍 <% String str_m=reques

YING_XI的博客 1695

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1303

【学习系列】SAP RAP 3:添加多层级的子节点

本文详细介绍了在SAP ABAP RAP开发中如何创建多层级业务对象。主要内容包括:1)创建明细和计划行层级的数据库表及CDS视图;2)使用association和composition关键字建立父子关联关系;3)创建各层级的投影视图并设置层级关系;4)更新行为定义,添加关联、操作权限等控制;5)更新服务定义公开新增视图;6)创建元数据扩展优化UI展示。通过这一系列步骤,实现了从抬头到明细再到计划行的完整业务对象层级结构,为后续UI功能扩展奠定了基础。

DeveloperMrMeng的博客 587

java get方式验证入参

java get方式 验证入参

weixin_44060804的博客 924

[Dify] 法律文档解析助手怎么做才敢用?先把条款提取、依据核对和人工复核分开

这篇文章围绕用 Dify 搭建法律文档解析助手时最容易被忽略的可靠性问题展开:文档能上传、模型能总结,并不等于结果就能直接用于法务判断。文章会从文档抽取、条款定位、召回片段核对、结构化输出和人工复核几个角度梳理设计思路,适合正在用 Dify 处理合同、制度、招投标文件或企业知识库问答的读者阅读。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 9378

java中的get、post请求方式参数传递分析

java中的get、post请求方式参数传递分析

jjw_zyfx的博客 1583

(计算机组成原理)第二章数据的表示和运算-第二节:数字电路基础知识

本文介绍了计算机组成原理中的逻辑门电路、多路选择器和三态门。逻辑门电路包括基本逻辑运算(与、或、非)和复合逻辑运算(与非、或非、异或、同或),这些运算通过门电路实现,并满足分配律和结合律。多路选择器(MUX)用于从多个输入信号中选择一个输出,广泛应用于数据选择、资源共享和逻辑函数实现等场景。三态门则具有三种输出状态(高电平、低电平、高阻态),常用于总线控制和信号隔离。这些元件在数字电路设计和计算机系统中具有重要作用。

快乐江湖的博客 2472

基于STM32F103C8T6的智能蓝牙手环系统设计与实现

摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能蓝牙手环系统。该系统集成了ADXL345加速度计、DS18B20温度传感器、plusesennor心率模块和BT06蓝牙模块,实现了心率(±2bpm)、体温(±0.5℃)、步数(±3%)等健康数据的实时监测与显示。通过OLED屏提供人机交互界面,支持蓝牙APP远程控制,具备自动步数清零、异常提醒等功能。测试表明系统各项功能均达到设计要求,响应时间0.1-0.5秒,心率检测准确率98%,体温检测准确率99%,功耗50mA(工作)/10mA(待

3254968421的博客 205

Java后端开发注解总结

名称@Aspect类型类注解位置切面类定义上方作用设置当前类为AOP切面类。

qq_52597311的博客 1193

基于Simulink的PID控制防抱死制动系统(ABS)建模与仿真

防抱死制动系统(Anti-lock Braking System,简称ABS)是一种用于防止车辆在紧急制动时车轮完全抱死的技术。通过实时监测车轮速度并调节制动力,ABS能够显著提高车辆的制动性能和操控稳定性,从而减少交通事故的发生。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于ABS控制系统中。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的ABS系统,重点研究PID参数调优方法、系统动态响应特性以及制动过程中的滑移率控制能力。

MHD0815的博客 480

【JavaWeb】Springboot常用注解整理

结合自己平时的笔记和网上的搜寻,整理一些在Springboot开发中可能会遇到注解,初学,遇到的不多。以后遇到新的注解随时更新。

qinjilll的博客 780

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java web url 传参_javaWeb传收参数方式总结

有时候,我真会被传参搞得头晕,这样传要怎么接收,那样传又要怎么接收? get可以json吗?什么是json方式提交?等等问题,已困扰我许久 所以,在此想做个总结,整理一下思绪,不再为传收参烦恼!如有错误,望联系纠正,感谢!首先梳理一下HTTP的一些知识1.GET和POST请求,在传参方面有什么区别GET传输的数据存储在URL上进行拼接 POST传输的数据存储在Requst Body(请求体)中2....

weixin_39771775的博客 1277

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

javaweb篇请求与相应的参数问题

友友们,大家好,今天来开荒了,今天介绍的是在进行数据请求以及相应的时候,我们不仅仅只是进入一个网页而已,也希望看到各种用户反馈的信息以及开发人员给客户传递的信息。因此这里就需要了解我们的数据请求以及响应的方式以及get与post请求的简单差异。

菜鸟小木的博客 1139

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

javaweb数据传参类型(2)

友友们好呀,今天来分享一下对于各种数据类型传参的问题,今天陪伴我们的云海目录前言数组集合传参补充日期参数补充Json格式数据传参补充路径参数补充今日分享。

菜鸟小木的博客 1109

SpringBoot请求参数注解解析及使用场景介绍

本文主要介绍@RequestParam,@RequestBody,@PathVariable,@ModelAttribute,@RequestHeader,@CookieValue,@RequestAttribute,@SessionAttribute这8个在javaweb开发中获取参数的方式和区别。

qq_58203537的博客 1370

JavaWeb——注解

注解的介绍 注解的概念 注解(annotation),也叫元数据。一种代码级说明。它是JDK1.5及以后版本引入的一个特性,与接口,类,枚举是同一个层次。它可以声明在 包,类,字段,方法,局部变量,方法参数等的前面,用来对这些元素进行说明,注释。(说明程序,给计算机看的) 注解的分类 1.编写文档:通过代码里的注解生成文档(生成文档doc文档) 2.代码分析:通过代码里的注解对代码进行分析(使用于反射) 3.编译检查:通过代码里的注解让...

anrui0的博客 758

JavaWeb 注解学习

注解 概念 注解:用特定标识符说明程序,给计算机看的 注释:用文字描述程序,给程序员看的 定义 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 作用分类: 编写文档:通过代码里标识的注解生成文档(生成文档doc文档) 代码分析:通过代码里标识的注解对代码进行分析(使用反射) 编译检查:通过代码里标识的注解让编译器能够实现基本的

weixin_44016361的博客 420

JavaWeb开发日记(一)----controller层中常见注解区别及使用详解

controller层中包含几种常见注解: http://localhost:8080/springmvc/hello/101?param1=10&param2=20 1,@RequestParam 支持下面四种参数 defaultValue 如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值 name 绑定本次参数的名称,要跟URL上面的一样 required 这个参数是不是必须的 value 跟name一样的作用,是name属性的一个别名 使用方法:@R...

zhangleilskli的博客 972

Javaweb的学习03_注解

Javaweb_注解

m0_74807683的博客 1114

JavaWeb之如何把请求数据转成实体类

JavaWeb之如何把请求数据转成实体类 自己写个工具类加入下面两个静态方法 自定一个注解类DateTimeFormatting 调用方式User user = util.ObjectFromMap(req.getParameterMap(), User.class) 暂时支持8种基本数据类型对应包装类、BigDecimal、java.util.Date,可应对大多情况,如有需求,可以自己添加 暂不支持数组 public static <T> T ObjectFromMap(Map<S

幻雨的博客 1007

【javaWeb &第九篇】功能接口开发流程以及常用注解

简单开发中的常用注解

weixin_62513677的博客 1198

SpringMVC的五种请求传参方式

1、传统传参方式   方法参数中使用request,通过request.getParameter(“参数名”),再封装到bean中 2.简单类型传参 如果请求参数和Controller方法的形参同名,可以直接接收 如果请求参数和Controller方法的形参不同名,可以使用@RequestParam注解贴在形参前,设置对应的参数名称 3、对象传参   此时能够自动把参数封装到形参的对象上 注意:1、请求参数必须和对象的属性同名 2、此时对象会直接放入request作用域中,名称为类型首字母小写

weixin_66107774的博客 253

黑马2023Javaweb (5)|请求响应 & 分层解耦(Postman、三层架构、IOC、DI、注解)

浏览器(带参数数据)请求web服务器,web服务器通过匹配请求路径,获得数据,并做出响应。该响应在浏览器中展示。

leeyayai_xixihah的博客 1492
上一篇: Linux上使用docker启动redis并远程访问
下一篇: POST 请求的四种提交数据方式
IT__learning
博客等级 码龄7年 1107粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值