全面掌握ASP技术的速查宝典

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:ASP是微软的服务器端脚本技术,用于创建动态网页和Web应用程序。本速查宝典全面覆盖ASP编程的基础知识和进阶技能,包括核心概念、对象使用、数据库操作、错误处理以及安全优化等。特别强调了ASP与***的关系和区别,为软件工程师提供了一个实用的学习和参考资源。 一个很好的asp速查宝典

1. ASP服务器端脚本概念

ASP(Active Server Pages)是微软公司推出的一种服务器端脚本环境,允许开发者使用HTML结合VBScript或JScript编写动态网页。ASP脚本运行在服务器上,能实现与客户端交互、数据处理和页面动态内容生成等功能。

理解ASP的作用

ASP的出现,弥补了静态HTML无法与服务器逻辑互动的缺陷,它使服务器能对用户的请求做出动态响应。ASP脚本被包含在特殊的标记 <% %> 内,这些标记指示服务器执行其中的代码。

ASP的基本组成

一个ASP页面通常包含HTML标记和ASP脚本代码。服务器会解析并执行这些脚本,然后再将生成的HTML内容发送给客户端浏览器。ASP页面通常保存为 .asp 文件。

从简单的表单提交处理到复杂的数据库交互,ASP都能提供强大的功能。然而,随着技术的发展,ASP逐渐被***等更现代化的框架所取代,但在一些旧项目和特定应用场景中,ASP仍然具备其不可替代的价值。

2. ASP组件及其作用

2.1 ASP内置组件解析

2.1.1 概念与分类

ASP(Active Server Pages)内置组件是服务器端脚本环境的一部分,用于提供特定功能,如文件存取、数据库访问、邮件发送等。这些组件按照功能和用途可以分为几个类别:

  • 文件系统访问组件 :如FileSystemObject,用于文件和文件夹操作。
  • 数据库访问组件 :如ADODB(ActiveX Data Objects Database),用于数据库交互。
  • 邮件发送组件 :如CDONTS或CDO.Message,用于发送电子邮件。
  • 其他辅助组件 :如AdRotator用于广告轮播,Counters用于生成和管理计数器等。

内置组件的使用可以极大地简化开发流程,因为它们提供了一套封装好的方法和属性,无需开发者从头开始编写这些常见的功能。

2.1.2 核心组件功能

这里,我们将深入探讨几个核心的ASP内置组件及其关键功能:

  1. FileSystemObject :这是一个用于文件系统操作的组件,可以创建、删除、移动文件和文件夹。通过它,开发者可以轻松管理服务器上的文件资源。

  2. ADODB.Connection :用于建立和管理数据库连接,执行SQL命令,处理结果集等。

  3. CDONTS.NewMail :此组件用于在ASP中发送电子邮件。它提供了创建邮件内容、添加附件和配置邮件发送选项的方法。

  4. AdRotator :它允许开发者在网站上实现广告轮播功能,包括随机选择广告、跟踪显示次数等。

每个组件都是为了帮助开发者高效实现特定功能而设计的,从而提升开发效率和应用性能。

2.2 ASP第三方组件应用

2.2.1 常见第三方组件介绍

除了内置组件外,ASP还支持第三方组件,这些组件通常由专业的开发团队或公司开发,它们可以提供一些特定的功能或增强现有的功能。一些常见的第三方组件包括:

  • Community Server :提供论坛功能。
  • DotNetNuke :用于构建基于***的内容管理系统。
  • ASPUpload :一个非常流行的组件,用于处理文件上传。

这些第三方组件通常需要购买许可证,但它们也提供了更完善的功能和文档支持。

2.2.2 集成第三方组件的实践

集成第三方组件到ASP应用中,通常需要以下几个步骤:

  1. 购买或下载组件 :根据应用需求从官方网站或授权渠道获取组件。

  2. 阅读文档和示例 :每个组件都配有详细的文档和示例代码,这将帮助开发者理解如何正确使用该组件。

  3. 在开发环境中安装组件 :将组件文件放置在服务器的指定目录下。

  4. 在ASP代码中引用组件 :通过 Server.CreateObject 方法创建组件的实例。

  5. 调用组件的方法和属性 :根据组件提供的接口进行操作。

  6. 测试和调试 :确保组件能够正确集成并且功能正常。

