电脑技术学习

ASP+与ASP有什么不同

dn001

因此,正如你看到的,这里实在是没有什么鬼把戏,这里是标准的HTML,没有任何客户端的脚本库,也没有ActiveX或者Java Applets.

ASP+的服务器代码
为了在页面中显示这些值,我们使用和上面ASP例子中相近的代码:

...
If Len(Request.Form("selOpSys")) > 0 Then
strOpSys = Request.Form("selOpSys")
strName = Request.Form("txtName")
Response.Write("You selected '" & strOpSys _
& "' for machine '" & strName & "'.")
End If
...

ASP+和服务控制的另外一个巨大的好处就是能够在服务器上执行代码并且创建输出。ASP+强调每一个元素只有一个唯一的id属性,因此服务控制(也就是说有runat="server"的元素)必须依赖原始代码。这也就是说我们不需要使用request集合去访问客户端传来的值,只要使用唯一的id就行了.

...
If Len(selOpSys.value) > 0 Then
Response.Write("You selected '" & selOpSys.value _
& "' for machine '" & txtName.value & "'.")
End If
...

ASP+中的VB代码
在我们刚才看到的ASP页面中,脚本语言是使用的vbscript(它不是唯一的,但是如果没有别的设定,那么它就是被默认的语言).在ASP+中,它再也不支持VBscript了,它的默认语言是Visual Basic(VB),因此我们的代码会被编译成为IL(Intermediate Language).

在新的VB7.0中vb的编译器已经包括了ASP+(哈哈,是不是一个好消息了,我们不需要重新买东东了)。在这个新版本中,一个最值得注意的就是在VB7中所有方法都必须有以圆括号包含的参数列表。而这个要求在VBscript和以前的VB版本中是不需要的。

服务器事件的执行。
当然,如果你想让一些HTML元素在服务器上执行,那么为什么不把这个概念再扩展一下?!ASP+已经将每一个页面变成了一个服务器对象,同时提供了很多属性,方法和事件,这一切能够在你的页面中很好的利用。每个页面变成了COM+对象上的一个节点,当它们被请求时能够独立的运行和编写。

使用服务器端的控制事件
好好看一下下面的代码,看看,我们是如何利用ASP+的优点来完美地结构化我们的页面。

<HTML>
<BODY>
<SCRIPT language="VB" runat="server">
Sub ShowValues(Sender As Object, Args As EventArgs)
divResult.innerText = "You selected '" _
& selOpSys.value & "' for machine '" _
& txtName.value & "'."
End Sub
</SCRIPT>
<DIV id="divResult" runat="server"></DIV>
<FORM runat="server">
Machine Name:
<INPUT type="text" id="txtName" runat="server">
<P />
Operating System:
<select id="selOpSys" size="1" runat="server">
<OPTION>Windows 95</OPTION>
<OPTION>Windows 98</OPTION>
<OPTION>Windows NT4</OPTION>
<OPTION>Windows 2000</OPTION>
</SELECT>
<P />
<INPUT type="submit" value="Submit"
runat="server" onserverclick="ShowValues">
</FORM>
</BODY>
</HTML>

首先请注意我们在<script>中指定VB是当前语言,并且有一个runat="server"的属性.在里面我们写了一个名叫showValues的VB的函数(在ASP+中,函数和子程序必须得放在<script>中,并不是<% ....%>之间)

我们也添加了一个有着runat="server"的HTML标签<div>。因此这个元素会在服务器上创建。当这个VB子程序被执行时,它将使用<div>元素的innerText属性.

同样我们也得注意一下它是如果取得请求值的。因为这个text box以及<select>列表也是在服务器上执行的,我们的程序能够直接通过访问这些控制的value属性获取它们的值,这个<div>元素执行后的代码会是下面的样子:

<DIV id="divResult">You selected 'Windows NT4' for machine 'lewis'.</DIV>

标签: