Jetty 之路

一台Linux上创建多个JETTY实例 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器. 参考:http://blog.163.com/scuqifuguang@126/blog/static/17137008620147139398337/ 有时候为了调试或者开发目的,需要在一台服务器上部署多个JETTY实例。其实这个实现还挺简单的。 拷贝 JETT 阅读详情

A.综述

    Jetty 一个servlet 容器与Tomcat 相同。不同的是Jetty比Tomcat更加“小”--轻量级容器。这句话的意思是,jetty可作为webApp项目的一部分嵌入的web项目中。目前我了解到的Jetty的使用方式有两种:

1.下载Jetty包,运行start.jar。这是将Jetty作为一个独立的软件(服务器软件与tomcat的使用相似)来使用。

2.下载jetty的库(jar包),引入到web项目中,编写启动类作为服务器使用。

注:以上两种方式都的目的是相同:Jetty是java语言实现的服务器软件(或者库)。不同的是两种实现手段不同。

当然还有别的用途,这个以后遇到了,再补充。

B.分述

1.下载jetty包,运行start.jar

下载路径:jetty 7.5.0下载路径

解压后目录:


双击或者DOS下运行start.jar就可以了。通过命令 netstat -ano|findstr 8080 查看启动情况

2.编写自启动类,运行web项目

2.1首先引入依赖包:

<dependency>
			<groupId>org.eclipse.jetty.aggregate</groupId>
			<artifactId>jetty-all</artifactId>
			<version>9.2.14.v20151106</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-jsp</artifactId>
			<version>9.2.15.v20160210</version>
		</dependency>

2.2编写启动类

import javax.websocket.server.ServerContainer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
//import org.slf4j.helpers.MessageFormatter;
/**
 * web 项目引入jetty
 * 1.编写jetty的自启动类--这种启动类没有问题。web访问正常
 * @author phda
 *
 */
public class Main {
	public static void main(String[] args) {
		System.out.println("this is main class");
		 int port = 8080;
	        Server server = new Server(port);
	        WebAppContext webAppContext = new WebAppContext("webapp","/TestWeb");  
	  
	        webAppContext.setDescriptor("webapp/WEB-INF/web.xml");  
	        webAppContext.setResourceBase("src/main/webapp");  
	        webAppContext.setDisplayName("TestWeb");  
	        webAppContext.setClassLoader(Thread.currentThread().getContextClassLoader());  
	        webAppContext.setConfigurationDiscovered(true);  
	        webAppContext.setParentLoaderPriority(true);  
	        //MessageFormatter.arrayFormat(arg0, arg1)
	        server.setHandler(webAppContext);  
	        System.out.println(webAppContext.getContextPath());  
	        System.out.println(webAppContext.getDescriptor());  
	        System.out.println(webAppContext.getResourceBase());  
	        System.out.println(webAppContext.getBaseResource()); 

	        try {  
	             ServerContainer wscontainer = WebSocketServerContainerInitializer.configureContext(webAppContext);
	            // Add WebSocket endpoint to javax.websocket layer
	            //wscontainer.addEndpoint(MyWebSocket.class);   //这行是如果需要使用websocket就加上,不需要就注释掉这行,mywebsocket是自己写的websocket服务类
	            server.start();
	        } catch (Exception e) {  
	            e.printStackTrace();  
	        }  
	        System.out.println("server is  start, port is "+port+"............");  
	}
}

启动运行,在浏览中查看运行结果:


这只是jetty的简单实用,还有更高级的配置,以后再述。



Jetty在Ubuntu上的安装 1.下载安装包 官方下载地址:http://download.eclipse.org/jetty/ 可以选择自己想要的版本,进行下载 2.安装配置Jetty服务器      2.1 解压Jetty安装包             通过tar指令在指定目录进行解压,这里我们选择在~/opt/目录下进行解压 sudo tar -zxvf jetty-distribution 阅读详情

相关推荐

基于WebSocket与Jetty 8的实时聊天室Demo详解

WebSocket是一种在单个TCP连接上进行全双双工通信的协议,允许客户端与服务器之间实现低延迟、高效率的实时数据交互。相较于传统的HTTP请求-响应模式,WebSocket通过一次握手建立持久连接,避免了频繁的连接建立与销毁,从而显著降低了通信开销。HTTP协议在实时通信场景中存在固有局限,如轮询机制导致的高延迟和服务器负载增加。而WebSocket协议通过事件驱动的方式,使服务器能够主动推送消息至客户端,极大地提升了交互体验。这种特性使其在在线聊天、实时通知、在线协作等场景中成为首选技术。

weixin_35752122的博客 1189

Jetty使用WebSocket

package csm.web.controller; import com.alibaba.fastjson.JSON; import csm.app.page.ServerInterfaceImpl; import csm.web.model.Net; import csm.web.util.webThread.CacheTest; import csm.web.util.webThrea...

