1. Einführung
Die serverseitige Skriptausführungsumgebung ist einfach und benutzerfreundlich, erfordert keine Kompilierung und Verbindung, Skripte können direkt auf der Serverseite ausgeführt werden, unterstützt Mehrbenutzer und Multithreads und ist weit verbreitet in der Webentwicklung. Serverseitige Komponenten unterscheiden sich von clientseitigen Komponenten. Clientseitige Komponenten werden über das Netzwerk übertragen, basieren auf HTML und sind nur im IE verfügbar. Die serverseitige Komponente wird jedoch auf der Serverseite ausgeführt und führt verschiedene Vorgänge auf dem Server aus. Daher kann es von allen Browsern genutzt werden und es ist auf den Server und nicht auf den Browser angewiesen. Da ASP-Skripte jedoch im Nur-Text-Format vorliegen, können böswillige Akteure durch den Quellcode leicht Seiteninhalte erkennen, die sie nicht sehen sollten. Daher ist der Schutz des ASP-Quellcodes sehr wichtig. Das Einkapseln von ASP-Code in DLL beschleunigt nicht nur die Ausführung von ASP-Code, sondern schützt auch den Originalcode. Wenn IIS aufgefordert wird, ein ASP-Programm auszuführen, findet es zunächst den Code zwischen den Tags in der ASP-Datei und führt ihn aus (es kann auch der Code dazwischen sein). Wenn dieses ASP-Programm zuvor aufgerufen wurde, verwendet es das kompilierte Programm im Speicher, um den HTML-Code an den Benutzer zurückzugeben. Andernfalls wird es neu kompiliert. Dadurch werden Serverressourcen erheblich gespart.
2. Implementierungsmethode
Starten Sie Ihr VB und wählen Sie das ActiveX-Symbol aus. Dieses Symbol ist im neuen Projekt zu finden! VB stellt einen Standardprojektnamen (Projekt1) und einen Klassennamen (Klasse1) bereit. Bevor Sie beginnen, bestätigen Sie bitte zunächst, dass wir über die Microsoft ActiveX Data Object 2.0 Library verfügen, die in unserem Programm sehr nützlich ist. Wählen Sie „Projekt“ aus dem Menü und dann dort „Referenz“. Das Fenster „Referenz“ wird angezeigt. Wählen Sie „Microsoft ActiveX Data Object 2.0 Library“.
Jetzt haben wir unser eigenes Projekt (Projekt1) und Klassennamen (Klasse1). Wir werden ihre Namen in Zukunft verwenden, um auf diese Komponente im ASP-Code zu verweisen. In ASP zitieren wir es wie folgt:
Set ObjReference = Server.CreateObject("ProjectName.ClassName")
Um ASP-Methoden in einer Klasse verwenden zu können, müssen Sie die Initialisierungs- und Beendigungsfunktionen in dieser Klasse schreiben. Geben Sie den folgenden Code ein: in die Programmliste
Private Sub Class_Initialize() und Private Sub Class_Terminate() in Class1.cls
verwandeln die Schlüsselfunktionen im ASP-Code in eine Dynamic Link Library (.dll), wodurch der ASP-Quellcode teilweise ausgeblendet wird. Beispiel: Der in Global.bas und Class1.cls in der Programmliste eingegebene Code (die Hauptfunktion des Codes besteht darin, Datensätze in der Datenbank abzurufen und anzuzeigen).
Wählen Sie Datei → Artikel.dll generieren → Wählen Sie im Dropdown-Menü von VB das zu speichernde Verzeichnis aus. Suchen Sie die Datei „article.dll“ und kopieren Sie sie in den Ordner „system32“ auf der Systemfestplatte. Der letzte Schritt besteht darin, die DLL-Datei zu registrieren. Wählen Sie im Startmenü „Ausführen“ und geben Sie regsvr32 c:winntsystem32article.dll ein.
3.
Code in der Programmliste Global.bas:
Öffentlicher objContext als ObjectContext,
öffentliche Anwendung als ASPTypeLibrary.Application
, öffentlicher Server als ASPTypeLibrary.Server,
öffentliche Sitzung als ASPTypeLibrary.Session,
öffentliche Antwort als ASPTypeLibrary.Response,
öffentliche Anfrage als ASPTypeLibrary.Request
Code in Class1.cls:
Private Sub Class_Initialize()
Bei Fehler Weiter fortsetzen
Setze objContext = GetObjectContext
Setze Application = objContext.Item("Application")
Setze Server = objContext.Item("Server")
Setze Session = objContext.Item("Session")
Setze Request = objContext .Item("Request")
Set Response = objContext.Item("Response")
End Sub
Private Sub Class_Terminate()
On Error Resume Next
Set Application = Nothing
Set Server = Nothing
Set Session = Nothing
Set Request = Nothing
Set Response = Nothing
Set objContext = Nothing
End Sub
Public Sub AspClassInit()
On Error GoTo Err
Set conn = Server.CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Article .mdb")
conn.Open strcon
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from Article order by ArticleID desc"
rs.Open sql, conn, 1, 1
Response.Write "<html> " & vbCrLf
Response.Write „<head>“ & vbCrLf
Response.Write "<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">" & vbCrLf
Response.Write „<title>Article Management System-CSSTUDIO</title>“ & vbCrLf
Response.Write „</head>“ & vbCrLf
Response.Write „<body bgcolor=""#FFFFFF"" topmargin=""0"">" & vbCrLf
Response.Write „<table width=""100%"" border=""0"" cellpadding=""2"" cellpacing=""0"">" & vbCrLf
Response.Write „ <tr>“ & vbCrLf
Response.Write " <td width=""742"" height=""20"">Artikeltitel</td>" & vbCrLf
Response.Write " <td width=""90"">Click</td>" & vbCrLf
Response.Write " <td width=""145"">Datum hinzufügen</td>" & vbCrLf
Response.Write „ </tr>“ & vbCrLf
Response.Write „</table>“ & vbCrLf
Während nicht rs.EOF und Zeilen < rs.PageSize
Response.Write „<table width=""100%"" border=""0"" cellpacing=""0"" cellpadding=""0"">" & vbCrLf
Response.Write „ <tr>“ & vbCrLf
Response.Write " <td width=""747"" height=""20"">☆<a href=""view.asp?id="
Response.Write rs("ArticleID")
Response.Write „““>“ & vbCrLf
Response.Write " "
Response.Write rs("Titel")
Response.Write „</a></td>“ & vbCrLf
Response.Write „ <td width=""94"">"
Response.Write rs("click")
Response.Write „</td>“ & vbCrLf
Response.Write " <td width=""148"">"
Response.Write rs("Datum hinzufügen")
Response.Write „</td>“ & vbCrLf
Response.Write „ </tr>“ & vbCrLf
Response.Write „</table>“ & vbCrLf
rs.MoveNext
Wend
Response.Write „</body>“ & vbCrLf
Response.Write "</html>" & vbCrLf
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
Exit Sub
Err:
Wenn Err.Number = -13572468, dann Exit Sub
Resume Next
End Sub
Code in index.asp nach Verwendung von Article.dll:
<%Dim AspTransBuilderObject
Set AspTransBuilderObject = Server.CreateObject("article.Class1")
AspTransBuilderObject.AspClassInit
Set AspTransBuilderObject = Nothing%>
Code in index.asp vor der Verwendung von Article.dll:
<% Set conn=Server.CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Article.mdb")
conn.Open strcon %>
<% Set rs = Server.CreateObject ("ADODB.Recordset")
sql="select * from Article order by ArticleID desc"
rs.Open sql, Conn,1,1 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Artikelverwaltungssystem-CSSTUDIO</title>
</head>
<body bgcolor="#FFFFFF" topmargin="0">
<table width="100%" border="0" cellpadding="2"
Zellenabstand="0">
<tr>
<td width="742" height="20">Artikeltitel</td>
<td width="90">Klicken</td>
<td width="145">Datum hinzufügen</td>
</tr>
</table>
<% While Not Rs.Eof And Rows<Rs.PageSize %>
<table width="100%" border="0" cellpacing="0"
cellpadding="0">
<tr>
<td width="747" height="20">☆<a href="view.asp?id=<%
= rs("ArticleID") %>">
<% =rs("title") %></a></td>
<td width="94"><% = rs("click") %></td>
<td width="148"><% = rs("Datum hinzugefügt") %></td>
</tr>
</table>
<% Rs.MoveNext
Wend %>
</body>
</html>
<% rs.close
setze rs=nichts
Verbindung schließen
set conn=nothing %>
4. Fazit
Da diese Codes serverseitig laufen, muss der Client nichts installieren. Dies ist nur ein kleines Beispiel dafür, was mit ActiveX-DLLs erreicht werden kann. Sie können Ihre eigenen größeren Komponenten schreiben und viele Steuerelemente in VB verwenden. Lassen Sie uns Komponenten verwenden, um die Funktionalität unseres Programms zu erweitern! Ich hoffe auch, dass unsere Chinesen weitere Komponenten sehen. Ich hoffe, dieser Artikel kann als Ausgangspunkt dienen.