【Servlet】web.xml中servlet的配置方法

从S参数到SPICE模型:Cadence Sigrity Boardband SPICE完整使用指南 本文详细介绍了Cadence Sigrity Boardband SPICE工具的核心价值与完整使用流程。该工具通过矢量拟合算法,将复杂的多端口S参数文件转化为无源、紧凑且高精度的SPICE等效电路模型,从而极大提升时域仿真效率。指南涵盖了从数据导入、关键参数配置、模型精度验证到集成应用于PowerSI等系统级仿真的全步骤,是信号与电源完整性分析的必备利器。 阅读详情

关于servlet的配置相信很多人都知道。

<servlet>
        <servlet-name>别名</servlet-name>
        <servlet-class>servlet路径</servlet-class>	
</servlet>
<servlet-mapping>
        <servlet-name>别名</servlet-name>
        <url-pattern>访问路径(以/开头)</url-pattern> 
</servlet-mapping>

如果访问servlet的网页是直接放在WebRoot目录下,没有放在一个独立的文件夹内:


这样子配置servlet就很简单了,在web.xml里添加以下代码:

 <servlet>
	  <servlet-name>loginServlet</servlet-name>
	  <servlet-class>com.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
	  <servlet-name>loginServlet</servlet-name>
	  <url-pattern>/login</url-pattern>
  </servlet-mapping>

在访问servlet的页面通过表单<form action=”login”method=”提交方式”>,或者通过超链接<a href=”login”></a>提交访问路径。

但是如果访问Servlet的页面不是直接放在WebRoot目录下,而是在WebRoot的一个文件夹下,例如放在jsp文件夹下。那么配置servlet就比较麻烦一点,有以下3种方法:

1.    修改配置文件

 <servlet>
	  <servlet-name>loginServlet</servlet-name>
	  <servlet-class>com.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
	  <servlet-name>loginServlet</servlet-name>
	  <url-pattern>/jsp/login</url-pattern>
  </servlet-mapping>

在访问路径上加上文件夹的名字,而在JSP页面不用修改访问路径。

2. 修改访问路径

该方法不需修改配置文件,但是需要修改JSP页面的访问路径,如该例子的访问路径修改为:

<form action=”../login” method=”提交方式”>
<a href=”../login”></a> 

上面两种方法其实都是修改URL路径,使页面URL变成:http://localhost:8080/项目名/jsp/login(针对例子)。

3. 使用绝对路径

既然上面的方法都是解决路径问题,那么更简便的方法是使用绝对路径,这样既不用修改配置文件,也不需要修改页面的访问路径,关于绝对路径的使用,请参照我的另外一篇博文:

JSP项目相对路径与绝对路径的问题。


Author:立礼

Sign:人生不要有太多的幻想,而要有更多的行动。


PCL Trimmed ICP实现点云精配准【2025最新版】 博客长期更新,本文最新更新时间为:2025年6月25日。抄袭狗记得来抄最新代码哦,抄都抄成错的,不够丢人钱。 阅读详情

相关推荐

Golang实现企业级AI智能体安全合规自动化检测系统

需求:自动化解析欧盟AI法案、中国网络安全法、美国NIST框架等多国法规,提取具体合规要求并映射到企业技术实现。技术挑战法规文本非结构化,语义复杂,存在大量法律术语与技术术语交叉多语言支持(中文、英文、欧盟24种官方语言)法规动态更新(平均每季度更新2-3次)架构创新性:提出了"规则引擎+AI模型+实时监控"的混合架构,兼顾了合规要求的明确性与智能体行为的动态性。性能突破:通过Golang协程、多级缓存、数据库优化等技术,实现了12,800 req/s的高吞吐量和38ms的低延迟。准确性提升。

shao.bing的专栏 724

Servlet——web.xml配置

web首页的修改Servlet通配符映射与初始化参数全局参数的设置404,500等错误码的页面设置以上就是今天的内容,包括全局参数配置,web页面配置,统配符配置捕获请求等httpshttpshttpshttpshttpshttpshttps。

虚知 1万+

Surface Go 2 变身 Linux 开发本:保姆级 Ubuntu 20.04 双系统安装与驱动配置全攻略

本文详细介绍了如何将 Surface Go 2 变身为高效的 Linux 开发本,涵盖 Ubuntu 20.04 双系统安装、专用内核配置、驱动优化等全流程。通过 linux-surface 内核安装和硬件驱动优化,确保 Surface Go 2 的触控、笔输入、摄像头等功能完美运行,适合开发者打造便携生产力工具。

weixin_30596165的博客 616

【JavaWeb】关于Servlet的两种配置Web.xml文件配置或使用@WebServlet注解及urlPattern配置规则

首先,我们需要了解到的是在Servlet2.x版本中,配置依然是通过web.xml的形式进行配置的,升级到Servlet3.x后,才可以依赖注解式方式进行配置。

aDiaoYa_的博客 1万+

保姆级教程:用GlobleLand30数据+GTB3.3软件,一步步搞定MSPA景观格局分析

本文提供GlobleLand30数据结合GTB3.3软件进行MSPA景观格局分析的保姆级教程,涵盖数据预处理、软件操作、结果解读全流程,特别针对零基础用户常见问题提供解决方案,助力研究者高效完成景观生态学分析。

weixin_26757925的博客 450

使用Termux在Android设备上编译运行SpecCPU2006

SPEC2006搭配Termux,竟然还能这么玩?!

菜菜的菜园子 2961

web.xml中servlet配置及其含义

这里其实最想说的是配置中各节点的含义: ServletDemo lm.practice.ServletDemo ServletDemo /servlet 可以看到,在配置Servlet时,有两个地方需要配置,一个是servlet>,另一个是servlet-Mapping>,这两个一个是配置Serv

一揽芳华 5万+

torchsparse安装

torchsparse安装以及安装失败原因分析和解决

AI_BING_的博客 1万+

新手简单看懂Servlet里面的web.xml配置

我们在学习servlet时候,因为前面基础没学好,导致servlet看不懂,比如笔者当时就是servlet的web.xml看不懂,如果我们能先看懂web.xml,知道前端访问哪个接口,调用哪个servlet,至少就能从宏观上了解项目,对项目有一定促进作用。本文的目标在于使新手尽量简单看懂前端请求和web.xml中的配置有啥关系。

程序员象漂亮的博客 4520

手把手教你学Simulink--基于Simulink的移相全桥DC-DC变换器仿真建模

特点高效性:通过实现零电压开关(ZVS)减少开关损耗。电气隔离:使用变压器提供输入输出间的电气隔离。适用于中高功率应用:如服务器电源、工业电源等。挑战控制复杂度:精确控制相位差以实现软开关。元件选择:合适的电感、电容值对于性能至关重要。动态响应:快速响应负载变化,保持稳定的输出电压。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的PSFB变换器。根据工作频率和谐振元件值确定合适的电路参数。实现有效的控制策略来维持输出电压稳定,并实现软开关。

MHD0815的博客 520

Uniapp微信小程序:详解根据角色权限动态展示底部tabbar,支持不同身份显示不同底部导航+灵活权限组合完整源码,菜单切换不闪烁、秒加载不卡(提供动态原生Tabbar配置+自定义组件形式2种方案)

uni-app微信小程序实现根据用户不同角色显示不同的tabBar,uniapp微信小程序原生tabbar实现动态菜单导航,微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色,动态pages,uni-app微信小程序动态tabBar,根据不同用户展示不同的tabBar,uni-app微信小程序动态切换tabBar,根据不同用户角色展示不同的tabBar,微信小程序自定义底部tabbar动态修改,Uniapp小程序根据权限(角色)不同动态展示底部tabbar,解决tabbar闪烁卡顿问题,小

✅ 精选推荐文章 4285

在web.xml中配置servlet

盖伦:德玛西亚的荣光,永远不会消失! 文章目录前言一、编写一个servlet二、servlet配置总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、编写一个servlet package com.example.demo;//此处是所在的包 import java.io.*; import javax.servlet.http.*; import javax.servl.

qq_57740280的博客 5736

TIM 2024 | AD-YOLO:一种结合 Swin Transformer 和注意力机制的实时 YOLO 网络用于机场场景检测

实时获取机场场景信息对于保障机场安全和提升机场运营效率至关重要。然而,机场场景图像中的人员和车辆目标尺寸较小,而且公开的机场数据不足,这使得机场物体检测成为一项颇具挑战的任务,难以同时实现高精度和实时检测。本文提出了一种全新的机场物体检测方法——机场检测器YOLO(AD - YOLO),它融合了改进的你只看一次(YOLO)算法、Swin Transformer和注意力机制的优势,以应对这一挑战。

小白学视觉 315

idea web.xml 配置无误但打不开servlet解决方法

idea web.xml 配置无误但打不开servlet解决方法 记录一个突然发生的错误: 在写后端的时候,不知道按错了什么,导致servlet无法开启 解决方法: 1.确保xml配置无误 2.进入设置内容(我也不知道叫什么) 3.修改路径 (一定得是你自己创建好的classes文件!!!) 原文链接:https://www.cnblogs.com/ttzz/p/14082627.html ...

榴莲男孩的博客 2435

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

Servlet的生命周期及其常用覆盖方法的说明 以及在web.xml中配置servlet的属性说明

