获取表单数据的四种方法

使用Visual Studio 2015完成表单的自动提交方式 今天我们将使用Visual Studio 2015来完成一个表单提交,同时我们还需要使用到bootstrap和jQuery插件。 首先布局页面我们在一个div标签中嵌套一个form标签,form标签嵌套四个div标签。 第一个div标签中包含有label标签和一个input标签,label标签中的是“姓名”input标签则是用来接收传入的数据的 ... 阅读详情
表单:
<! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> Insert title here </title >
</ head>
< body>
     <form action ="/day08_response/servlet/FormServlet" method ="post" >
        用户名: < input type= "text" name ="userName" >< br>
        密   码:< input type = "password" name ="pwd" >< br>
         < input type= "radio" value = "男" name ="sex" checked= "checked"> 男
         < input type= "radio" value = "女"  name ="sex"   >女 < br>
        爱好:
         < input type= "checkbox" name = "hobby" value ="篮球" >篮球
         < input type= "checkbox" name = "hobby" value ="唱歌" >唱歌
         < input type= "checkbox" name = "hobby" value ="画画" >画画
         < br>
        所在城市:
         < select name= "city" >
             < option> ===请选择=== </option >
             < option value= "sh" >上海 </ option>
             < option value= "bj" >北京 </ option>
             < option value= "gz" >广州 </ option>
         </ select>< br >
         < input type= "submit" value = "注册">
     </form >
</ body>
</ html>



方法一:request . getParameter()

//获取表单中的信息
        String userName = request .getParameter( "userName");
        String sex = request .getParameter( "sex");
        String[] hobby = request .getParameterValues( "hobby");
        String city = request .getParameter( "city");
         //转换编码
         userName= new String(userName .getBytes("iso-8859-1" ),"UTF-8" );
        System. out .println(userName );
         //遍历hobby
         for (int i = 0; hobby != null&& i < hobby .length ; i ++) {
            System. out .print(hobby [i ]+"\t" );
        }
        System. out .println();
        System. out .println(city );


方法二:request .getParameterNames()

request .setCharacterEncoding("UTF-8" );
         Enumeration<String> names = request .getParameterNames();
         while (names .hasMoreElements()) {
            String name = (String) names .nextElement();
            String[] values = request .getParameterValues(name );
             //遍历values
             for (int i = 0;values != null&& i < values .length ; i ++) {
                System. out .println(name +":\t" +values [i ]);
            }
        }



方法三:  request.getParameterMap()
    
 //创建User对象
         try {
            User user= new User();
            System. out .println(user );
             //获取map集合
            Map<String, String[]> map = request .getParameterMap();
             //遍历map
             for (Map.Entry<String,String[]> m   : map .entrySet()) {
                String name= m.getKey();
                String[] value= m.getValue();
                 //创建一个属性描述器
                PropertyDescriptor pd= new PropertyDescriptor(name , User.class );
                 //获得 Uer实体的设置器
                Method setter = pd .getWriteMethod();
                 //得到etter属性
                 if (value .length ==1){
                     setter.invoke( user, value [0]);
                } else {
                     setter.invoke( user, (Object)value );
                }
                
            }
            System. out .println("用户信息" +user .getCity());
        } catch (Exception e ) {
             // TODO: handle exception
             e.printStackTrace();
        }


package day08_response.entity;
//User实体类
public class User {
    String userName; //用户名
    String pwd; //密码
    String[] hobby; //爱好
    String sex; //性别
     public String getSex() {
         return sex ;
    }
     public void setSex(String sex ) {
         this .sex = sex ;
    }
    String city; //城市
     public String getUserName() {
         return userName ;
    }
     public void setUserName(String userName ) {
         this .userName = userName ;
    }
     public String getPwd() {
         return pwd ;
    }
     public void setPwd(String pwd ) {
         this .pwd = pwd ;
    }
     public String[] getHobby() {
         return hobby ;
    }
     public void setHobby(String[] hobby ) {
         this .hobby = hobby ;
    }
     public String getCity() {
         return city ;
    }
     public void setCity(String city ) {
         this .city = city ;
    }

}



方法四:使用BeanUtils框架

将BeanUtils.jar和commons-logging.jar导入项目中

try {
            User user= new User();
            System. out .println(user );
             request.setCharacterEncoding( "UTF-8" );
            BeanUtils. populate( user, request .getParameterMap());
            System. out .println("user信息:" +user );
        } catch (Exception e ) {
             // TODO Auto-generated catch block
             e.printStackTrace();
        }