让我们以 ASPUpload 组件为例来演示如何在ASP中实现文件上传功能:

<%
' 创建一个上传组件的实例
Dim objUpload
Set objUpload = Server.CreateObject("Persits.Upload")

' 检查是否有文件上传
If objUpload.Count > 0 Then
    ' 获取上传文件的信息
    For Each objFile In objUpload.Files
        ' 文件名
        strFileName = objFile.FileName
        ' 上传到指定目录
        strSavePath = Server.MapPath("/Uploads/") & strFileName
        objFile.SaveAs strSavePath
    Next
End If

Set objUpload = Nothing
%>

在此代码中,我们首先创建了上传组件的实例,并检查是否有文件被上传。然后,我们遍历所有上传的文件,并使用 SaveAs 方法将每个文件保存到服务器的指定目录。

需要注意的是,在实际应用中,我们还需要对上传的文件进行安全检查,例如验证文件类型、大小限制等,以防止潜在的安全风险。

通过上述步骤和代码示例,我们可以看到集成第三方组件到ASP应用中是一个相对直接的过程,但必须注意组件的使用规范和安全防护措施。

3. VBScript和JScript脚本语言

3.1 VBScript语言基础

3.1.1 语法结构与变量

VBScript是一种简化的编程语言,其设计目的是为了简化Web页面内的脚本编写。它在语法结构上与Visual Basic类似,但是为了适应Web脚本环境而做了相应的简化和调整。VBScript的基本语法结构涵盖了变量声明、控制流程、函数定义等基础元素。

变量在VBScript中扮演着存储信息的角色,它们可以是数值、字符串、日期等类型。VBScript是动态类型语言,不需要在声明变量时指定类型,直接使用 Dim 关键字进行声明即可:

Dim strName, intAge
strName = "Alice"
intAge = 30

在上面的代码块中,我们声明了两个变量,分别是 strName intAge ,并为它们分别赋值了一个字符串和一个整数。VBScript中变量的作用域是由变量的声明位置决定的。如果变量在过程中使用 Dim 声明,则它具有局部作用域;如果在任何过程之外声明,则具有全局作用域。

3.1.2 控制结构与函数

控制结构是编程语言中的核心组件之一,它允许开发者根据条件执行不同的代码块。VBScript提供了多种控制结构,包括 If...Then...Else For...Next While...Wend 等。

例如,我们可以使用 If...Then...Else 结构来根据条件执行不同的代码路径:

Dim varValue
varValue = 10

If varValue > 5 Then
    Response.Write("varValue is greater than 5.")
Else
    Response.Write("varValue is less than or equal to 5.")
End If

在本示例中,我们根据变量 varValue 的值来决定输出哪一条信息。

函数是将一段代码封装起来以便复用的方式,它能够接受参数,并可以返回值。VBScript中的函数通过 Function 关键字来定义:

Function AddTwoNumbers(num1, num2)
    AddTwoNumbers = num1 + num2
End Function

Dim sum
sum = AddTwoNumbers(5, 3)
Response.Write("The sum is: " & sum)

这个简单的函数接受两个参数,返回它们的和。函数被调用并输出到Web页面上。

3.2 JScript在ASP中的应用

3.2.1 语法特点与变量

JScript是微软公司在Internet Explorer浏览器中实现的ECMAScript规范的JavaScript语言实现。在ASP中,JScript可以与其他脚本语言一样,用于编写服务器端脚本。JScript的语法特点包括弱类型、灵活的对象模型和基于原型的继承机制。

JScript中,变量可以在声明时使用 var 关键字,也可以直接使用而无需声明。变量类型是动态的,可以根据赋值的内容自动推断:

var strName = "Bob";
var age = 25;

JScript的变量类型包括字符串、数字、布尔值、对象、数组等。由于JScript是弱类型的,所以开发者必须小心处理类型相关的错误,如类型转换错误或意外的行为。

3.2.2 控制结构与对象

JScript提供了与VBScript相似的控制结构,如 if for while 等,它们用于控制程序的流程。对象是JScript中的核心概念,几乎所有的JScript值都是对象。即使是基本数据类型如字符串、数字和布尔值都可以拥有属性和方法:

if (age > 18) {
    Response.Write("You are an adult.");
} else {
    Response.Write("You are a minor.");
}

var currentDate = new Date();
Response.Write("Current date and time is: " + currentDate);

在JScript中,除了基本的控制结构,也可以使用函数定义与调用:

function calculateArea(radius) {
    return Math.PI * radius * radius;
}

var area = calculateArea(5);
Response.Write("The area of the circle is: " + area);

JScript通过函数提供代码封装和复用的功能,而 Math 对象提供了一系列的数学函数和常数。

本章的后续部分将详细探讨VBScript和JScript在ASP中的实际应用案例以及它们在不同开发场景下的最佳实践。通过对VBScript和JScript的深入理解,开发者将能够更加灵活地选择和应用适合特定项目的脚本语言,从而提高开发效率和应用性能。

4. ASP页面结构和代码块标记

在深入探讨ASP页面结构和代码块标记之前,了解其在服务器端处理模型中的位置和作用至关重要。ASP页面通常以 .asp 为扩展名,并包含服务器端脚本以及客户端脚本和标记。这一章将解析ASP页面的基本结构,阐述如何组织代码块以及实现逻辑与表现的分离。

4.1 页面结构解析

4.1.1 ASP文件类型与扩展名

ASP文件以 .asp 作为文件后缀,这告诉服务器该文件包含服务器端脚本代码,需要服务器进行处理而不是直接发送给客户端浏览器。在开发过程中,通常还会使用其他扩展名,如 .asa .asax 等,以支持应用级别的脚本和全局配置。

<%@ Language="VBScript" %>
<html>
<head>
    <title>示例页面</title>
</head>
<body>
    <!-- 页面逻辑和输出内容将插入于此 -->
</body>
</html>

4.1.2 页面指令与布局

ASP页面中的指令是告诉服务器如何处理页面的一种方式。例如, <%@ Language="VBScript" %> 指定了页面所使用的服务器端脚本语言。布局上,ASP页面通常包含标准的HTML标记和特殊的脚本块标记 <% %> ,用以插入服务器端脚本。

<%
Dim strMessage
strMessage = "Hello, World!"
Response.Write(strMessage)
%>

4.2 代码块标记与逻辑分离

4.2.1 代码块标记的使用

代码块标记是ASP页面中用于包含服务器端脚本的特殊语法,通常包围在 <% %> 之间。这些代码块可以包含变量声明、逻辑控制、数据库访问等服务器端操作。

<%
' 服务器端代码块开始
Dim count
count = 0

Do While count < 5
    Response.Write("当前计数:" & count & "<br>")
    count = count + 1
Loop
' 服务器端代码块结束
%>

4.2.2 页面与逻辑分离的实践

为了提高可维护性和清晰度,推荐使用代码分离技术,即将业务逻辑和数据访问逻辑分离到不同的组件和模块。这不仅有助于团队协作,还便于单元测试和性能优化。

<!-- 功能模块1:数据访问层 -->
<!-- 数据库连接和查询操作应该放在这里 -->

<!-- 功能模块2:业务逻辑层 -->
<!-- 处理用户请求并调用数据访问层 -->

<!-- 页面表示层 -->
<!-- HTML模板和客户端脚本 -->

通过本章节的介绍,我们了解到ASP页面结构和代码块标记的具体组成以及其在页面开发中的作用。接下来的章节中,我们将继续探讨ASP内建对象,它们是实现动态网页不可或缺的一部分。

5. ASP内建对象详解与用途

ASP(Active Server Pages)技术是微软推出的一种服务器端脚本环境,它通过内建对象提供了丰富的功能,使得开发动态网站和Web应用更加简单。在本章节中,我们将详细介绍ASP中的内建对象,并探讨它们的具体用途。

5.1 Request对象

5.1.1 获取客户端信息

Request对象用于获取客户端发送到服务器的信息,如表单数据、URL参数、Cookie以及客户端的环境信息等。通过Request对象可以实现客户端与服务器之间的交互。

代码示例:

<%
Dim strName, strEmail
strName = Request.Form("name")
strEmail = Request.Form("email")
Response.Write("Name: " & strName & "<br>")
Response.Write("Email: " & strEmail)
%>

在上述示例中,我们通过 Request.Form 方法获取了客户端通过表单提交的 name email 数据,并通过 Response.Write 方法输出这些数据。需要注意的是, Request.Form 仅适用于POST方法提交的表单数据。

5.1.2 管理HTTP请求

Request对象允许开发者对HTTP请求进行更细致的管理,例如获取请求头、客户端IP地址等。

代码示例:

<%
Dim strUserAgent, strRemoteAddr
strUserAgent = Request.ServerVariables("HTTP_USER_AGENT")
strRemoteAddr = Request.ServerVariables("REMOTE_ADDR")
Response.Write("User Agent: " & strUserAgent & "<br>")
Response.Write("Remote Address: " & strRemoteAddr)
%>

在该示例中, Request.ServerVariables 方法被用来获取HTTP请求头中的 User-Agent 和客户端的IP地址( REMOTE_ADDR )。

5.2 Response对象

5.2.1 输出内容到客户端

Response对象用于向客户端发送数据。开发者可以通过Response对象控制输出的内容,如HTML、图片等。

代码示例:

<%
Response.ContentType = "text/html"
Response.Write("<html><head><title>Response Test</title></head>")
Response.Write("<body><h1>Hello, World!</h1></body></html>")
%>

此代码段设置了响应内容类型为HTML,并输出了一个简单的HTML页面。

5.2.2 页面重定向与缓存控制

Response对象可以用来重定向用户到另一个页面,也可以控制页面的缓存行为。

代码示例:

<%
Response.Redirect("***")
' 或者使用绝对路径
Response.End ' 结束后续的输出
%>

重定向到另一个页面。使用 Response.End 可以停止当前页面的处理,立即向客户端发送输出。

5.3 Session和Application对象

5.3.1 管理用户会话状态

Session对象用于保存用户特定会话的信息,能够在用户访问网站时跟踪和管理用户的状态。

代码示例:

<%
Session("VISITOR_COUNT") = Session("VISITOR_COUNT") + 1
Response.Write("You are visitor number: " & Session("VISITOR_COUNT"))
%>

在此示例中,我们通过Session对象记录了访问者的数量,并将其显示给用户。

5.3.2 全局数据共享与应用

Application对象允许在多个用户之间共享数据,适用于存储全局变量或跨会话的共享数据。

代码示例:

<%
Application.Lock
Application("TOTAL_VISITS") = Application("TOTAL_VISITS") + 1
Application.Unlock
Response.Write("Total visits: " & Application("TOTAL_VISITS"))
%>

此示例代码更新了网站的总访问次数,并在应用中保持了这一数据的线程安全。

5.4 Server和Cookie对象

5.4.1 服务器信息与操作

Server对象提供了对服务器本身的访问,可以用于执行服务器端的操作,例如HTML编码、文件传输等。

代码示例:

<%
Dim strData
strData = "<div style='background-color: red;'>Red Background</div>"
Response.Write(Server.HTMLEncode(strData))
%>

在这里,Server对象的 HTMLEncode 方法用于将字符串数据进行HTML编码,以防止XSS攻击。

5.4.2 Cookie管理与隐私保护

Cookie对象用于在客户端存储少量数据,通常用于用户身份验证、个性化设置等。

代码示例:

