在Servlet中获取Web路径和文件真实路径

VSLAM框架对比 格VSLAM特点介绍: (一)ORB-SLAM2 (二)ORB-SLAM3 (三)LSD-SLAM (四) 阅读详情

在Servlet中获取Web路径和文件真实路径


在servlet中,使用HttpServletRequest对象中的一系列方法可以获取相关路径的信息,然后可以根据
这些信息组合成一个Web站点的虚拟路径。HttpServletRequest接口中提供的用于获取路径有关的信息的方法如下:

  • getScheme():返回请求协议(http).
  • getServerName():返回服务器的名称。如果访问本机,则返回的是localhost。
  • getServerPort():返回服务器的端口号。Tomcat服务器的默认端口为8080.
  • getContextPath():返回客户端所请求的Web应该的URL入口。例如,在浏览器中访问http://localhost:8080/helloapp/getpath,该方法返回的是“/helloapp”;
  • getRequestURL():返回请求Web服务器的完全路径。例如,在浏览器中访问http://localhost:8080/149/getpath,该方法直接返回的是:http://localhost:8080/149/getpath这个路径。

获取文件的真实路径,可以使用ServletContext接口的getRealPath(String path)方法,该方法根据参数指定的虚拟路径,返回文件在系统中的真实路径,这个路径主要是指发布在Tomcat服务中的文件路径。例如,找到index.jsp文件的真实路径,这个路径主要是指发布在Tomcat服务中的文件路径。例如,找出index.jsp 文件的真实路径的写法为getRealPath(“index.jsp”),那么反悔的真实路径为“D:\Program File\apche-tomcat-7.0.41\webapps\149\index.jsp”。

一、新建名为GetPathServlet的servlet类,在该类的doPost()方法中获取Web服务器的路径以及文件的真实路径。

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class GetPathServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        String scheme = request.getScheme();    // 获取请求协议(http)
        String serverName = request.getServerName();    //获取服务器名称(localhost)
        int serverPort = request.getServerPort();   // 获取服务器端口号
        String contextPath = request.getContextPath();  // 返回Web应用的URL入口
        // 访问路径
        String path = scheme + "://" + serverName + ":" + serverPort + contextPath + "/";
        // getRealPath()方法返回一个给定虚拟路径的真实路径
        // 这里的真实路径只能是WebRoot下直接的文件,不能包含子文件夹。因为此处的真实路径即为:server真实路径+文件名。
        String realPath = this.getServletContext().getRealPath("index.jsp");
        // 设置HTTP响应的正文的MIME类型以及字符编码格式
        request.setAttribute("path",path);  // 将Web路径添加到request对象中
        request.setAttribute("realPath", realPath); // 将真实路径添加到request对象中
        request.getRequestDispatcher("path.jsp").forward(request, response);
    }

}

二、新建path.jsp页,在该页中获得请求中保存的路径信息并显示。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="GetPathServlet" method="post">
    <input type="submit" value="提 交"/>
</form>
    <table align="center">
        <tr>
            <td>Web路径:</td>
            <td><%=(String)request.getAttribute("path") %></td>
        </tr>
        <tr>
            <td>真实路径:</td>
            <td><%=(String)request.getAttribute("realPath") %></td>
        </tr>
    </table>
</body>
</html>
40、基于指令的GPU编程:OpenACC与OpenMP的深入解析 本文深入解析了两种基于指令的GPU编程模型——OpenACC和OpenMP。从编程复杂度、数据处理方式和性能表现等多个方面对两者进行了对比分析,并结合实际应用场景提供了选择建议。通过详细的代码示例和性能测试结果,帮助开发者更好地理解和应用这两种编程模型,以充分发挥GPU的并行计算能力。 阅读详情

相关推荐

XGBoost算法案例 - 红酒品质分类

数据集共包含 11 个特征,共计 3269 条数据. 我们通过训练模型来预测红酒的品质, 品质共有 6 个各类别,分别使用数字: 0、1、2、3、4、5 来表示。

YIAN爱学习的博客 450

获取项目真实路径

【代码】获取项目真实路径。

m0_60983761的博客 205

MEME-CHIP实战:5步搞定ChIP-seq数据中的motif发现与可视化