三维重建之条纹投影结构光(三)——相高模型标定 接上面两文: 三维重建之条纹投影结构光(一)https://blog.youkuaiyun.com/beyond951/article/details/123361852?spm=1001.2014.3001.5501三维重建之条纹投影结构光(二)——四步相移+三频外差法https://blog.youkuaiyun.com/beyond951/article/details/123769596?spm=1001.2014.3001.5501接下来对相高模型进行标定,其推导过程如下图所示 ... 阅读详情

相关推荐

【从零开始玩量化1】AKShare: Python开源财经数据接口库

文章目录量化的第一步:数据AKShare介绍AKShare安装AKShare使用AKTools安装/使用结语 量化的第一步:数据 想要玩量化,第一步要有数据,这个数据可能是历史交易数据、财务数据、宏观数据等等。我们最终要做的,无非就是从数据中分析出有价值的信息,以便用来指导投资策略。 在获取数据的这条道路上,我走了很多弯路,尝试了各种方法:使用Tushare到放弃、自己写网易股票页面的爬虫,自己写申万行业数据的爬虫、自己写同花顺问财的爬虫、使用聚宽的免费数据API等等,直到最终,我发现了AKShare。 A

量化投资助手的博客 5万+

Action 中获取表单数据的三种方式

(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/53138905 冷血之心的博客)Action 中获取表单提交数据的三种方式:(1)使用ActionContext类来获取。(2)使用ServletActionContext类获取。(3)使用接口注入的方式获取。先来说说获取表单数据的直接方法:1、在We...

weixin_34041003的博客 629

一个基于ZYNQ、AXI接口的PL端卷积加速器,可由PS端调用(附Github源码)

一个基于ZYNQ,AXI接口的PL端卷积加速器,可由PS端调用开发板型号:Zynq-7000 SoC XC7Z305 FPGA开发平台:Vivado 2019.1;Github源码链接:https://github.com/CY0807/ZYNQ_PL_CONV_ACC。

跳跳骑士的博客 1306

获取表单数据的四种方式

第一种

P7295的博客 5523

霍尔式流量计背后的技术和算法

例如,在一项实验中,当流量低于最小操作范围(0.250 L/min)时,误差比其他流量大,但仍然在95%的精度范围内可接受。例如,在Honeywell电子学的测试中,使用30英寸水柱的压力计和热电偶测量气体特性,记录并计算实际和理论质量流量,以确定修正系数。霍尔式流量计的校准系数是通过一系列精确的测量和计算步骤确定的,以确保其测量结果的准确性和可靠性。霍尔式流量计的校准系数是通过严格的环境条件、精确的测量步骤和实验数据确定的。其中,Qs是标尺介质的流量,K是修正系数,Qm是用户介质的流量。

百态·数智思维 | 聚焦大数据、量化与未来AI 1234

硬件基础(4):(6)高精度ADC设计中模拟地与数字地的划分与连接

在实际 PCB 设计中,**接地与布线**对于获得干净的参考电压和高精度 ADC 测量至关重要。下面详细阐述**如何在硬件层面减少数字噪声耦合到模拟电路、保障参考电压的稳定性**。

FCZlll的博客 2645

JavaWeb获取表单提交数据实例

HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。根据HTTP规范,POST可能会修改服务器上的资源的请求。再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据。

qwLily的博客 1538

从零组装一台会‘看’的无人机:手把手教你配置NUC机载电脑与D435深度相机(环境搭建篇)

本文详细介绍了如何从零开始组装一台具备视觉能力的智能无人机,重点讲解了NUC机载电脑与D435深度相机的配置方法。通过Ubuntu系统安装、ROS环境搭建、深度学习框架配置等步骤,帮助开发者实现无人机的自主避障和目标跟踪功能。文章还提供了性能优化和常见问题解决方案,是无人机视觉系统开发的实用指南。

weixin_30915275的博客 397

获取表单提交信息

通过request对象的getParameter()方法可以获取用户提交的表单信息。 例如存在一个name属性为username的文本框,在表单提价后,要获取其value值,可通过以下代码实现: String userName=request.getParameter(“username”); 创建用户注册的表单页 &amp;lt;%@ page language=&quot;java&quot; contentType=&quot;...

you can you up up up的博客 3843

9.23华为OD机试真题 新系统 - 世界杯徽章换购 (Java/Py/C/C++/Js/Go)

9.23华为OD机试真题 新系统 - 世界杯徽章换购 (Java/Py/C/C++/Js/Go)

算法大师! 1605

RK3588平台开发系列讲解(SARADC篇)SARADC的工作流程

📢本篇将介绍SARADC的源码分析和工作流程。

内核笔记 3231

Request获取表单数据的四种方法详解

表单代码 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>login</title> </head> <body> <...

Distance的博客 3万+

GEE:本地影像上传到GEE的Assets中,并输入机器学习算法中作为特征变量

