文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>asp基本内置对象

asp基本内置对象

时间:2007-09-30  来源:hufenghuanyu

Asp内置基本对象(来源于课程笔记) [原创 2006-10-02 23:29:19 ] 发表者: smallwolf  

ASP3.0内置对象Application、ASPError、Request、Response、Session 、ObjectContext 、Server等7个对象(Object),而且没个对象有各自的属性(Property)、方法(Method)、 结合(Collection)或事件(Event)。

“对象”(Object)就象我们生活中所看到的个中物体,比如说:计算机 汽车 房子 等,而对象可以又是由许多对象组成的,如:计算机是个对象,有硬盘 内存 CPU  等组成。

“属性”(Property)用来描述对象的特征,比如说:计算机是个对象,而计算机的制造商等可以描述计算机的特性就叫属性;又比如:Response是ASP的一个内置对象,而它有一个属性IsClientConnected可以用来描述浏览器端是否仍和服务器端相连。若存取对象的属性,可以写成ObjectNaem ProPerty,例如:Response IsClientConnected 。

“方法”(Method)是用来执行对象的动作,比如:计算机是一个对象,而开机、关机、执行应用程序、扫描硬盘等操作则是这个对象的方法;Response是ASP的内置对象,而它有个方法叫Write,可以在浏览器端显示制定的信息。Response.Write

“集合”(Collection)指的是一群放在一起的“值”(Value)

“事件”(Event)是在某些情况下特定的信号警告你,比如说,Session是Asp 的内置对象,而他在用户激活或结束浏览器时会产生Session_OnStart和Session_OnEnd事件。

ASP内置的7大对象

Response 决定何时或如何输出由服务器端传送到浏览器端

Request  用来获取浏览器端返回服务器端的数据

ASPError 可以让你取得Script发生错误的信息(IIS5.0才支持此对象)

Server 这个对象提供了服务器端最基本的属性和方法

Application  用来记录同一时间不同浏览器端共享变量

Session 用来记录个别浏览器专用变量

ObjectContext 这个对象用来连接ASP 和 Microsoft Transaction Server

备注 :对象与对象实例(Object Instance)是不一样的,比如说,汽车是对象,而本田、林肯、等则是对象实力,它们都具有颜色、制造商、年份、型号等,但这些属性可能有不同的值,换句话说,同一个对象可以因不同属性值,而有不同的对象实例。

Response对象

1、Response.write

在Response中write方法是使用最频繁的一个了,将数据现显示在浏览器画面上。

Response.write("data")

括号可以省略

<% @Language=VBScript%>

<html>

    <body>

    <%

        Response.Write("<b><i>XXX工作室</i></b>")

        Response.Write"<br>"

        Respoonse.Write"<b><i>XXX工作室</i></b>"

    %>

</body>

</html>

注意:

倘若你的浏览器显示的信息包括%>符号,必须将他改为%\>,否则会被视为ASP程序代码的结尾

2、Response.redirect

Redirect 方法是让浏览器立即重定向到程序制定的URL地址。这在根据客户的不同响应,为不同的客户指定不同的页面,或根据不同的情况指定不同的页面时,显的非常重要。该方法立即生效,在其后面的脚本都不执行。

 <%@LANGUAGE="VBSCRIPT" "%>
<% Option Explicit %>
<% Response.Buffer = True %>


<html>
<head>

</head>

<body>
<%
 Dim WeekDay , PageName
 WeekDay=DatePart("W",Date())'取今天是星期几
 Select Case WeekDay '根据星期几决定要显示的网页名称
  Case"1"
   PageName="Sun.htm"
  Case"2"
   PageName="Mon.htm"
  Case"3"
   PageName="Tue.htm"
  Case"4"<br>
   PageName="Wed.htm"
  Case"5"
   PageName="Thu.htm"
  Case"6"
   PageName="Fri.htm"
  Case"7"
   PageName="Sat.htm"
  end select
  response.Redirect(PageName)
 %>

</body>
</html>

3、Response.end

这是Response常用的一种方法,使用Web服务器停止处理脚本并返回当前结果,文件中剩余的内容将不被处理。