<%
Response.Cookies("USER_PREFERENCES").Value = "dark-theme"
Response.Cookies("USER_PREFERENCES").Expires = DateAdd("d", 365, Now)
%>

此段代码设置了名为 USER_PREFERENCES 的Cookie,有效期为一年,并将值设为 dark-theme

通过学习本章节的内建对象详解,开发者可以更好地理解ASP的基础架构并掌握在Web开发中处理数据和用户交互的方式。接下来的章节将继续深入探讨ASP在数据库访问和错误处理中的应用,以及如何提高ASP应用的安全性和性能优化。

6. 数据库访问技术与ADODB组件

数据库是任何现代web应用程序的基础,而ASP通过ADODB(ActiveX Data Objects Database)组件提供了访问数据库的强大方式。本章将深入探讨数据库基础知识,并详细解析ADODB组件的使用方法。

6.1 数据库基础知识

6.1.1 关系型数据库概念

关系型数据库是最常见的数据库类型之一,它通过表格的形式组织数据,每个表包含了多行,每行代表一个数据项,每列代表一个数据字段。关系型数据库使用结构化查询语言(SQL)来访问和操作数据。理解关系型数据库的基础概念对于掌握ASP中的数据库访问至关重要。

6.1.2 SQL基础语法

SQL是关系型数据库的查询和程序设计语言。掌握基本的SQL语法,如 SELECT INSERT UPDATE DELETE 语句,是进行数据库操作的前提。ASP中通过ADODB组件执行这些SQL语句,来实现数据的查询、插入、更新和删除。

6.2 ADODB组件使用详解

ActiveX Data Objects (ADO) 是一种微软提供的数据访问技术,它允许开发者通过编程访问关系型数据库和其他数据源。在ASP中,开发者主要利用ADODB来操作数据库。

6.2.1 连接与操作数据库

连接数据库是使用ADODB组件进行数据库操作的第一步。创建一个ADODB连接通常包括设置数据源名称(DSN)、用户ID、密码和提供者信息。以下代码展示了如何在ASP中创建一个ADODB连接:

<%
Dim conn, connString
connString = "Provider=SQLOLEDB;Data Source=YourServerName;Initial Catalog=YourDatabaseName;User ID=YourUsername;Password=YourPassword;"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connString
%>

在这段代码中,我们首先声明了一个连接字符串 connString ,它包含了连接到数据库所需的所有信息。然后,我们通过 Server.CreateObject 创建了ADODB连接对象 conn ,并使用 Open 方法打开连接。

6.2.2 查询与数据处理

一旦建立了连接,就可以使用ADODB的记录集对象 ADODB.Recordset 来执行查询并处理数据。例如,以下代码展示了如何执行一个查询并遍历返回的结果集:

<%
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM YourTableName"
rs.Open sql, conn

Do While Not rs.EOF
    Response.Write("Column1: " & rs("Column1") & "<br>")
    Response.Write("Column2: " & rs("Column2") & "<br>")
    rs.MoveNext
Loop

rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

在这个例子中,我们首先创建了 Recordset 对象 rs ,然后执行了一个SQL查询,并使用 Open 方法打开记录集。通过遍历记录集,我们可以访问并输出每条记录的数据。最后,我们关闭了记录集和连接以释放资源。

ADODB是一个功能强大的组件,通过它ASP可以灵活地处理数据库操作任务。下一章节我们将探讨ASP中的错误处理方法,这对于维护ASP应用程序的健壮性至关重要。

7. ASP错误处理方法

7.1 错误类型与处理策略

7.1.1 理解ASP常见错误

在ASP编程中,开发者经常会遇到各种类型的错误。理解这些错误对于确保应用程序的健壮性和可靠性至关重要。ASP常见的错误类型可以分为三类:语法错误、运行时错误和逻辑错误。

  • 语法错误 :这是在代码编写阶段容易犯的错误,通常是由于代码书写不规范,如缺少分号、括号不匹配等导致编译失败。
  • 运行时错误 :程序在执行过程中,由于各种原因导致程序无法继续执行的错误,比如文件操作失败、数据库连接错误等。
  • 逻辑错误 :程序能够正常执行,但结果与预期不符的错误,这类错误最难发现和修复,因为它往往涉及复杂的业务逻辑。

