Servlet重定向与转发的理解及include与forward方法的理解

一、重定向

1、什么是重定向?

重定向(Redirect)就是一个ServletA处理不了客户端的请求但知道ServletB,响应给客户端,让客户端重新发送请求到能处理这个服务的ServletB,由客户端进行页面跳转。

图示:

2、代码示例:

response.sendRedirect("能处理这服务的Servlet从浏览器上搜索的URL");

3、重定向特点:

(1)在用户浏览器地址栏显示新的地址

(2)向服务器请求两次

(3)请求域中的数据会丢失,因为是2次请求

二、转发

1、什么是转发?

        服务器内的一个ServletA处理完它能处理的业务后将请求在服务器内发送给ServletB继续处理业务,在客户端的视角来看,他的请求就是一个Servlet完成的。

图示:

 2、代码演示

//使用RequestDispatcher对象来进行转发
RequestDispatcher rd = request.getRequestDispatcher("服务器内ServletB的地址");
rd.forward(request, response);
//或者rd.include(request, response);

3、转发特点

(1)客户端浏览器地址栏路径不发生变化。

(2)只能转发到当前服务器内部资源中。

(3)只请求一次

(4)请求域中数据不会丢失。

三、转发中的include与forward方法

1、forward方法

图示:

 2、include方法