主要放在一页多功能的ASP页中,为让程序运行到此,往下的程序没必要在执行显示......

<%@ Language=VBScript %>

<HTML>

<BODY>

<% 

 response.write now()

response.end            '程序执行显示到此结束

response.write rnd()

%>

</BODY>

</HTML>

4、缓冲处理---Response.buffer属性、Response .clear方法、Response.Flush方法

Response.buffer将输出暂时存放在缓冲区,但执行完毕或接收到特定的命令(Flush或end),在将输出传送到浏览器端。

Response.clear 清楚所有缓冲区尚未传送到浏览器端的输出。

Response.Flush把所有存放在缓冲区的输出传送到浏览器端并清楚缓冲区。

看实例1:

<%@ Language = VBScript %>

<% Option Explicit %>

<% Response.Buffer = True %>

 

<HTML>

    <BODY>

        <% Response.Write "Hello"

           Response.Write "World!"

        %>

    </BODY>

</HTML>

看实例2:

<%@ Language = VBScript %>

<% Option Explicit %>

<% Response.Buffer = True %>

 

<HTML>

    <BODY>

        <% Response.Write "Hello"

           Response.Clear

           Response.Write "World!"

        %>

    </BODY>

</HTML>

看实例3:

<%@ Language = VBScript %>

<% Option Explicit %>

<% Response.Buffer = True %>

 

<HTML>

    <BODY>

        <% Response.Write "Hello"

           Response.Flush

           Response.Write "World!"

           Response.Clear

        %>

    </BODY>

</HTML>

5、Response.expires

该属性指定了在浏览器上缓冲存储的页,距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的页面。若设置 response.expires=0,(最好设置成-1)则是缓冲区立即过期。这是一个比较实用的属性,当客户通过ASP的登陆页面进入WEB站点后,应该利用该属性使登场页面立即过期,以确保安全。

6、Response.Cookies

Cookies 其实是一个标签,中文翻译:小甜饼。当你访问一个需要唯一标示你的站址的WEB站点时,它会在你的硬盘上留下一个标记,下次访问同一个站点时,站点页面会查找到这个标记。

 

每个 WEB 站点都有自己的标记,标记的内容可以随时读取,但只能由该站点的页面完成。每个站点的Cookie与其他所有站点的Cookie存在同一文件夹中的不同文件内(你可以在 win98 的 Windows 目录下的 Cookie 文件夹中找到它们,而 win2k 则在 Documents and Settings 文件夹下特定用户的 cookies 文件夹中)

比如说:你可以在站点上放置一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面。并且,你还可以保存访问者的登录密码,这样,当访问者再次访问这个站点时,不用再输入密码进行登录。

注意:cookie也有一些不足。首先,由于利用cookie的功能可以编程实现一些不良企图,所以大多数的浏览器中都有安全设定,其中可以设置是否允许或者接受cookie(IE浏览器中“工具”--“Internet选项...”--“安全”--“自定义级别”--“Cookie的使用”;Netscape浏览器中“工具”--“Cookie管理器”--“管理贮存的Cookie”即可),因此这就不能保证随时能使用cookie。再者,访问者可能有意或者无意地删除cookie。当访问者的机器遇到“蓝屏”死机时,或者重新格式化硬盘、安装系统后,原来保存的cookie将全部丢失。最后一点,有一些最初始的浏览器并不能支持cookie。

创建cookie的基本语法: Response.Cookies(cookie)[(key)|.attribute]=value
这里的 cookie 是指定 cookie 的名称。

Request

倘若我们想从浏览器端取得浏览者输入的数据或存放在浏览器端的Cookie,又该怎办?

这时候,您的学会使用asp内置对象Request对象。一般来说,网页通常会通过“表单”(FORM)的形式人浏览者输入数据,然后将表单数据返回WEB服务器,以备登陆或查询之用,而Request对象的用途则是帮助我们读取这些数据。

 1.认识表单:

说实话,无论是asp,php还是jsp进行网络编程的时候,都离不开和用户的交互。而人机对话的平台,基本上是靠相应的文本、列表框进行输入,然后通过按钮提交送至数据库的。所以学习网络编程就一定要了解这些输入平台相关的东西:表单(form)
其基本格式如下:

<form name="form1" action="xxx.asp" method="post">

<input type="text" name="yourname">

<select name="selectwhat">

  <option>aaa</option>

  <option>aaa</option>

</select>

<textarea name="textinit" rows=5 cols=10></textarea>

</form>

可以总结出:表单即包括<form>...</form>之内的相关内容。其中内部可以分三大类:input,select,textarea。还有两个BUTTON, Fieldset。

①首先看<form>内部参数

参数name:用来表示该表单的唯一名称,方便一个页面建立多个表单而不混淆,当然更是为了接受页面的确认关系。

参数action:显而易见,是表示当前的表单中所有内容将送交某个页面去处理。处理包括接受信息,数据库比较,添加,修改等。

参数method:即表单的提交方法,含两种方法:post和get。post是传输信息内容,get是传输url值,具体用法将会在下面介绍到

②再来看Input相关

Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍。
     (1) type=text

输入类型是text,这是我们见的最多也是使用最多的,比如登陆输入用户名,注册输入电话号码,电子邮件,家庭住址等等。当然这也是Input的默认类型。
     参数name:同样是表示的该文本输入框名称。
     参数size:输入框的长度大小。
     参数maxlength:输入框中允许输入字符的最大数。
     参数value:输入框中的默认值
     特殊参数readonly:表示该框中只能显示,不能添加修改。

<form>

your name:

<input type="text" name="yourname" size="30" maxlength="20" value="输入框的长度为30,允许最大字符数为20"><br>

<input type="text" name="yourname" size="30" maxlength="20" readonly value="你只能读不能修改">

</form>

(2) type=password

不用我说,一看就明白的密码输入框,最大的区别就是当在此输入框输入信息时显示为保密字符。参数和“type=text”相类似。

<form>

your password:

<input type="password" name="yourpwd" size="20" maxlength="15" value="123456">密码长度小于15

</form>

(3)type=file

当你在BBS上传图片,在EMAIL中上传附件时一定少不了的东西:
提供了一个文件目录输入的平台,参数有name,size。

<form>

your file:

<input type="file" name="yourfile" size="30" accept=”image/gif,image/jpeg”>

</form>

(4)type=hidden

非常值得注意的一个,通常称为隐藏域:如果一个非常重要的信息需要被提交到下一页,但又不能或者无法明示的时候。一句话,你在页面中是看不到hidden在哪里。最有用的是hidden的值。

     <form name="form1">

your hidden info here:

<input type="hidden" name="yourhiddeninfo" value="cnbruce.com">

</form>

(5)type=button

标准的一windows风格的按钮,当然要让按钮跳转到某个页面上还需要加入写javascript代码

 

(6)type=checkbox

多选框,常见于注册时选择爱好、性格、等信息。参数有name,value及特别参数checked(表示默认选择),其实最重要的还是value值,提交到处理页的也就是value。(附:name值可以不一样,但不推荐。)

<form name="form1">

a:<input type="checkbox" name="checkit" value="a" checked><br>

b:<input type="checkbox" name="checkit" value="b"><br>

c:<input type="checkbox" name="checkit" value="c"><br>

</form>

name值可以不一样,但不推荐<br>

<form name="form1">

a:<input type="checkbox" name="checkit1" value="a" checked><br>

b:<input type="checkbox" name="checkit2" value="b"><br>

c:<input type="checkbox" name="checkit3" value="c"><br>

</form>

(7)type=radio

即单选框,出现在多选一的页面设定中。参数同样有name,value及特别参数checked.
不同于checkbox的是,name值一定要相同,否则就不能多选一。当然提交到处理页的也还是value值。

<form name="form1">

a:<input type="radio" name="checkit" value="a" checked><br>

b:<input type="radio" name="checkit" value="b"><br>

c:<input type="radio" name="checkit" value="c"><br>

</form>

下面是name值不同的一个例子,就不能实现多选一的效果了<br>

<form name="form1">

a:<input type="radio" name="checkit1" value="a" checked><br>

b:<input type="radio" name="checkit2" value="b"><br>

c:<input type="radio" name="checkit3" value="c"><br>

</form>