在处理错误时,首先需要通过调试工具进行跟踪,并记录错误信息。例如,可以使用ASP内置的错误对象 Err 来捕获并处理错误。

On Error Resume Next ' 开启错误处理
' ...代码段...
If Err.Number <> 0 Then
    Response.Write("发生错误,错误编号:" & Err.Number & ",描述:" & Err.Description)
End If

上述代码通过 On Error Resume Next 指令使得脚本在出现运行时错误时不会停止执行,而是跳转到错误处理代码块,并输出错误信息。

7.1.2 错误处理技术与实践

错误处理技术在ASP中主要包括错误捕获、错误记录和错误修复。

  • 错误捕获 :通过 On Error 语句和 Err 对象来捕获和处理错误。需要特别注意的是,错误捕获不应该无限制地抑制所有错误,而应该针对特定的代码块进行。
  • 错误记录 :对于每一个重要的错误,都应该记录到日志文件中,以便于后续分析和跟踪。记录错误的代码片段可以写成一个子程序。
Sub LogError()
    Dim sErrorDescription
    sErrorDescription = Err.Description & " (" & Err.Number & ")"
    ' 将错误信息记录到服务器端日志文件
    ' 这里使用了Server对象的MapPath方法和FSO对象来操作文件系统
    ' 示例代码省略...
End Sub
  • 错误修复 :当错误发生时,尝试给出修复建议或替代方案。例如,如果数据库连接失败,可以尝试重新连接,或者如果文件无法写入,可以重定向到备份存储路径。

7.2 性能监控与日志记录

7.2.1 监控ASP应用程序性能

监控ASP应用程序性能是确保其稳定运行的关键环节。性能监控包括CPU使用率、内存使用情况、数据库访问时间等指标。对于ASP来说,可以通过以下几种方式进行性能监控:

  • 内置对象监控 :ASP内置对象如 Request , Response , Session , Application , Server 提供了性能相关的方法和属性,比如 Server.GetLastError 可以获取最后一次发生的错误信息。
  • 第三方监控工具 :使用如 Microsoft System Center Operations Manager 等第三方监控工具,可以更全面地监控到应用程序的性能表现。
  • 自定义日志和跟踪 :编写自定义代码,记录关键性能指标,并周期性地分析这些数据,来判断性能瓶颈所在。

7.2.2 日志记录与分析

ASP中记录日志通常涉及到以下几个步骤:

  • 定义日志记录规则 :确定需要记录哪些类型的信息,例如错误信息、用户访问行为、系统性能数据等。
  • 选择日志存储方式 :常见的存储方式有文件系统和数据库系统,选择哪种方式取决于数据的体积、查询需求等因素。
  • 日志数据的分析 :对于收集到的日志数据,需要进行定期分析,识别错误模式、使用趋势等关键信息。

下面是一个简单的日志记录过程的示例:

Sub WriteToLogFile(sMessage)
    Dim fso, file
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile(Server.MapPath("errorlog.txt"), 8, True, True)
    file.WriteLine Now() & " - " & sMessage
    file.Close
End Sub

此代码片段展示了如何将错误信息添加到一个名为 errorlog.txt 的文本文件中,用于追踪和记录错误事件。

通过本章内容,您应该能够了解ASP中常见的错误类型,并学会如何实施有效的错误处理、监控及日志记录策略。这对于维持一个可靠且高效的ASP应用程序是至关重要的。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:ASP是微软的服务器端脚本技术,用于创建动态网页和Web应用程序。本速查宝典全面覆盖ASP编程的基础知识和进阶技能,包括核心概念、对象使用、数据库操作、错误处理以及安全优化等。特别强调了ASP与***的关系和区别,为软件工程师提供了一个实用的学习和参考资源。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值