一、servlet的生命周期 二、servlet学用覆盖方法说明     @Override     public void init() throws ServletException {         System.out.println("execute init()");     }     @Override     public void init(Serv

Flower195的专栏 1103

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

servlet初始化参数的两种方法(1.配置web.xml文件 ,2.使用注释)

一、servlet初始化参数 使用标签初始化的参数是被应用程序中所有的servlet所共享。但是有时候我们需要为某一个特定的servlet配置参数,这个时候我们就需要使用servlet初始化参数。下边介绍两种servlet参数初始化的方法。 (1)配置web.xml文件 在web.xml文件中为当前web应用添加两个名为admin-email和admin-tel的ServletContext初始...

辰风的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Servlet接口中的各方法的生命周期及读取web.xml的配置信息

package cn.itcast.servletlife.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.s...

chenqiaodezhi57164的博客 116

web.xml里配置servlet,访问找不到资源的解决方法

两年前的文章,分析当时的问题,可能是eclipse一时出了毛病。现在总结classNotFoundException的问题:1.检查web.xml的servlet配置信息是否有误,尤其是class的路径;2.&lt;url-pattern&gt;url最前面有“/”,代表项目根路径;3.用注解代替文件配置;4.重启IDE。原问题:servlet程序为:访问/abc时,在tomcat后台打印字符串。...

BaiJJMM的博客 1万+

IDEA中使用servlet时配置web.xml文件没错却报错,实测解决方法

xml报错: < interface declaration >, < parcelable declaration>, AidlTokenType.import or AidlTokenType.package expected, got “/” 创建servlet,配置xml文件,web.xml总是报错,检查了好久没找出结果,困扰了我一晚上 网上一般的说url-pattern地址写错了,这种低级错误想必也没多少人犯, 错误结果如下: 后来经过不懈努力,终于在网上找到解决办法:

dhaixuexi_1的博客 1575

四、web.xml文件配置 及 Servlet类方法中使用

web.xml 文件配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xml

weixin_42457618的博客 2167

java Web.xml中servlet配置方法

文件名:“SimpleServlet.java” package cn.mldn.lxh.servlet;//定义包 import java.io.*; //HttpServlet属于javax.servlet.http包下 //ServletException属于javax.servlet包下 import javax.servlet.*;//导入HttpServl

牛逼烧饼的专栏 1137

Servlet配置web.xml后无法启动Tomcat解决方法

在tomcat 7或以上较新版本中多了一项功能叫**“注解”**,从而使用注解来发布servlet,如下图所示 为此只需要在servlet上写上注解就不在需要配置web.xml,如果两个都配置则会产生冲突导致无法启动tomcat 解决方法就是保留其中一种发布方式,要么使用注解要么使用web.xml ...

LeslieLiangZ的博客 5973

了解一下servlet中的service方法简单讲解思路:servlet类到web.xml配置文件具体运行操作

一开始接触servlet是什么,它有有什么作用呢? 对于我们这些小白来说,很茫然,也很懵逼,也无从下手,最为致命! 说一说servlet在网页调用service方法的简单思路 先简单创建这个简单servlet吧! 项目结构 ServletDemo1类 package cn.tian.web.servlet; import javax.servlet.*; import java.io.IOExc...

weixin_44768879的博客 419

web.xml过滤html,Servlet过滤器两种配置方法(注解、配置web.xml文件)

方法一(注解)/*** 使用注解标注过滤器* @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器* 属性filterName声明过滤器的名称,可选* 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)*/@WebFilter(filterName="TestFilter",urlPatter...

weixin_39543655的博客 3141

web.xml配置的servlet加载两次的原因及解决方法

遇到的问题描述: 最近在做web项目时遇到了两个奇葩问题: 1、先遇到了这个缓存问题:系统参数对象缓存到了静态变量里,并且用一个通知型任务重新加载数据库修改后的参数,之后奇葩问题便出现了,重新加载后再调用系统参数常量,有时会得到修改后的有时得到的还是修改前的参数。后来发现重新加载时赋给静态变量的对象和再次调用静态变量得到的对象hashcode有时一样有时不一样。一直没找到解决方法作为了待解决问

蝈蝈的博客 5643

Servlet在web.xml中的注册(配置)(Servlet3.0以上版本可以用注解方法)

web.xml中的:       ,,, 1,这四个都是注册一个servlet组件必须的四个节点             这个是我们要注册servlet的名字,一般跟Servlet类名有关             这个就是指向我们要注册的servlet 的类地址, 要带包路径 以上两个包在一个servlet 节点之下. 2, 是用来配置我们注册的组件的访问路径,里面包括两个

捕影世界 3619
上一篇: 【JS】原生js实现拖拽功能基本思路
下一篇: 【JS】浅述JS常用的正则表达式
励志故事
博客等级 码龄12年 99粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值