(8)type=image

比较另类的一个,自己看看效果吧,可以作为提交式图片

<form name="form1" action="xxx.asp">

your Imgsubmit:

<input type="image" src="../blog/images/face4.gif">

</form>

(9)type=submit and type=reset

分别是“提交”和“重置”两按钮。submit主要功能是将Form中所有内容进行提交action页处理,reset则起个快速清空所有填写内容的功能。

<form name="form1" action="xxx.asp">

<input type="text" name="yourname">

<input type="submit"  value="提交">

<input type="reset"  value="重置">

</form>

③接着再来看Select相关

Select主要要来做下拉菜单,跳转菜单,(下拉)列表。
其本身有内嵌代码<option>...</option>,option参数value值为传递被处理的值,option还有参数selected,表示默认被选中的。

(1)下拉菜单

<form name="form1">

<select name="selectwhat">

  <option value="a">aaa</option>

  <option value="b">bbb</option>

  <option value="c" selected>ccc</option>

</select>

</form>

(2)跳转菜单

在下拉菜单基础上添加javascript成为跳转菜单。

<select onChange="if(this.selectedIndex && this.selectedIndex!=0){window.open(this.value);}this.selectedIndex=0;">

<option  selected>网站连接……</option>

<option  value="http://www.cnbruce.com/">Cn-Bruce</option>

<option  value="http://www.blueidea.com/">Blue!dea</option>

<option  value="http://www.it365cn.com/">It365cn</option>

</seclect>

(3)下拉列表

和下拉菜单最大的区别就是select多了一个size值,该值并非长度大小,而是列表的上下高度。当然还有更主要的是:菜单只能选一个,而列表可以选多个,该特殊参数为multiple

size=1简直就是一个下拉菜单

<form name="form1">

<select name="selectwhat" size=1>

  <option value="a">aaa</option>

  <option value="b">bbb</option>

  <option value="c">ccc</option>

</select>

</form><br>

size>1你会发现了大不同

<form name="form1">

<select name="selectwhat" size=3>

  <option value="a">aaa</option>

  <option value="b">bbb</option>

  <option value="c">ccc</option>

</select>

</form><br>

加入了multiple发现可以多个选择了,包括Shift进行快速全选及Ctrl进行点选

<form name="form1">

<select name="selectwhat" size=3 multiple>

  <option value="a">aaa</option>

  <option value="b">bbb</option>

  <option value="c">ccc</option>

</select>

</form><br>

④关注Textarea标记

可以将Textarea文本区域理解为扩大化了的文本输入框。其参数没有value,默认值设定在<textarea>...</textarea>之间。其它参数还有rows,表示文本区域的行数;参数cols,表示文本区域的列数。还有参数warp,当warp=off表示该文本区域中的不自动换行,当然不写默认是自动换行的。

<form name="form1">

<textarea name="textinit" rows="5" cols="20" wrap="off">5行20列,不自动换行</textarea>

</form>

⑤BUTTON标记

<form name="form1" method="post" action="">

  <BUTTON type="submit" name="submit">提交</BUTTON>

  <BUTTON type="reset" name="reset">重新输入</BUTTON>

  <BUTTON type="button" name="QUERY">查询</BUTTON>

</form>

如果用图片

<form name="form1" method="post" action="">

  <BUTTON type="submit" name="submit"><IMG SRC=”fig1.jpg”></BUTTON>

  <BUTTON type="reset" name="reset"><IMG SRC=”fig2.jpg”></BUTTON>

  <BUTTON type="button" name="QUERY"><IMG SRC=”fig3.jpg”></BUTTON>

</form>

⑥将指定的表单字段框起来----<Fieldset>…</ Fieldset >。<Legend>…</ Legend >指定框起来的说明文字。