本文提供了使用MEME-CHIP工具进行ChIP-seq数据motif发现与可视化的完整实战指南。通过5个清晰步骤,从数据准备、环境搭建、命令行执行到结果解读与高级可视化,详细讲解了如何利用MEME-CHIP工作流高效完成从原始peak序列到发表级motif图的分析,并分享了关键的参数调优与避坑经验。

alice7model的博客 508

ServletContext介绍与文件真实路径的获取

概念: 功能 获取MIME类型 域对象:共享数据 获取文件的 真实(服务器)路径 概念: 代表整个web应用,可以和程序的容器(服务器)来通信 功能 获取MIME类型 域对象:共享数据 获取文件的 真实(服务器)路径 获取MIME类型 MIME类型: 在互联网通信过程中定义的一种文件数据类型 格式:大类型/小类型,如text/html image/jpeg 基本的类型可以从tomcat的配置文件web.xml找 下面我们就写...

林高禄 7548

农业杂草检测——棉花杂草数据集

然后将本层13×13的特征图谱经过×2上采样扩充到26×26,并与上层中26×26的特征图谱拼接,得到新的26×26的特征图谱,在该特征尺度上进行第二次预测,此时得到的特征图谱是相对输入图像16倍下采样,具有中尺度感受野,适合检测中等尺度对象;通过目标检测,能够及时清除杂草,减少病虫害的滋生和传播,保障棉花的健康生长,并有助于降低生产成本。对于地膜覆盖的棉田,由于膜内耕作层土温高、底墒好,杂草出苗早而集中,一般覆膜后5 - 7天杂草陆续出土,在墒情好的情况下,15天左右即形成出土高峰。

qq_38220914的博客 1247

【windows】【系统还原】亦是美kms执行一键关闭defender 之后,windows defender 被卸载了,无论如何都打不开

还是执行 都没有明显效果 那么,我最后是怎么解决得呢? 一、打开控制面板(任务栏搜索kzmb)

weixin_41899098的博客 6915

使用RequestParam或HttpServletRequest获取上传的文件

前端(注意form的method与enctype): <form action="/upload" id="form" method="post" enctype="multipart/form-data"> 姓名:<input type="text" id="name" name="name"><br> 文件:<input type="file" name="myFile"><br> <button type="su

m0_52613676的博客 3154

RTC时钟芯片替换代码移植-IIC通信

1、问题 RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取延时,但大普芯片采用同样方式读取不行(需要加延时) 2、RX-8010SJ手册说明(以读取数据为例) (1)寄存器读操作时序图 指定地址读操作: 1)CPU 发送开始条件[S] 2)CPU 传输RX-8010SJ 的从地址,用R/W 位设定写模式 3)检测从RX-8010

weixin_42851683的博客 2067

JAVA 取得当前目录的路径

在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上 1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获取web项目的全路径 例如 :E:/eclipseM9/workspace/tree/ tree是我web项目的根目录 2.你也可以随时在任意的class里调用 this.getClass().getClassLoader().getResource("/").getPa

stark_summer的专栏 4631

从光耦隔离到稳定驱动:信捷伺服与STM32的硬件设计陷阱与救赎

本文深入探讨了信捷伺服驱动器与STM32微控制器配合时的硬件设计关键问题,包括光耦隔离电路选型、电源电压选择、拨码开关设置等核心环节。针对伺服驱动器的稳定驱动需求,提供了从电路设计到抗干扰策略的完整解决方案,帮助工程师规避常见陷阱,提升工业控制系统的可靠性。

gold8的专栏 312

数学建模学习(120):使用Python实现基于AHP的供应商选择分析

使用Python实现基于AHP的供应商选择分析

全栈川川 917

Servlet中路径详解

路径 与路径相关的操作 l  超链接 l  表单 l  转发 l  包含 l  重定向 l  l  ServletContext获取资源 l  Class获取资源 l  ClassLoader获取资源 客户端路径 超链接、表单、重定向都是客户端路径,客户端路径可以分为三种方式: l  绝对路径; l  以“/”开头的相对路径; l  不以“/”开头的相对路径

午-夜 1649

全能媒体工具深度测评(下篇一):AI图文生成+全能解压+图片去文字,一键搞定素材精修

解压50多种格式,文生图,图生图

cs821984831的博客 42

Servlet中获取Web路径和文件真实路径