qq_41966346的博客 974

Jetty Demo

Hello Jetty 入门简单实例!可直接运行!

SpringBoot整合WebSocket详解

SpringBoot整合WebSocket详解

asoklove的专栏 1571

jetty 例子, 就一个demo 还有jar

jetty demo 简单 jetty eclipse demo .jetty 轻量级的web容器,在服务器开发中经常用到,在做服务器与服务器之间通讯的时候 。

Matlab信号处理

Matlab信号处理 需要安装的APP: Signal Analyzer app:提供一个可以在时域和频域可视化、测量、分析和比较信号的工具; Filter Builder和Filter Designer app:可以很方便通过下拉菜单和填写参数的方式来设计和分析数字滤波器; 对于小波分析,Matlab提供了: 1.Wavelet Signal Denoise app:利用离散小波变换对信号去噪; 2.Signal Multiresolution Analyzer app:对信号进行多分辨率的分析和可视化

Huichin_Min的博客 4399

用Jetty 9.1运行Java WebSockets微服务

  Jetty 9.1的发布将Java WebSockets (JSR-356) 带入了非Java EE环境,从而开启了微服务时代。我们可以将Jetty的容器包含在java应用程序中(注意,不是Java代码运行在容器中,而是相反),这种微服务轻量概念开始得到提倡推广,为模块化开启新的探索方向。   该案例目标是要建设一个从客户端程序接受消息并广播到当前连接的所有其他客户端WebSocket服务器...

weixin_33975951的博客 186

命令行删除描述文件_写一个删除lock文件的skill脚本

来源:IC技能搬运工 作者:小目Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便。文件是如何被锁的Cadence在用户打开文件进行编辑的时候会在文件的同一级目录新建一个lock文件,用来标识文件的状态。一般情况下如果文件被正常关闭,这个lock文件会在...

weixin_39781452的博客 1352

Not running on Jetty, JSR-356 support unavailable分析与解决

Not running on Jetty, JSR-356 support unavailable分析与解决

简单就是美! 3104

三角洲行动交易行自动化脚本

DFMarketBot - 三角洲行动自动交易助手 DFMarketBot是一款专为三角洲行动游戏设计的交易行自动化工具,通过OCR识别和鼠标模拟实现自动补卡、补子弹功能。项目采用Python开发,支持Windows平台,主要功能包括: 自动检测并购买指定物品(房卡/子弹) 价格监控与智能购买(低于设定价格自动下单) 自定义购买数量与次数限制 支持窗口/无窗口两种游戏模式 使用前需安装Tesseract OCR引擎并配置游戏为1920*1080分辨率。通过JSON文件可灵活配置监控物品清单、理想价格和购买策

愤怒的阿木木的博客 3万+

图像传感器与信号处理——详解CCD与CMOS图像传感器

一文详解CCD与CMOS图像传感器一文详解CCD与CMOS图像传感器1. 图像传感器性能关键词1.1 噪声1.2 暗电流 一文详解CCD与CMOS图像传感器 本文主要总结了CCD与CMOS传感器的原理知识,参考书籍为《数码相机中图像传感器和信号处理》,英文版为《Image Sensors And Signal Processing for Digital Still Cameras》 1. 图像传...

weixin_44580210的博客 2万+

jetty的安装和启动

Jetty是当下非常流行的一款轻量级Java Web服务器和Servlet容器实现,它由Eclipse基金会托管,完全免费而且开放源代码,因此所有人均可以从其官网下载最新源代码进行研究。由于其轻量、灵活的特性,Jetty被广泛用于一系列知名产品,例如ActiveMQ、Maven、Spark、Google App Engine、Eclipse、Hadoop等等。下面就来研究如何安装和启动jetty。

荒野孤鹰 3万+

PLC框架-1.3- 汇川PN伺服(3号报文)

本文以汇川IS620F伺服为例,详细介绍了FB_Servo_ToAxis功能块的应用方法。该功能块封装了MC_Home等轴控指令,实现使能、定位、点动、速度模式及回零等功能,支持转矩限制与显示,并具备行程统计和HMI单位自动切换特性。文章从硬件配置(PN网络连接、报文选择)、参数设置(控制模式、电子齿轮比),到软件实现(功能块调用、手动/自动控制逻辑)进行了系统说明,重点展示了绝对/相对定位、速度模式等典型应用场景的程序编写方法,为汇川伺服在Profinet网络下的工程应用提供了完整解决方案。

qq_34047402的博客 756

初步认识jetty,以及在项目中,如何结合jetty进行调试

JETTY介绍 jetty7以后,已经归属为eclipse旗下的产品,其网站主页为: http://wiki.eclipse.org/Jetty/ jetty是一个比tomcat更轻便灵活的web容器,我们可以利用jetty 结合eclipse来调试webapp JETTY文档阅读 http://wiki.eclipse.org/Jetty 这里面详细描叙了jetty的方方面面