图示:

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
----------定向---------------------------------------------------------------------------------- //将工程定向到我们的腾讯网页 response.sendRedirect("http://www.qq.com"); //定向的好处:不但可以跳转到本工程的资源 也可以跳转到其它资源 response.sendRedirect("userInfo"); //定向的跳转方式为get(如果下一个servlet中没有get方法 将出现异常) 注意事项:a标签和定向差不多 通过a标签进行跳转时也是调用doGet()方法 //从地址栏上方进入网页也是调用的servlet的get方法 //在使用doGet()方法时还要做验证 看用户是否已经登录 -----转发--------------------------------------------------------------------------- request.setAttribute("un",userName) String userName=(String)response.getAttribute("un"); //但是由于请求资源传递不是连续的 它一次请求后寿命结束 为了延续它的寿命 在页面跳转时 我们不用定向 我们使用转发 如下: //获得资源定位 然后将请求转发出去----首先将资源定位到list 然后将当前的request和response转发出去--转发 request.getRequestDispatcher("list").forward(request,response); //参数传递 J2EE1.4以下就是将引用直接拷贝过去 J2EE拷贝的是副本 //如果在doPost方法中写转发就会进入对方的doPost() 方法 包含转发方法是什么方法就进入对方的什么方法 //转发的缺点:只能在本工程内转发 //转发定向是都是一瞬间就跳转到了要转发的页面 中间的内容基本没有时间显示 解决这个问题的方法如下: 包含转发 request.getRequestDispatcher("login.html").include(request.response); //就是将该页面所包含的所有的网页代码包含到我所要跳转的目的地去
JSP初学者用书 很不错的一本书 第1章 servlet和jsp技术概述 1.1 servlet的功用 1.2 要动态构建网页的原因 1.3 servlet代码初探 1.4 servlet相对于“传统”cgi的优点 1.5 jsp的作用 第1部分 servlet技术 第2章 服务器的安装和配置 2.1 下载和安装java软件开发工具包 2.2 为桌面计算机下载服务器 2.3 服务器的配置 2.4 配置apachetomcat 2.5 配置macromediajrun 2.6 配置cauchoresin 2.7 建立开发环境 2.8 测试系统的设置 2.9 实现简化的部署方法 2.10 默认web应用的部署目录:汇总 2.11 web应用:预览 第3章 servlet基础 .3.1 servlet的基本结构 3.2 生成纯文本的servlet 3.3 生成html的servlet 3.4 servlet的打包 3.5 简单的html构建工具 3.6 servlet的生命周期 3.7 singlethreadmodel接口 3.8 servlet的调试 第4章 客户请求的处理:表单数据 4.1 表单数据的作用 4.2 在servlet中读取表单数据 4.3 示例:读取3个参数 4.4 示例:读取所有参数 4.5 参数缺失或异常时默认值的应用 4.6 过滤字符串中的html特殊字符 4.7 根据请求参数自动填充java对象:表单bean 4.8 当参数缺失或异常时新显示输入表单 第5章 客户请求的处理:http请求报头 5.1 请求报头的读取 5.2 制作所有请求报头的表格 5.3 了解http1.1请求报头 5. 4 发送压缩web页面 5.5 区分不同的浏览器类型 5.6 依据客户的到达方式定制页面 5.7 标准cgi变量的访问 第6章 服务器响应的生成:http状态代码 6.1 状态代码的指定 6.2 http1.1状态代码 6.3 将用户定向到浏览器相关页面的servlet 6.4 各种搜索引擎的一个前端 第7章 服务器响应的生成:htip响应报头 7.1 在servlet中设置响应报头 7.2 理解http1.1响应报头 7.3 构建excel电子表格 7.4 servlet状态的持续以及页面的自动载 7.5 使用servlet生成jpeg图像 第8章 cookie管理 8.1 cookie的优点 8.2 cookie存在的一些问题 8.3 cookie的删除 8.4 cookie的发送和接收 8.5 使用cookie检测初访者 8.6 使用cookie属性 8.7 区分会话cookie与持续性cookie 8.8 基本的cookie实用程序 8.9 实际使用cookie实用程序 8.10 修改cookie的值:记录用户的访问计数 8.11 使用cookie记录用户的偏好 第9章 会话跟踪 9.1 会话跟踪的需求 9.2 会话跟踪基础 9.3 会话跟踪api 9.4 浏览器会话与服务器会话 9.5 对发往客户的url进行编码 9.6 显示客户访问计数的servlet 9.7 累计用户数据的列表 9.8 拥有购物车和会话跟踪功能的在线商店 第ii部分 jsp技术 第10章 jsp技术概述 10.1 对jsp的需求 10.2 jsp的好处 10.3 jsp相对于竞争技术的优势 10.4 对jsp的误解 10.5 jsp页面的安装 10.6 基本语法 第11章 用jsp脚本元素调用java代码 11.1 模板文本的创建 11.2 在jsp中调用java代码 11.3 限制jsp页面中java代码的量 11.4 jsp表达式的应用 11.5 示例:jsp表达式 11.6 servlet和jsp页面的对比 11.7 编写scriptlet 11.8 scriptlet示例 11.9 使用scriptlet将jsp页面的某些部分条件化 11.10 使用声明 11.11 声明的例子 11.12 使用预定义变量 11.13 jsp表达式、scriptlet和声明的比较 第12章 控制所生成的servlet的结构:jsppage指令 12.1 import属性 12.2 contenttype和pageencoding属性 12.3 条件性地生成excel电子表格 12.4 session属性 12.5 iselignored属性 12.6 buffer和autoflush属性 12.7 info属性 12.8 errorpage和iserrorpage属性 12.9 isthreadsafe属性 12.10 extends属性 12.11 language属性 12.12 指令的xml语法 第13章 在jsp页面中包含文件和applet 13.1 在请求期间包含页面:jsp:include动作 13.2 在页面转换期间包含文件:include指令 13.3 使用jsp:forward转发请求 13.4 包含使用java插件的applet 第14章 javabean组件在jsp文档中的应用 14.1 使用bean的原因 14.2 bean是什么 14.3 bean的应用:基本任务 14.4 示例:stringbean 14.5 设置bean的属性:高级技术 14.6 共享bean 14.7 共享bean的4种方式:示例 第15章 servlet和jsp的集成:模型—视图—控制器构架 15.1 mvc的需求 15.2 用request dispatcher实现mvc 15.3 mvc代码汇总 15.4 目的页面中相对url的解释 15.5 mvc的应用:银行账户余额 15.6 3种数据共享方式的对比 15.7 从jsp页面转发请求 15.8 包含页面 第16章 简化对java代码的访问:jsp 2.0表达式语言 16.1 应用el的驱动力 16.2 表达式语言的调用 16.3 阻止表达式语言的求值 16.4 阻止标准脚本元素的使用 16.5 访问作用域变量 16.6 访问bean的属性 16.7 访问集合 16.8 引用隐式对象 16.9 表达式语言中运算符的应用 16.10 表达式的条件求值 16.11 表达式语言其他功能概览 第ⅲ部分 支持技术 第17章 数据库访问:jdbc 17.1 jdbc应用概述 17.2 基本jdbc示例 17.3 用jdbc实用工具简化数据库访问 17.4 使用预备语句 17.5 创建可调用语句 17.6 使用数据库事务 17.7 使用orm框架将数据映射到对象 第18章 配置msaccess,mysql和oracle9i 18.1 配置microsoftaccess与jdbc的使用 18.2 mysql的安装和配置 18.3 oracle9i数据库的安装和配置 18.4 通过jdbc连接来测试数据库 18.5 建立music表 第19章 html表单的创建和处理 19.1 html表单如何传输数据 19.2 form元素 19.3 文本控件 19.4 按钮 19.5 复选框和单选按钮 19.6 组合框和列表框 19.7 文件上载控件 19.8 服务器端图像映射 19.9 隐藏域 19.10 控件组 19.11 制表次序 19.12 用于调试的web服务器 附录 服务器的组织与结构
int和Integer有什么区别? 答:int是java的原始数据类型,Integer是java为int提供的封装类,java为每个原始数据类型都提供了封装类。 String和StringBuffer的区别? 答:String是不可变的对象,每次对String类型进行改变都相当于产生了一个新的对象,StringBuffer是可变的字符序列,所以如果要经常改变某个字符串的话建议使用StringBuffer。 list、set、map问题? 答:set 不允许复,无序 list 允许复,有序 map 成对的数据结构,键值必须具有唯一性 Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许其service方法,一个实例可以服务于多个请求,并且其实例一般不会被销毁,而CGI对每个请求都产生新的进程,服务完后就销毁,所以效率上低于Servlet。 面向对象的特征? 答:1:封装:通过定义类并且给类的属性和方法加上访问控制 2:继承:子类继承父类,子类可以拥有父类中已定义的方法,并且子类可以修改父类中的方法使其更适合特殊需求。 3:多台:不同对象对统一消息作出不同响应称之为多态 4:抽象:忽略与当前主题无关的那些方面,将注意力集中在与当前目标有关的方面 运行时异常和一般异常有何异同? 答:运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并抛出。 多线程几种实现方法,同步? 答:多线程有两种实现方法,一种是继承Thread类或者实现Runnable接口。同步就是在方法返回类型后面加上synchronized。 c#中的委托,事件是不是委托? 答:委托就是将方法作为一个参数带入另一个方法叫做委托,事件是一种特殊的委托。 应用程序域? 答:应用程序域可以理解为一种轻量级的进程,起到安全的作用,占用资源小。 Class.forName作用? 答:调用该访问返回一个以字符串指定类名的类对象。 JDO? 答:JDO是java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。 CORBA? 答:CORBA标准是公共对象请求代理结构,用途为:用不同的程序设计语言书写,在不同的进程中运行,为不同的操作系统开发。 xml解析技术? 答:常用的DOM、SAX等 DOM:处理大型文件时性能下降的非常厉害,适合对xml的随机访问 SAX:事件驱动型的xml解析方法,适合对xml的顺序访问 jsp常用动作? 答:jsp:include 引入一个文件 jsp:useBean 实例化JavaBean jsp:setProperty 设置JavaBean属性 jsp:getProperty 输出JavaBean属性 jsp:forward 转发 CTS、CLS、CLR分别作何解释? 答:CTS 通用类型系统、CLS 通用语言规范、CLR 公共语言运行时。 Struts1和Struts2原理和区别? 答:Struts1和Struts2是两个完全不同的框架,Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。 Hibernate工作原理,Hibernate数据持久化? 答:Hibernate工作原理: 1:读取并解析映射信息,创建SessionFactory 2:打开Session 3:创建事物 4:持久化操作 5:提交事务 6:关闭Session 7:关闭SessionFactory Hibernate持久化:Hibernate根据定义的映射规则将对象持久化保存到数据库,这就实现了对象的持久化。 Spring由那几个模块组成? 答:Spring主要由7个模块组成: 1:Spring核心容器:提供了Spring框架的基本功能 2:Spring AOP:通过配置管理特性 3:Spring ORM:Spring框架集成了若干ORM框架 4:Spring DAO:打开关闭数据库连接 5:Spring WEB:为基于WEB服务的应用程序提供上下文服务 6:Spring Context:向Spring框架提供上下文信息 7:Spring MVC:分离模型、视图、控制器、以便更容易定制 折构函数和虚函数? 答:折构函数式销毁一个类的函数,虚函数是为了C++的动态绑定而设计的。 描述你的编程风格? 答:类名首字母大写,常量一般全部大写,给自己的代码加注释。 控制流程? 答:控制流程一般使用if判断条件。有第二分支,多分支,循环结构。循环本质上也是通过判断来实现的。 多形与继承? 答:多形:一个类中多个同名方法。继承:子类继承父类。 jsp内置对象? 答:request 用户端请求 response 回应 pageContext 网页属性 session 会话 out 输出 page 当前网页 exception 错误网页 application servlet正在执行的内容 config servlet构架部件 Struts模型驱动? 答:封装请求参数。 简述JDBC? 答:JDBC数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问。 什么情况下不建议使用Hibernate? 答:当数据量大,并且表关系复杂的时候不建议使用。 sleep()和wait()有什么区别? 答:sleep()是线程类的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但监控状态依然保持,到时候会自动恢复。 wait()是Object类的方法,对此对象调用了wait方法导致本线程放弃对象锁,进入等待锁定池,只有针对此对象发出notify方法后本线程才进入对象锁定池准备获得对象锁进入运行状态。 同步和异步,在什么情况下分别使用? 答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步。在很多情况下采用异步往往更有效率。 数据库三大范式? 答:1:确保每列都是不可分割的原子值 2:确保每列都和主键相关 3:确保每列都和主键直接相关,而不是间接相关 单例模式有哪些好处? 答:单例模式是一种比较常见的设计模式,带给我们以下好处: 1:控制资源的使用 2:控制实例的产生数量 3:让多个不相关的两个线程或进程之间实现通信 为什么要用spring? 答:1、主要将各个框架有效的联系起来,缩短实际编程时间。 2、可以将各个框架进行有效的管理和控制,让数据传输安全。 spring的IOC和DI? 答:控制反转和依赖注入是spring的两大基础作用。主要是将所有组件在spring提供的外部容器中加载。提高安全性,减低耦合性,使各个框架或者类之间的依赖性降低。 什么是声明式的事务管理?为什么要用?spring如何实现声明式的事务管理? 答:声明式的事务管理主要是将在进行对数据库中数据的添加或者修改时需要执行事务管理,主要是为了避免在执行添加或修改的时候添加或修改不完全正确,导致数据丢失。spring使用AOP面向切面的思想进行事务管理的。 spring和Hibernate继承后,定义事务管理特性的时候查询为什么要定义为read-only? 答:因为添加、删除和更新都涉及到了数据库的修改,而查询并未涉及到数据库修改,所以只需要定义只读,这样可以提高效率,进行更加方便的事务管理。 请你谈谈对Hibernate OR映射的理解? 答:将数据库中的每一张表都映射成一个实体。 配置了lazy="true"一定会懒加载吗? 答:不一定,如果在配置中你也使用了fetch属性的话此时lazy就会失效。 Hibernate数据库标识与主键之间的认识? 答:标识是为了方便和简介映射文件,主键是为了让数据不会复。 为什么每次请求都要创建一个Action对象? 答:Struts2每次请求的时候都会创建一个action实例,这样会保证线程的安全。Struts1只是在第一次请求的时候创建一个action实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性较差。 Struts2是如何实现MVC模式的? 答:在Struts2里面是将每次页面的请求进行处理,然后将请求需要输出的数据转发到需要做数据显示的页面。Struts2只是起到一个数据接收和转接的功能,就是Controller控制器,而传来数据的页面叫view显示层,Struts2将数据提交给进行处理的类叫Model模型层,专门进行数据处理和数据库的连接。 heap和stack有什么区别? 答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成,栈按照后进先出的方式进行处理。堆是栈的一个组成元素。 EJB和JavaBean的区别? 答:EJB不是一般的JavaBean,EJB是企业级的JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean。书写EJB要遵循一定的规范,另外要运行EJB,你需要有相应的EJB容器,比如WebLogic、jboss等,而JavaBean不需要,只需要安装Tomcat就可以了。EJB用于服务端的应用开发,而JavaBean用于客户端应用开发。 触发器? 答:触发器是一种特殊的存储过程,主要通过事件来触发而被执行。 什么是存储过程?用什么调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计。就是说只需要创建一次,以后再程序中就可以调用多次。使用存储过程比单纯的SQL语句要快,可以用一个命令对象来调用存储过程。 索引优缺点? 答:索引可以提高对数据库中数据的检索,缺点是减慢了数据录入速度,同时也增加了数据库的尺寸大小。 什么是事务?什么是事锁? 答:事务就是被绑定在一起,作为一个逻辑单元执行的SQL语句。如果任何一个操作失败,那么整个就失败。共同失败或共同成功。锁可以保证事务的完整性和并发性。 什么是视图?游标是什么? 答:视图是一种虚拟的表,具有和物理表相同的功能。游标是对查询出来的结果集作为一个单元来有效的处理,可以对结果集的当前行做修改。 select执行顺序? 答:from where group by having select order by Collection和Collections的区别? 答:Collection是集合类的父类,继承它的主要由set和list Collections是针对集合类的帮助类,它提供了一系列针对集合的搜索,排序,线程安全化等操作。 final、finally、finalize的区别? 答:final用于声明属性方法和类,分别表示:属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句的一部分,表示总是执行。 finalize是Object的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法。 assert是什么?什么时候用到? 答:断言,可以将断言看成是异常处理的一种高级形式,可以用来判断某个特定的表达式或值是否为真。 接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类? 答:接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。 引用传递和值传递? 答:引用传递:形参改变影响实参 值传递:形参改变不影响实参 当一个线程进入一个对象的synchronized方法后,其他线程是否可进入此对象的其他方法? 答:其他方法前是否加了synchronized关键字,如果没加则能。 说出servlet生命周期? 答:servlet实例化时调用init方法,得到请求时调用service方法,service方法自动派遣doget或dopost方法,最后当实例销毁时调用destroy方法。 error和exception有什么区别? 答:error是指错误,通常程序员不能通过代码来解决。底层环境或硬件问题。 exception是指异常,可以通过代码来解决的问题。 forward和redirect的区别? 答:forward转发,浏览器跳转后不显示新的地址。 redirect是定向,浏览器跳转后显示新的地址。 对比之下forward更加高效,并且它有助于隐藏实际地址,但是有些情况则必须使用redirect,否则会报异常。 jsp中动态include和静态include的区别? 答:动态include用jsp:include实现,适用于动态页面,可以携带参数 静态includeinclude伪码实现,适用于静态页面 math.round(11.5)等于多少?math.round(-11.5)等于多少? 答:Math.round()对数字进行四舍五入 Math.round(11.5)=12 Math.round(-11.5)=11 String s=new String("xyz");创建了几个String Object? 答:创建了两个String对象,一个保存的引用地址,一个保存实际的值。 数组有没有length()这个方法?String呢? 答:数组里面没有length()方法,而是length属性。String有length()这个方法。 swtich()能否作用在byte、long、String上? 答:swtich()传递的应该是一个整数表达式,所以它的值只能是:int、short、char、byte所以long和String都不能作用在swtich()上。 jsp和servlet之间的联系? 答:jsp前段动态页面,servlet是纯java类 jsp被编译之后会转换为servlet执行 java基本数据类型有哪些?String是不是基本数据类型,他们有何区别? 答:基本数据类型8种:int、short、byte、long、float、double、char、boolean String不是基本数据类型,引用数据类型。 区别:基本数据类型比较实用“==”,引用数据类型实用equest,并且引用数据类型存放的是地址而不是具体的值。 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc? 答:String s="bbbwlirbbb"; s.replaceAll("wlirbbb","hhtccc"); 如何将数值型字符转换为数字(Integer,Double)? 答:可以用Integer.parseInt()和Double.parseDouble()方法 如何将数字转换为字符? 答:可以使用String的valueOf()方法。 如何取得1970到现在的毫秒数? 答:可以用getTime()方法。 如何格式化日期? 答:可以用SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 判断是否有子文件?判断是否有子目录?判断文件是否存在? 答:判断是否有子文件使用file.isFile() 判断是否有子目录使用file.isDirectory() 判断文件是否存在使用file.exists() 继承、载、覆盖问题? 答:继承:子类继承父类,子类可以拥有父类中已定义的方法,并且子类可以修改父类中的方法使其更适合特殊需求。 载:在一个类中方法名和返回类型相同,参数不同。 覆盖:在子类中覆盖父类的某个方法,要求方法名相同,参数类型相同。 Statement和PreparedStatement之间的区别? 答:Statement比PreparedStatement速度慢 PreparedStatement是预编译,插入时速度高于Statement Statement创建速度很慢,常用选择PreparedStatement Session机制? 答:session机制是一种服务器端机制,服务器使用一种类似于散列表的结构来保存信息。 jsp和servlet中的请求转发分别如何实现? 答:jsp可以使用jsp:forward标签转发 servlet可以使用request.getRequestDispatcher()实现转发 介绍j2ee、j2se、j2me的区别? 答:j2ee(企业版):主要用于企业web开发 j2se(标准版):主要用于web开发,但缺少企业版的一些特性 j2me(微小版):主要用于手机开发 J2ee提供的技术? 答:j2ee提供的技术有EJB、servlet、jsp等。 什么是Application Server? 答:Application Server 应用服务器 简单介绍连接池的优点和原理? 答:数据库连接和关闭是比较花费时间的一件事,而连接池可以提高我们的工作效率。 刚开始创建一定数量的池连接,当需要时从池连接中拿出一个,用完之后再把这个连接新放回连接池。 Web.xml的作用? 答:Web.xml会在程序启动时执行,如果想在程序刚启动的时候执行一些方法的话可以配置在Web.xml中。 简单介绍您所了解的MVC? 答:在项目中使用MVC模式会使项目分工更加明确,结构更加清晰 M model 模型层:JavaBean V view 视图层:jsp html C controller 控制层:servlet 简单介绍你所了解的XML? 答:XML可扩展标记语言,可以用来标记数据,定义数据结构,是一种允许用户自定义标记的语言 简单介绍您所了解的structs、spring和hibernate? 答:struts:控制层Action,页面标签和Model数据,调用业务层 Spring:Aop管理事务控制,IOC管理各个组件的耦合 Hibernate:负责数据库和对象的映射,负责Dao层 因为你去公司面试,公司让你写笔试,不可能说XX一个题目写两页纸写的太详细,所以以上答案有的可能比较简短,没有说出点,请大家补充,如果大家有什么更好的答案请拿出来一起分享

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值