本实例介绍如何在servlet中获取Web路径和真实路径,在servlet中,使用HttpServletRequest对象中的一系列方法可以获取相关路径信息,然后可以根据这些信息组合成一个Web站点的虚拟机路径。HttpServletRequest接口中提供的用于获取路径相关的信息的方法如下: getScheme():获取请求协议(http)。 getServerName():返回服务器名称,如果...

小坏蛋博客 1443

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Servlet 获取文件目录

Servlet 获取文件目录 在web项目中,经常会用到配置文件。加载配置文件时就要需要目录 通过Request获取虚拟目录 package com.web.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http...

你的博客 1550

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

使用ServletContext获取资源路径

package cn.ttt.servlet; import java.io.IOException; import java.io.InputStream; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax....

小天的博客 1840

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

web项目中各种路径的获取(搬运)

1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获取web项目的全路径 例如 :E:\eclipseM9\workspace\tree tree是我web项目的根目录 2.你也可以随时在任意的class里调用 this.getClass().getClassLoader().getResource("/").getPath(); 这将获取 到classes目录的全路径 例如 : E:\eclipseM9/w

qq_36640480的博客 646

servlet中编写的路径总结

Servlet和JSP本质上完全相同,JSP本质上还是一个Servlet,只不过JSP的专业强项是做页面的展示,数据的展示。 Servlet负责收集数据,JSP负责展示数据。 why? Servlet可以编写了大量的html代码,然而客户改页面是最频繁的; 运维在客户处:页面变化,用的JSP可以直接修改JSP,若是servlet则需要反编译后修改代码再编译为字节码; servlet中有哪...

乘风晓栈的博客 1007

servlet--获取类路径下资源

servlet--获取类路径下资源 context 获取真实路径(*****) 还可以使用ServletContext对象来获取Web应用下的资源,例如在hello应用的根目录下创建a.txt文件,现在想在Servlet中获取这个资源,就可以使用ServletContext来获取。 l 获取a.txt的真实路径:Stri...

weixin_30834783的博客 160

jsp 获取项目路径,java获取项目路径

1.  获取web服务器项目的真实物理路径 request.getSession().getServletContext().getRealPath("/"); 2.  相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) String relativelyPath=System.getProperty("user.dir"

xyjikl 328

Servlet中获取文件在服务器主机的真实路径

package priv.lwx.javaex.servlet_demo.web.servletcontext; /** * 获取文件在服务器主机的真实路径 * * @author liaowenxiong * @date 2022/1/12 15:34 */ import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet;

liaowenxiong的博客 489

java 获取webroot绝对路径_java获得项目绝对路径

在jsp和class文件中调用的相对路径不同。在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty(“user.dir”)获取你工程的绝对路径。1.jsp中取得路径:以工程名为TEST为例:(1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TEST...

weixin_39879881的博客 750

java获取项目绝对路径_java获得项目绝对路径

在jsp和class文件中调用的相对路径不同。在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。1.jsp中取得路径:以工程名为TEST为例:(1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TEST...

weixin_36338813的博客 656

jsp获取项目路径

1.? 获取web服务器项目的真实物理路径 02 request.getSession().getServletContext().getRealPath("/"); 03 2.? 相对路径的获得 04 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) 05 String r...

chuan6699的博客 122

jsp获取项目路径(二)

1.? 获取web服务器项目的真实物理路径 request.getSession().getServletContext().getRealPath("/"); 2.? 相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) String relativelyPath=System.getProperty("user.dir"); 上

上班搞IT,下班搞ITF。 1654

jsp 获取项目路径,java获取项目路径【蕃薯耀分享】

通过以下方式获得(不论是一般的java项目还是web项目) String relativelyPath=System.getProperty("user.dir"); 上述相对路径中,java项目中的文件是相对于项目的根目录 web项目中的文件路径视不同的web服务器不同而不同 (tomcat是相对于 tomcat安装目录\bin) 3.  类加载目录的获得(即当运行时某一类时获得其装载目录) 3.1. 通用的方法一 (不论是一般的java项目还是web项目,先定位到能看到

蕃薯耀的博客 127
上一篇: Servlet中将JavaBean对象传递到JSP页
下一篇: 用servlet记录用户访问次数
gamedev˚
博客等级 码龄12年 280粉丝 293原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值