JSP培训(9)——使用MVC模式完成删除和修改功能

学生管理系统MVC模式的增删改查基本实现 文章目录本系统采用的技术有思路基本流程前端主界面main.jsptop.jspleft.jspright.jsp操作界面add.jspedit.jsplist.jsp后端dao(数据库操作)StudentDaolimpl.javaentity(实体)service(服务)StudentServiceImpl.javaservlet(服务器连接)IndexServlet.javaStudentSer... 阅读详情
 
目标:
l         进一步理解MVC模式;
l         掌握删除功能的基本实现过程;
l         掌握修改功能的基本实现过程。
主要内容:
l         使用MVC完成删除功能;
l         使用MVC模式完成信息更新功能。
1、 如何使用MVC模式完成删除功能
根据MVC模式的特点,分别考虑MVC的3个部分。
n         首先考虑V部分:
u       输入:通常删除功能是在查询的基础上完成的,所以在用户信息列表界面上可以添加删除的超链。
u       输出:提示用户删除是否成功,可以采用单独的界面,也可以在其他页面中显示。我们采用第二种方式,在用户列表界面中显示提示信息。
n         其次考虑M部分:需要在User.java中添加删除用户的方法即可。
n         最后考虑C部分:获取用户要删除的用户名,然后调用M部分完成删除,最后转向用户信息列表界面。
下面分别实现。
2、 在userlist.jsp文件中添加删除超链和提示信息
1)添加删除超链(红色部份):
           <c:forEach var="user" items="${users}">
                     <tr>
                            <td>
                                   ${user.username}
                            </td>
                            <td>
                                   ${user.userpass}
                            </td>
                            <td>
                                   <a href="deleteUser?username=${user.username}"> 删除 </a>
                            </td>
                     </tr>
              </c:forEach>
    注意:删除的时候需要知道要删除的用户的名字(这里名字作为主键),所以通过参数传递名字。
2)添加提示信息:
<font color="red"> ${deleteinfo} </font>
3)修改后的代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<font color="red"> ${addinfo} </font>
<font color="red"> ${deleteinfo} </font>
<br>
<c:if test="${pageNo!=1}">
       <a href="getAllUser?pageNo=1">第一页</a>
       <a href="getAllUser?pageNo=${pageNo-1}">上一页</a>
</c:if>
<c:if test="${pageNo!=pageCounter}">
       <a href="getAllUser?pageNo=${pageNo+1}">下一页</a>
       <a href="getAllUser?pageNo=${pageCounter}">最后一页</a>
</c:if>
<br>
<table width="200" border="1" height="56">
       <tbody>
              <tr>
                     <td>
                            用户名
                     </td>
                     <td>
                            口令
                     </td>
                     <td>
                           
                     </td>
              </tr>
              <c:forEach var="user" items="${users}">
                     <tr>
                            <td>
                                   ${user.username}
                            </td>
                            <td>
                                   ${user.userpass}
                            </td>
                            <td>
                                   <a href="deleteUser?username=${user.username}"> 删除 </a>
                            </td>
                     </tr>
              </c:forEach>
       </tbody>
</table>
3、 编写M部分:在User.java中添加方法
在User.java中添加deleteUser方法,参考代码如下:
public boolean deleteUser(String username) {
        Connection con = null;
        Statement stmt = null;
        boolean b; // 表示删除成功与否
 
        try {
               // 指出连接数据库所需要的驱动程序
               Class.forName("oracle.jdbc.driver.OracleDriver");
 
               // 建立与数据库之间的连接
               con = DriverManager.getConnection(
                             "jdbc:oracle:thin:@myserver:1521:mydb", "scott",
                             "tiger");
 
               // 编写查询数据库信息的SQL语句
               String sql = "delete from usertable where username='" + username + "'";
 
               // 创建语句对象,用于执行SQL语句
               stmt = con.createStatement();
 
               // 执行没有结果集返回的语句,返回的是影响数据库表中记录的个数
               int n = stmt.executeUpdate(sql);
 
               if (n > 0)
                      b = true;
               else
                      b = false;
        } catch (Exception e) {
               b = false;
        } finally {
              // 关闭相关对象
               if (stmt != null)
                      try {
                             stmt.close();
                      } catch (Exception ee) {
                      }
               if (con != null)
                      try {
                             con.close();
                      } catch (Exception ee) {
                      }
        }
        return b;
}
注意:红色部分需要修改成您自己的服务器和数据库。
4、 编写C部分:添加DeleteUser控制器
DeleteUser.java的代码如下:
package servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javabean.User;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class DeleteUser extends HttpServlet {
 
public void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
        //获取信息
        String username = request.getParameter("username");
       
        // 调用JavaBean
        User user = new User();
        boolean b = user.deleteUser(username);
       
        // 传递删除成功或失败的信息
        String info;
        if(b)
               info = "删除成功!";
        else
               info = "删除失败!";
    request.setAttribute("deleteinfo",info);
       
        // 选择界面对用户响应
        RequestDispatcher rd = request.getRequestDispatcher("getAllUser");
        rd.forward(request,response);
 
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
         doGet(request,response);
}
}
5、 如何使用MVC模式实现修改功能
修改功能本身包括两个过程:用户选择要修改的用户,然后把该用户的信息显示在修改界面上;用户进行修改,修改之后提交,服务器完成修改功能。
对于第一个功能,采用MVC模式:
l         V部分:
n         输入:在用户列表界面上添加“修改”超链。
n         输出:用户信息修改界面,把查询到的信息显示在修改界面上。
l         M部分:编写按照用户名查询用户信息的方法。
l         C部分:获取要删除的用户的名字,调用M部分的查询方法,得到用户信息,传递到修改界面,使用修改界面对用户响应。
对于第二部分,采用MVC模式:
l         V部分
n         输入:上面编写的修改界面。
n         输出:用户信息列表界面
l         M部分:编写用户信息修改的方法。
l         C部分:获取用户输入的信息,调用M部分完成修改,转向列表界面对用户进行响应。
下面分别介绍实现方法。
6、 修改用户信息列表界面
修改后的代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<font color="red"> ${addinfo} </font>
<font color="red"> ${deleteinfo} </font>
<font color="red"> ${updateinfo} </font>
<br>
<c:if test="${pageNo!=1}">
<a href="getAllUser?pageNo=1">第一页</a>
<a href="getAllUser?pageNo=${pageNo-1}">上一页</a>
</c:if>
<c:if test="${pageNo!=pageCounter}">
<a href="getAllUser?pageNo=${pageNo+1}">下一页</a>
<a href="getAllUser?pageNo=${pageCounter}">最后一页</a>
</c:if>
<br>
<table width="200" border="1" height="56">
<tbody>
        <tr>
               <td>
                      用户名
               </td>
               <td>
                      口令
               </td>
               <td>
                     
               </td>
        </tr>
        <c:forEach var="user" items="${users}">
               <tr>
                      <td>
                             ${user.username}
                      </td>
                      <td>
                             ${user.userpass}
                      </td>
                      <td>
                             <a href="findUser?username=${user.username}"> 修改 </a>
                      </td>
                      <td>
                             <a href="deleteUser?username=${user.username}">删除</a>
                      </td>
               </tr>
        </c:forEach>
</tbody>
</table>
7、 编写信息修改界面
参考代码如下:
<%@ page contentType="text/html;charset=gb2312"%> 修改用户<br>
<form name="form1" method="post" action="updateUser">
   用户名:${user.username}
<input type="hidden" name="username" value="${user.username}"><br>
   口令:<input type="text" name="userpass" value="${user.userpass}"><br>
       <input type="submit" value="修改"><input type="reset" value="重置">
</form>
8、 在User.java中添加查询信息的方法
    public User findUserByName(String username) {
              Connection con = null;
              Statement stmt = null;
              ResultSet rs = null;
             
              try {
                     // 指出连接数据库所需要的驱动程序
                     Class.forName("oracle.jdbc.driver.OracleDriver");
 
                     // 建立与数据库之间的连接
                     con = DriverManager.getConnection(
                                   "jdbc:oracle:thin:@myserver:1521:mydb", "scott",
                                   "tiger");
 
                     // 编写查询数据库信息的SQL语句
                     String sql = "select * from usertable where username='" + username + "'";
 
                     // 创建语句对象,用于执行SQL语句
                     stmt = con.createStatement();
 
                     // 执行没有结果集返回的语句,返回的是影响数据库表中记录的个数
                     rs = stmt.executeQuery(sql);
                    
                     if(rs.next()){
                            User user = new User();
                            String userpass = rs.getString(2);
                            user.setUsername(username);
                            user.setUserpass(userpass);
                            return user;
                     }                  
              } catch (Exception e) {
                     return null;
              } finally {
                     // 关闭相关对象
                     try{
                            rs.close();
                     }catch(Exception e){}
                     if (stmt != null)
                            try {
                                   stmt.close();
                            } catch (Exception ee) {
                            }
                     if (con != null)
                            try {
                                   con.close();
                            } catch (Exception ee) {
                            }
              }
              return null;
       }
注意:红色部分需要修改成您自己的服务器和数据库。
9、 在User.java中添加“修改信息”的方法
public boolean update() {
        Connection con = null;
        Statement stmt = null;
        boolean b;
       
        try {
               // 指出连接数据库所需要的驱动程序
               Class.forName("oracle.jdbc.driver.OracleDriver");
 
               // 建立与数据库之间的连接
               con = DriverManager.getConnection(
                             "jdbc:oracle:thin:@myserver:1521:mydb", "scott",
                             "tiger");
 
               // 编写更新的sQL语句
               String sql = "update usertable set userpass = '"+userpass+"' where username='" + username + "'";
 
               // 创建语句对象,用于执行SQL语句
               stmt = con.createStatement();
 
               // 执行没有结果集返回的语句,返回的是影响数据库表中记录的个数
               int n = stmt.executeUpdate(sql);
              
               if(n>0)
                      b=true;
               else
                      b=false;
        } catch (Exception e) {
               b = false;
        } finally {
               if (stmt != null)
                      try {
                             stmt.close();
                      } catch (Exception ee) {
                      }
               if (con != null)
                      try {
                             con.close();
                      } catch (Exception ee) {
                      }
        }
        return b;
}
注意:红色部分需要修改成您自己的服务器和数据库。
10、              编写查询信息的Servlet
参考代码如下:
package servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javabean.User;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class FindUser extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
        doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
       // 获取信息
        String username = request.getParameter("username");
       
        //调用Javabean
        User user = new User();
        user = user.findUserByName(username);
       
        // 传递值
        request.setAttribute("user", user);
 
        // 选择界面对用户进行响应
        RequestDispatcher rd = request.getRequestDispatcher("updateuser.jsp");
        rd.forward(request, response);                         
}
}
11、              编写修改信息的Servlet
参考代码如下:
package servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javabean.User;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class UpdateUser extends HttpServlet {
 
public void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
        doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
    // 获取信息
        String username = request.getParameter("username");
        String userpass = request.getParameter("userpass");
       
        //调用Javabean
        User user = new User();
        user.setUsername(username);
        user.setUserpass(userpass);
        boolean b = user.update();
       
        // 传递值
        String info ;
        if(b)
               info="修改成功!";
        else
               info="修改失败!";
 
        // 选择界面对用户进行响应
        RequestDispatcher rd = request.getRequestDispatcher("getAllUser");
        rd.forward(request, response);    
 
}
}

 

参考教材:《Java Web程序设计基础教程》

学生信息管理系统javaweb(MVC模式) MVC模式学生信息管理系统Javaweb 阅读详情

相关推荐

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5295

基于MVC模式的增删改查

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码

weixin_47053123的博客 3604

TSP、MTSP问题遗传算法详细解读及python实现

写在前面 遗传算法是一种求解NPC问题的启发式算法,属于仿生进化算法族的一员。仿生进化算法是受生物行为启发而发明的智能优化算法,往往是人们发现某种生物的个体虽然行为较为简单,但生物集群通过某种原理却能表现出智能行为。于是不同的人研究不同的生物行为原理,受到启发而发明出新的仿生进化算法。比如免疫优化算法,蚁群算法,模拟退火算法等,这些算法以后也会简单介绍。 本文的主题是遗传算法,该算法也是受到生物行为启发。物竞天择,适者生存,优胜劣汰,是该优化算法的核心思想。笔者在业务中需要用到遗传算法求解TSP问题,但是网

weixin_47675950的博客 9306

Javaee课程lab4,学生信息管理系统(MVC(JSP+JavaBeans+Servlet)+ JDBC)

javaee_lab4,铁大学生信息管理系统(用MVC模式和JDBC技术开发MIS系统)

人工智能方向,计算机视觉(https://github.com/chenshunpeng) 6385

VASP+机器学习快速收敛AIMD

本文介绍了如何利用VASP结合机器学习技术快速收敛AIMD(从头算分子动力学)模拟。首先,通过训练机器学习力场,生成关键文件如ML_ABN(包含结构数据集)、ML_FFN(存储回归结果)和ML_LOGFILE(记录训练日志)。接着,配置INCAR文件以设置计算参数,包括并行化、分子动力学和机器学习相关参数。KPOINTS文件用于定义K点网格。计算完成后,备份CONTCAR文件作为后续模拟的初始结构。最后,利用训练好的力场文件进行纯机器学习力场分子动力学模拟,并提交任务执行。

qq_44812865的博客 1406

AISHELL-1中文语音数据集实战:从下载到训练你的第一个ASR模型(附完整代码)

本文详细介绍了如何使用AISHELL-1中文语音数据集从数据准备到训练端到端语音识别模型的全流程。AISHELL-1作为国内首个开源的普通话语音数据集,包含178小时高质量录音,适合中文自动语音识别(ASR)系统开发。文章涵盖数据下载、预处理、Conformer-CTC模型训练、评估及优化策略,并附完整代码实现。

garlic的博客 1121

Mvc删除操作

在mvc中有增删查改四个基本操作,而在开发mvc项目中,删除操作是最简单的最容易掌握的。 首先视图,我们先给页面的删除按钮一个点击事件,后弹出删除提示,确定删除则传到控制器判断是否删除成功。 如图: 然后是控制器的,删除学生表里的学生数据,用户表里的信息以及删除角色明细表中的数据,最后判断是否删除成功。 如图: ...

weixin_55017780的博客 1895

单片机通信总述——理论部分(CAN、串口、SPI、I2C等)

并行通信:传输原理:数据各个位同时传输;优点:速度快; 缺点:占用引脚资源多。是指使用 8、16、32 及 64 根或更多的数据线(有多少信号为就需要多少信号位)进行传输的通讯方式,可以同一时刻传输多个数据位的数据。串行通信: 传输原理:数据按位顺序传输;优点:占用引脚资源少; 缺点:速度相对较慢。是指设备之间通过一根数据信号线,地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式,同一时刻只能传输一位(bit)数据。 单工: 数据传输只支持数据在一个方向上传输。信息只能单方向传输的工作方式,一

qq_42475191的博客 1万+

jsp服装销售管理系统5dy9y

jsp服装销售管理系统5dy9y本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能开题报告内容。

ck3024的博客 1091

zabbix监控深信服下一代防火墙配置

深信服下一代防火墙v8.0管理界面,zabbix,SNMP

weixin_43996471的博客 6873

《QT+PCL 第一章》:点云读取显示

点云读取显示一、核心代码二、QT设置三、效果展示 一、核心代码 二、QT设置 三、效果展示

阁楼 1万+

java毕业设计-基于springboot+vue的课外艺术培训机构学习管理系统设计和实现,基于springboot的课外艺术培训机构管理平台设计和实现(源码+LW+部署文档+远程调试+代码讲解等)

基于springboot+vue的课外艺术培训机构学习管理系统设计和实现,基于springboot的课外艺术培训机构管理平台设计和实现

我的个人博客:https://bishe666.top 1478

SAP ABAP CO核心扩展-ZCKMLQS 多物料工厂的评估数量结构报表(CKMLQS)

CKMLQS 只能查看单一物料工厂的评估数量结构,SAP 没有提供多物料工厂的评估数量结构报表。这篇文章将实现 CO核心扩展-ZCKMLQS 多物料工厂的评估数量结构报表。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1091

培训目录

李绪成的一亩三分地 1595

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数学建模模型总结

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

java毕业设计-基于springboot+vue的起点树在线艺术培训机构系统设计和实现,基于springboot的在线艺术培训机构学习平台设计和实现(源码+LW+部署文档+远程调试+代码讲解等)

基于springboot+vue的起点树在线艺术培训机构系统设计和实现,基于springboot的在线艺术培训机构学习平台设计和实现

项目帮 1305

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jsp动漫论坛系统n69l9

jsp动漫论坛系统n69l9本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容。

ck3027的博客 1354

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

视频教程-JSP实战开发-Java

JSP实战开发 JAVA培训讲师,JAVA EE高端培训讲师,北京魔乐科技(...

weixin_29378479的博客 335

java毕业设计-基于springboot+vue的起点树在线艺术培训机构系统设计和实现,基于springboot的在线艺术培训机构学习平台设计和实现推荐(源码+LW+部署文档+远程调试+代码讲解等)

java毕业设计-基于springboot+vue的起点树在线艺术培训机构系统设计和实现,基于springboot的在线艺术培训机构学习平台设计和实现推荐(源码+LW+部署文档+远程调试+代码讲解等)

我的个人博客:https://bishe666.top 1173

jsp人力资源管理系统Myeclipse开发mysql数据库servlet开发java编程计算机网页项目

JSP 人力资源管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用serlvet+dao+bean mvc 模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用java语言开发。

qq_251836457的博客 472

linux javaweb开发,LINUX下基于MVC的JAVAWeb开发

LINUX下基于MVC的JAVAWeb开发编辑锁定讨论上传视频《LINUX下基于MVC的JAVAWeb开发》是2009年机械工业出版社出版的图书,作者是姜新华、李燕华。书名LINUX下基于MVC的JAVAWeb开发作者姜新华李燕华ISBN9787111264132定价58.00元出版社出版时间2009开本16LINUX下基于MVC的JAVAWeb开发内容简介编辑《L...

weixin_31527905的博客 278

计算机毕设Java基于MVC框架的新闻发布系统 Java Web技术实现的MVC架构新闻管理系统 基于Java MVC框架的新闻平台设计与开发

摘要:本文介绍了一个基于Java MVC框架的新闻发布系统毕业设计项目。系统采用B/S架构,使用MySQL数据库,具备新闻浏览、分类管理、评论互动、会员专区和后台管理等功能模块。通过可行性分析验证了技术、经济、运行环境和法律方面的可行性,系统采用分层设计模式,包含管理员、编辑部和用户三种角色。项目包含完整的源码程序、数据库设计和论文文档,可作为计算机专业毕业设计参考。系统实现了新闻发布、分类展示、用户评论等核心功能,具有良好的扩展性和维护性,满足现代新闻传播需求。

毕设源码_刘学姐 817

jsp高达模型工作室管理系统1492e

本系统采用JSP作为前端技术,结合SSM(Spring、Spring MVC、MyBatis)框架构建后端,使用MySQL作为数据库,实现前后端分离的开发模式。JSP高达模型工作室管理系统1492e通过信息化手段,实现了对员工的安全管理、经验分享与公告信息发布等功能,有助于提升工作室的管理效率与安全性,为高达模型制作爱好者提供一个良好的学习与工作环境。在JSP文件中,可以使用HTML标签来定义页面的结构,并使用JSP标签(如<% %>、<%= %>、<%!定义网页的结构和内容,如段落、链接、图片等。

ck3026的博客 1321

java毕业设计-基于springboot+vue的起点树在线艺术培训机构系统设计和实现,基于springboot的在线艺术培训辅导机构学习平台设计和实现(源码+LW+部署文档+远程调试+代码讲解等)

java毕业设计-基于springboot+vue的起点树在线艺术培训机构系统设计和实现,基于springboot的在线艺术培训辅导机构学习平台设计和实现(源码+LW+部署文档+远程调试+代码讲解等)

项目帮 997
上一篇: Microsoft SQL Server认证方式的修改
下一篇: JSP培训(10)——使用JavaBean封装对数据库的访问、连接池的配置和使用
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值