lawmansoft的专栏 2914

linux内核学习(一)---内核社区介绍及补丁提交

本系列开始会对linux内核进行系统性的学习,以源码与内核社区为基础,了解前沿的内核机制,同时也深度了解linux内核中的一些经典机制 本章会先对linux内核社区进行简单的介绍,包括源码下载、内核社区的修改提交

文艺小少年的博客 536

FISCO BCOS 三、多群组部署以及新节点加入群组

本章主要以星形组网和并行多组组网拓扑为例,指导您了解如下内容:了解如何使用创建多群组区块链安装包;了解创建的多群组区块链安装包目录组织形式;学习如何启动该区块链节点,并通过日志查看各群组共识状态;学习如何向各群组发送交易,并通过日志查看群组出块状态;了解群组内节点管理,包括节点入网、退网等;了解如何新建群组。

qq_63235624的博客 2919

jetty 搭建部署服务详解

一、用jetty搭建项目 (1)下载9.2.21版本jetty安装包jetty-9.2.21.zip,解压缩到目录/home/apps/jetty (2)新建项目路径:/home/apps/bossms (4)在项目路径下新建jetty实例路径:/home/apps/bossms/jetty (3)在 /home/apps/bossms/jetty 下生成jetty的项目实

Skyline 4085

【数据分享】1985-2023 年中国 30m 生长季 NDVI 数据集:刘小平团队力作,Landsat 无缝融合无云产品

中山大学刘小平团队发布1985-2023年中国30m分辨率生长季Landsat NDVI数据集,解决了传统数据的三大痛点:无缝拼接、时间连续和质量可靠。该数据集基于5-9月生长季Landsat影像,通过云检测、多景融合等技术生成,已在GEE平台开放共享。其高分辨率、长时序特性为植被动态监测、LUCC研究等提供重要支撑,在农业、生态保护等领域具有广泛应用价值。

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 1507

JETTY的部署和启动

1、什么是JETTY? Jetty是一个提供HTTP服务器、HTTP客户端和javax.servlet容器的开源项目。相对Tomcat而言Jetty更轻量级。 参考博客:《Jetty使用教程(一)》的 1.1 内容很全,推荐 2、JETTY和tomcat的比较 参考博客:《tomcat与jetty的区别》https://www.cnblogs.com/fengli9998/p/72...

微风 3406

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

深度学习工具包 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")

Jetty9架构解析-安装和启动

1.2. 安装和启动1.2.1. Jetty下载、安装你可以从http://www.eclipse.org/jetty/download.html下载最新的Jetty发布包,本书基于最新的9.3.x(9.3.11.v20160721)讲解,你可以根据需要下载zip或者tgz格式的压缩包。 Jetty是免安装的,直接将其解压到指定目录即可使用。1.2.2. Jetty目录介绍进入Jetty目录,

边城白衣的博客 6976

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Jetty的安装和配置

JettyJetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-a

小菜鸟的天地 11万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Jetty使用入门

Jetty使用入门

流水账 2067

jetty下载与配置

(转载)http://www.shuidishi.com/default.asp?CateID=5&page=2 一直以来使用jetty作为我的web开发配置服务器,开始的时候和所有的初学者一样使用tomcat作为开发服务器,可用着用着,感觉tomcat越来 越繁琐以及庞大。后来,用了jboss,知道jboss使用jetty作为其web应用服务器,所以就开始试着使用jetty。从那开始后,

Charles1900的专栏 2万+

Jetty

Eclipse Jettyis aJavaHTTP (Web) serverandJava Servletcontainer. While Web Servers are usually associated with serving documents to people, Jetty is now often used formachine to machinecommunic...

一面之媛 1106

Jetty开发指导:Maven和Jetty

使用Maven Apache Maven是一种软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven能从核心信息管理一个项目的构建、报告和文档。 他是用于构建一个web应用项目的理想工具,这些项目能用jetty-maven-plugin轻松的运行web应用,从而节省开发时间。你也能用Maven构建、测试和运行一个嵌入Jetty的项目。 首先我们将看一个很简单嵌入Jetty的He

宁静致远 4万+

Jetty安装和启动

Jetty是一个提供HHTP服务器、HTTP客户端和javax.servlet容器的开源项目。 1.下载 目录 作用 bin/ 用于存放jetty的启动脚本,目前仅提供liunx/unix下的脚本 demo-base/ 存放一个用于演示的工程 etc/ jetty存放xml配置文件的目录 lib/ 存放jetty运行时依赖的jar包,包括jetty各个模块的jar...

霓虹深处 1240
上一篇: java 在dos 下运行
下一篇: Maven 项目打成可执行Jar 包或者War包
phangle2015
博客等级 码龄12年 22粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值