<FORM>

          <FIELDSET>

            <LEGEND>个人资料</LEGEND>       

             姓&nbsp;&nbsp;名:<INPUT TYPE="TEXT" NAME="UserName" SIZE="40"><BR>

            E-Mail:<INPUT TYPE="TEXT" NAME="UserMail" SIZE="40" VALUE="username@mailserver"><BR>

            年&nbsp;&nbsp;龄:?

                <INPUT TYPE="RADIO" NAME="UserAge" VALUE="Age1">未满20岁

                <INPUT TYPE="RADIO" NAME="UserAge" VALUE="Age2" CHECKED>20~29

                <INPUT TYPE="RADIO" NAME="UserAge" VALUE="Age3">30~39

                <INPUT TYPE="RADIO" NAME="UserAge" VALUE="Age4">40~49

                <INPUT TYPE="RADIO" NAME="UserAge" VALUE="Age5">50岁以上<BR>  

          </FIELDSET><BR>

          <FIELDSET>

            <LEGEND>手机方面的问题</LEGEND>

            您曾经使用过哪些厂家的手机?

                <INPUT TYPE="CHECKBOX" NAME="UserPhone" VALUE="诺基亚" CHECKED>诺基亚

                <INPUT TYPE="CHECKBOX" NAME="UserPhone" VALUE="摩托罗拉">摩托罗拉

                <INPUT TYPE="CHECKBOX" NAME="UserPhone" VALUE="爱利信">爱利信

                <INPUT TYPE="CHECKBOX" NAME="UserPhone" VALUE="三星">三星<BR>

            您使用手机时最常碰到哪些问题?<BR>

                <TEXTAREA NAME="UserTrouble" COLS="45" ROWS="4">线路太忙</TEXTAREA><BR> 

            你使用哪个网?(可复选)

                <SELECT NAME="UserNumber" SIZE="4" MULTIPLE>

                  <OPTION VALUE="中国电信">中国电信

                  <OPTION VALUE="中国联通" SELECTED>中国联通

                  <OPTION VALUE="远传">远传</OPTION>

                  <OPTION VALUE="铁路网">铁路网</OPTION>

                  <OPTION VALUE="和信">和信</OPTION>

                  <OPTION VALUE="其他">其他</OPTION>

               </SELECT><BR>

          </FIELDSET><BR>

          <INPUT TYPE="SUBMIT" VALUE="提交">  

            <INPUT TYPE="RESET" VALUE="重新输入">                    

        </FORM>

2.Request对象

(1)       读取表单数据Request.QueryString和Request.Form集合

用Request.form还是Request.querystring,最主要的还是上页表单递交时,采用的什么方法。当采用post就用Request.form,否则当采用get时就采用Request.querystring了。

那Request.querystring最大特色在哪里呢?Request.querystring能检索并接受 HTTP 查询字符串中变量的值,而HTTP 查询字符串则是由问号 (?) 后的值指定的。

为了防止使用不当,我们可以省略querystring、form。说了大半天,继续看一个程序。

<HTML>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

        <TITLE>快乐信托网络银行</TITLE>

    </HEAD>

    <BODY BACKGROUND="rose1.jpg">

        <P><IMG SRC="bank1.jpg"></P>

        <FORM METHOD="POST" ACTION="计算利率.asp">

          <FIELDSET>

            <LEGEND>个人资料</LEGEND>       

            请输入姓名&nbsp;&nbsp;:<INPUT TYPE="TEXT" NAME="UserName" SIZE="30"><BR>

            请输入E-Mail:<INPUT TYPE="TEXT" NAME="UserMail" SIZE="30"><BR>

          </FIELDSET><BR>

          <FIELDSET>

            <LEGEND>计算存款本利和</LEGEND>

            请输入本金:如&nbsp;500000 <INPUT TYPE="TEXT" NAME="UserCache" SIZE="20"><BR>

            请输入年利率:?如&nbsp;0.05 <INPUT TYPE="TEXT" NAME="UserRate" SIZE="20"><BR>

            请输入月数:如&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="TEXT" NAME="UserMonth" SIZE="20"><BR>

          </FIELDSET><BR>

          <INPUT TYPE="SUBMIT" VALUE="开始计算">  

          <INPUT TYPE="RESET" VALUE="重新输入">                    

        </FORM>

    </BODY>

</HTML>

 

<%@ Language=VBScript %>

<% Option Explicit %>

<%

    Dim Name, Cache, Rate, Month, Total

    Name = Request("UserName")

    Rate = Request("UserRate")

    Cache = Request("UserCache")

    Month = Request("UserMonth")

    Total = Cache + Cache * Rate * Month / 12

%>

<HTML>

    <HEAD>

        <TITLE>快乐信托网络银行确认网页</TITLE>

    </HEAD>

    <BODY BACKGROUND="rose2.jpg">

        <P><IMG SRC="bank2.jpg"></P>

        <P><FONT COLOR="Green"><I><B><%= Name %></B></I></FONT>,您好!</P>

        当本金为<FONT COLOR="Blue"><%= Cache %></FONT>?

        年利率为<FONT COLOR="Blue"><%= Rate %></FONT>?

        月数为<FONT COLOR="Blue"><%= Month %></FONT>??

        本利和将为<FONT COLOR="Blue" SIZE="4"><I><B><%= Total %></B></I></FONT>?

        <P><A HREF="快乐银行.htm">???</A></P>

    </BODY>

</HTML>

Server对象

Server对象提供了服务器端最基本的属性及方法。

属性:ScriptTimeout=n;设置Script必须在指定的时间内执行,若逾时就不能执行,以秒数为单位,默认的为90秒,例如:<%Server. ScriptTimeout =120%>

方法:

CreateObject(component):建立服务器组建实例(Instance)。

Execute(path):执行path指定的asp程序。

GetLastError():返回一个asperror对象的实例,该实例描述最近发生的错误。

HTMLEncode(string):将string进行编码,使它不会解释为HTML语法。

MapPath(path):将path指定的虚拟路径转换成实际路径。

Transfer(paht):将控制权转移至path指定的asp程序。

URLEncode(string)将string进行编码,以放入Query String返回服务器。

1、Application对象

Application对象的用途主要是纪录整个网站的信息,例如上站人数、在先名单、意见调查或在线票选系统等。它可以用来纪录不同浏览器端共享的变量。

集合:

l         contents:此集合包含所有非对象变量,这是application对象的默认集合。倘若我们要取application对象记录变量counter,可以写成application.contents(“counter”)或者application(“counter”)。

l         staticobjects:此集合包含所有对象变量,这些对象变量是在Global.asa文件中使用<object>标记所建立。

方法:

     contents.removeall:删除contents集合内所有变量。

        contents.remove(item):从contents集合中删除item所指定的变量,item可以是字符串或整数,若item为整数,那么这个整数所代表的是索引值。

        lock:禁止其他浏览器端修改application对象记录的变量值

        unlock:容许其他浏览器端修改application对象记录的变量值。

事件:

         Application_onstart:在建立application对象的时候会产生这个事件。

       Application_onend:在结束application对象的时候会产生这个事件。

Session对象

session对象纪录的是个别浏览器端专用变量。

注意:

变量、cookie、application对象和session对象默认的生命周期如下:

变量:起始于网页被执行时,终止于网页结束执行时。

Cookie:起始于浏览器被执行时,终止于浏览器结束执行时,但可以使用response.cookies(name).expires属性设置其生命周期。

Application对象:起始于WEB服务器开始执行时,终止于web服务器结束执行时,或超过20分钟没有浏览器读取网页。

Session对象:起始于浏览器第一次与服务器联机时,终止于浏览器结束联机时,或浏览器超过20分钟没有读取网页。

Session对象说明:

集合:

         contents:此集合包含所有非对象变量,这是Session对象的默认集合。倘若我们要取Sessionn对象记录变量counter,可以写成Session.contents(“counter”)或者Session (“counter”)。

        staticobjects:此集合包含所有对象变量,这些对象变量是在Global.asa文件中使用<object>标记所建立。

属性:

         SessionID:用来识别每个Session的识别码。

     TimeOut:设置session逾时的时间(以分钟为单位)。不设置的话,默认时间是20分钟。

方法:

        Abandon:完成目前的网页之后便结束Session对象。

         contents.removeall:删除contents集合内所有变量。

         contents.remove(item):从contents集合中删除item所指定的变量,item可以是字符串或整数,若item为整数,那么这个整数所代表的是索引值。

事件:

         Session_onstart:在建立Session对象的时候会产生这个事件。

         Session_onend:在结束Session对象的时候会产生这个事件。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载