【web后端(十三)】jsp、servlet_生命周期、过滤器

Servlet 的生命周期详解 在方法执行过程中,DispatcherServlet 会根据配置的 HandlerAdapter 对请求参数进行解析,将其转换为方法所需的类型,并将方法的执行结果封装为 ModelAndView 对象。在初始化阶段中,DispatcherServlet 会读取并解析配置文件(如 web.xml 或注解配置等),创建必要的组件对象(如 HandlerMapping、HandlerAdapter 等),并将它们存储在 ServletContext 中,以便于在后续的请求处理中使用。 阅读详情

Servlet生命周期

serlvet请求是单实例多线程

1.初始化

Serlvet是配置到web.xml当中,服务器读取配置自动实例化并置入ServletContext容器当中。当Servlet刚刚实例化,就会调用void init()方法,所以我们初始化Servlet的代码并不是写在构造函数中,而是推荐写到init()方法当中

2.服务请求

service(request,response)是Servlet处理请求的默认方法,这个方法根据http请求中的方法值(如,get,post等)分别调用doGet(),doPost()等方法

3.销毁

一个Servlet如果在一段时间内(具体由服务器定,比如24小时)没有被访问,容器会自动销毁,销毁时调用destroy()方法。如果Servlet销毁后又被请求,则服务器会重新实例化Servlet并调用init()方法

 

处理乱码

request.setCharectEncoding("utf-8");
respone.setCharectEncoding("utf-8");

 

过滤器

拦截在你要请求的Servlet前面,提前执行的web组件

面向切面的编程

Filter要实现,javax.servlet.Filter接口

package edu.xalead.filter;
​
import javax.servlet.*;
import java.io.IOException;
​
public class EncodingFilter implements Filter {
    public void destroy() {
    }
​
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        chain.doFilter(req, resp);//转发给用户实际请求的Servlet
    }
​
    public void init(FilterConfig config) throws ServletException {
​
    }
​
}

 

web.xml

<filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>edu.xalead.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern><!--/*是通配符,指拦截所有的Servlet-->
</filter-mapping>

过滤器的代码会在其它Servlet代码之前执行。

JavaWeb总结——jsp+servlet 参考资料 知识梳理: 1、基础语法 scriptlet——三个指令——六个动作 2、内置对象 九大内置对象——四大作用域——四种追踪技术 3、servlet与java 导入Javabean——servlet生命周期——跳转——过滤器 第一章——Java Web发展历程 1、Web发展历程 a、为了科研,设计出Internet,进一步发展,应用HTTP协议进行超文本和超... 阅读详情

相关推荐

详细对比模型训练和模型精调

当我们进行模型精调(Fine-Tuning)和模型训练时,我们需要考虑到不同的步骤和目标。

pumpkin84514的博客 1852

Servlet中配置和使用过滤器

过滤器是一个接口,允许我们在请求和响应链中对请求进行处理或者修改响应。过滤器可以在请求到达 Servlet 前、响应返回客户端前对请求和响应进行处理。过滤器本身不能直接处理请求和响应,而是通过doFilter()方法来传递请求和响应对象。通过这个方法,过滤器可以对请求和响应做修改或在请求/响应链中传递给下一个过滤器或者 Servlet。过滤器是 Servlet 技术中非常强大的功能之一。

小蜗牛的珍贵百宝箱 1691

Zemax操作--2(单透镜和双胶合透镜优化)

单透镜 要求 镜头数据里面的数量变化后要重新设计优化函数 设计 一、初始参数 按照要求输入波长、入瞳孔径、视场数据编辑器如图 物面--透镜前表面--透镜后表面--相面(镜头数据再插入一个面如图) 将2面曲率半径F数设置为10,zemax自动给出合适值 设置面2的边缘光线高度,zemax自动给出合适值 二、评价参数设置 将面1曲率半径设置为变量 再设置评价函数告诉zemax我们需要什么条件,评价函数默认即可 执行优化 双胶合透镜 要求 ...

lzy750750的博客 1万+

Spring过滤器

当用户提交了一个包含中文参数的请求时,浏览器首先会将这些中文转化为一个字节序列,发送到服务器,服务器接收到这个字节序列,会按照其默认的字符编码ISO8859-1对其进行编码,此时就产生了乱码。当对servlet的请求到达servlet容器时,会先对请求进行解析,使用解析出的URI,作为比较对象,从第一个map中查找是否有相同的key,若存在相同的key,那么读取其value,即servlet对象的引用,执行该servlet的service()方法。,没有进行输出,由此可证,动态资源没有访问的资格。

m0_46612024的博客 1268

AUTOSAR R20-11标准下载!

这是公众号的第2篇推文,粉丝数49 Document Search Classic Platform Adaptive Platform Foundation 文档截图 以为会在明天的发布会之后才上线,没想到官网现在就悄悄放出来了。 中国由于网络问题,下载速度比较慢或者会中断。 “阅读原文”提供多种下载方式,可以在线浏览,可以集中下载也可单个文档下载。 如有增减我也会及时在公众号里通知大家,不过我觉得不会变动了。 整理不宜,好东西要分...

Adaptive_AUTOSAR的博客 1890

PC微信逆向) 读取内存联系人链表

首先从一些网络上搜索到的信息可以得出联系人列表是保存在内存里的,并且是全局变量不会被释放,所以我们可以通过搜索某个联系人的信息来定位

Qwertyuiop2016的博客 2918

servlet的生命周期、过滤器Filter

1.什么是生命周期? servlet从创建到初始化再到服务最后到销毁的过程。就是servlet的生命周期。 servlet会在不同的阶段执行不同的方法。 (1)构造方法---->servlet被创建时执行 (2)初始化方法--->servlet创建完成后要初始化一些参数时该方法会被执行。 (3)执行方法--->servlet被调用时。 (4)销毁方法--->servlet被关闭。 package com.aaa.servlet; import javax.servlet.

qq_44189274的博客 592

17track单号查询逆向分析

这就说明该网站很有可能存在其它检测点,而检测本地替换最大可能的就是检测了代码格式化或者代码长度。也一样,要么导致网站卡死,要么会导致网页加载异常,这里可能就难到不少人了,让我们一步一步解决。而这个站主要是检测了代码格式化,无限循环检测造成了网站卡死,经多次测试发现检测点共三处。方法中代码很长,但是经调试后发现,它其实只返回一个固定的值,这里直接写死即可。同样的,虽然看起来很长,但是跟过之后就会发现流程很简单,这里主要就是对。追加了一些值,是一条很长的语句,整理代码。,核心流程也很简单,稍微跟一下就出来了,

pyzzd的博客 1621

JavaWeb之过滤器(filter)

过滤器(filter)简介 过滤器是Javaweb的组件之一,用来过滤请求和处理响应 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理 通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 使用场景: 1.设置请求/响应字符编码 2.校验登录权限 3.敏感词汇的过滤 大致流程图如下: filter的使用(xml配置) 1,声明一个过滤器类要实现Filter接口(CusFilter类) public class CusFilter

Mu木 1607

如何在 Ubuntu 22.04 上安装和配置 VNC 服务器?

VNC(Virtual Network Computing)是一种图形桌面共享系统,通过网络允许用户控制另一台计算机的桌面环境。无论你是系统管理员还是开发人员,VNC 都可以在远程访问桌面环境时提供极大的便利。在安装和配置 VNC 服务器之前,我们需要确保系统是最新的,并安装一些基本工具。这些命令将更新你的软件包列表并升级所有已安装的软件包,以确保你拥有最新的安全修复和功能更新。

网络技术联盟站 4002

自适应滤波-----LMS(Least Mean Square)算法

自适应滤波的意义所在 自适应滤波器解决非平稳的过程,因为实际信号的统计特性可能是非平稳的或者是未知的。 自适应滤波器的特点: 1.没有关于待提取信息的先验统计知识 2.直接利用观测数据依据某种判据在观测过程中不断递归更新 3.最优化 自适应滤波分类: 处理器的结构划分:横向结构、格型结构 重复一次计算自适应需要的数据划分:成批处理法、递归处理法 按调节算法...

heda3的博客 10万+

JSP的Servlet编程

文章目录一. 认识Servlet二. Servlet的概述1. Servlet的本质(1). doGet():(2). doPost()(3). 使用Servlet的条件2. Servlet2.5版本配置:web.xml(1). 项目根目录(2). Servlet流程举例理解 一. 认识Servlet 二. Servlet的概述 JSP ——>Java(Servlet)——>JSP 1. Servlet的本质 Servlet是一个Java,但不是所有的java都是servlet Java类必须

巧克力布丁的博客 4472

若依框架二次开发——若依 Vue3 版本前端样式优化指南

若依框架二次开发——若依 Vue3 版本前端样式优化指南

bjzhang75的博客 1690

Servlet+JSP一文完结

前言: Servlet为创建基于web的应用程序提供了组件、独立于开发的平台,可以不受CGI程序(公共网关接口(Common Gateway Interface,CGI))的性能限制。Servlet有权限访问所有的javaAPI,包括访问企业级数据库的JDBC API。 一、Servlet简介 Java Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。 使用Ser...

充满好奇的threecat 4891

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

servlet与jsp的联系与区别

jsp与servlet的联系与区别(34赞)  http://blog.youkuaiyun.com/kaixinbingju/article/details/9409927JSP是Servlet技术的扩展,Java程序段和HTML可以组合成一个扩展名为.jsp的文件, 本质上是Servlet的简易方式,更强调应用的外表表达。 JSP编译后是"servlet类"。 Servlet和JSP最主要的不同点在于,S...

Simon Liu的博客 7698

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Servlet和jsp

Servlet和jsp Servlet 定义: Servlet是一个java应用程序,运行在服务器端,用来处理客户请求并作出响应的程序. 当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类,此时它贮存于内存中.当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例,Servlet多线程机制背后有一个线程池在支持,线程池在初始化初期就创建了一定数量的线程对象. 访问过程: 1)客户端第一次发出请求

m0_47073109的博客 1407

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JSP——过滤器篇

一、过滤器的基本概念 1、什么是过滤器 过滤器是一个服务器端的组件,它可以截取客户端的请求和服务端的响应信息,并对这些信息进行过滤。 2、过滤器的工作原理 过滤器的工作原理可以依据下图进行分析(图片转自慕课网)。 用户在请求Web资源时,用户的请求会先被过滤器拦截,过滤器对用户的请求进行过滤,过滤之后过滤器再将用户的请求发送到Web资源,Web资源在将响应返回给用户时,响应也会先

记录只为更好地前行 1万+

Servlet 常用的方法 生命周期 过滤器Servlet 监听器Servlet

Servlet: 两个常用的方法: 创建一个Servlet程序: Servlet的生命周期: 过滤器Servlet: 监听器Servlet:

嘭嘭啊啊啊的博客 425

servlet、过滤器、生命周期

servlet是在jsp技术出来之前用来动态生成web页面的,它与jsp的区别在于 jsp是html嵌套java代码,而servlet是java代码嵌套html。所以一般重定向到验证登陆等,都推荐用servlet。不建议用jsp。servlet是server以及applet两个单词的合成,所以它是一种服务器端的java应用程序。但并不是所有服务器端的java的应用程序都是servlet。只有当服务...

chijiajing的博客 2087

【JavaWeb】Servlet与过滤器

javaweb中的Servlet与过滤器

低调做人,低调编码,神码都是浮云 1474

3.javaweb-Servlet与过滤器

javax.servlet.Servlet接口所有Java Servlet的基础接口类,规定了必须由Servlet具体类实现的方法集javax.servlet.GenericServlet类是Servlet的通用版本,是一种与协议无关的Servletjavax.servlet.http.HttpServlet类在GenericServlet基础上扩展的基于Http协议的Servlet。

QAZ412803的博客 1009

【Java后端】Servlet+JSP

Servlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器

menghen113的博客 443

Javaweb 8Servlet与过滤器

Servlet与过滤器,Servlet概述,Servlet API,第一个Servlet,Servlet生命周期,部署运行Servlet,Servlet配置,过滤器的生命周期,过滤器链,过滤器的应用场合

TuSi_Cat的博客 1237

servlet+jsp面试题

1、说一说Servlet生命周期 Servlet的生命周期分为三部分 初始化:Web容器加载servlet,调用init()方法进行初始化。 处理请求:当请求到达时,运行其service()方法。Service()会根据表单的请求类型调用相对doGet()方法或者是doPost()方法。 销毁:当服务器关闭时,调用distroy()方法销毁servlet。 2、get提交和post...

Yang_Hui_Liang的博客 3042

web开发,过滤器,前后端交互

所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互.Web服务器是指驻留于因特网上某种类型计算机的程序。可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;它是一个容器,是一个连接用户与程序之间的中间件。WEB服务器有很多,流行的WEB服务器有等。在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器: Apache 的Tomcat,该服务器支持全部JSP以及Servlet规范。

Wooo_e的博客 1145

JSP过滤器

撰写时间:2019年09月18日 Servlet和JSP中的过滤器都是Java类,它们存在的目的如下: 在请求访问后端资源时拦截它 管理从服务器返回给客户端的响应 下面列出了多种常用的过滤器类型: 认证过滤器 数据压缩过滤器 加密过滤器 触发资源访问事件的过滤器 图像转换过滤器 登录和验证过滤器 MIME类型链过滤器 令牌过滤器 转换XML内容的XSL/T过滤器 过滤器将会被...

Yangll29的博客 396
上一篇: 【web后端(十二)】jsp、servlet_servlet初始化参数、servelt上下文参数
下一篇: 【web后端(十四)】jsp、servlet_监听器
寻爻青年
博客等级 码龄8年 27粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻爻青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值