当我们在 Google Earth Engine(GEE)中应用机器学习算法时,会输入一些影像作为特征变量数据,进一步根据这些特征影像去推理未知区域的数据。但是 GEE 平台上计算特征变量的 API 函数并不是非常全面,我们希望获得更多的特征用于分类。这个时候,我们可以将本地计算的特征影像上传到 GEE 中进行后续处理。本文记录了从本地上传特征数据到 GEE 的 Assets 中的教程,用于后续在 GEE 中分类或者回归使用。本文也可作为《》一文的补充。

养乐多的博客 1730

获取form表单数据的四种方法 (可以接收post与get提交的数据)

在日常工作中或浏览网页时,我们经常使用和看到很多表单提交的功能与样式。而这个功能是用form表单和一些JavaScript或jQuery来实现的。 现在我们就用Visual Studio 2015 来对其来进行验证,form表单实现数据获取的方法呀四种。 ...

藜笙的博客 3万+

文档:亲测可用解决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")

获取表单的四种方式

获取表单的四种方式 一. 获取表单input的value值 functiongetData1() { varname = document.getElementById("txtName").value; varsex = document.getElementById("cboSex").value; varxuexiao = document.getElementById("txtxx").value; vardianhua = document.getElementByI...

pjh_2003的博客 1349

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Struts2获取表单数据

Struts2获取表单数据

qq_42640067的博客 1110

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

servlet 获取表单数据

html注册表单<!DOCTYPE html> <html> <head> <title>Login.html</title> <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="description" content="this is my page"> <meta na

cyh 2865

java表单自动绑定数据_java工作流系统表单自动 获取数据

关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器什么是数据自动获取?当一个字段的值是从其它表中取出来,或者通过后台的计算出来,或者通过js脚本计算出来,我们称为字段的数据自动获取。自由表单的获取方式分为,保存后获取与js计算获取两种方式。自动获取分为如下几种方式:方...

weixin_34820733的博客 110

控制器获取表单数据的4种方式:(post与get)

控制器获取表单数据的4种方式:(post与get) 通过形参的方式接收表单提交数据 Post与get提交的数据都可以接收 将表单数据提交到控制器中,控制器获取到数据后输出 通过FormCollection来接收表单的数据,这个类型无法接收get提交的数据 3.通过 Request.Form["name的属性值"]获取表单数据, 这个类型无法接收get提交的数据,使用get提交将无法显示信息。 通过EntityClass实体类接收数据,这个类型可以接受post与...

mumudezhi的博客 1339

表单提交(控制器接收数据)的几种方法

自动提交; Form表单布局如下: <form action="/Form/Index1" method="post"> <label>姓名</label> <input type="text" name="name" value=" " /><br /> <label>性别</label> <se...

weixin_57726902的博客 3330

JS表单提交

Form表单中://get为默认提交方式 Method的值: get/post Get提交时参数直接暴露在URL上 与post相比,get更简单也更快。并且在大部分情况下都能够用 然而,在以下情况下请使用post请求 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(post没有数据限制) 发送包含未知字符的用户输入时,post比get更稳定也更可靠 Get/post区别 GET方法是用来向服务器上获取数据,而post是用来向服务器上传递修改数据 GET将表单里的数据添加的action

wulongfeng的博客 415

SpringMVC获取页面表单参数的几种方式

SpringMVC获取页面表单参数的几种方式 以下几种方式只有在已搭好的SpringMVC环境中,才能执行成功! 首先,写一个登陆页面和一个Bean类 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTY...

lanlangtu的博客 1695

从页面获取form表单提交的数据

1 使用HttpServletRequest,方便灵活 页面代码,使用action提交一个表单,里边有球的id,球的主人,球的颜色,所在省份,区域 <form action="balls/addball_form" method="post"> <table> <tr><td&gt...

weixin_30672019的博客 3296

JavaScript表单提交总结

表单提交 即用户输入内容进行提交的方式 Form表单 Form表单的属性action与method 属性 值 描述 action URL 规定当提交表单时向何处发送表单数据 method get/post 规定当前用于发送form-date的HTTP方法(提交表单的方式) <formaction="/Form00/get...

qq_47233664的博客 177

JavaScript表单提交

JavaScript表单提交 1、 表单提交 form表单提交、form表单中post与get提交的区别、form表单手动提交、获取表单数据的4种方法 form表单的属性action与metgod action URL 指定当提交表单时向何处发生表单数据 method get/post 规定用于发送form-data的HTTP方法 (提交表单的方式) URL可能的值: 绝对 URL 指向...

weixin_44619280的博客 156
上一篇: socket编程
下一篇: 利用cookie实现查看最近浏览
codelady
博客等级 码龄11年 26粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值