1. Introduction
L'environnement d'exécution de scripts côté serveur est simple et facile à utiliser, ne nécessite pas de compilation ni de connexion, les scripts peuvent être exécutés directement côté serveur, prend en charge plusieurs utilisateurs et multithreads et a été largement utilisé. en développement Web. Les composants côté serveur sont différents des composants côté client. Les composants côté client sont transmis sur le réseau, s'appuient sur HTML pour fonctionner et ne sont disponibles que sur IE. Mais le composant côté serveur s’exécute côté serveur et effectue diverses opérations sur le serveur. Par conséquent, tous les navigateurs peuvent en profiter, et cela repose sur le serveur plutôt que sur le navigateur. Cependant, comme les scripts ASP sont au format texte brut, les acteurs malveillants peuvent facilement voir le contenu des pages qu'ils ne devraient pas voir via le code source. Par conséquent, la protection du code source ASP est très importante. L'encapsulation du code ASP dans une DLL accélère non seulement l'exécution du code ASP, mais protège également le code d'origine. Lorsqu'il est demandé à IIS d'exécuter un programme ASP, il trouvera d'abord le code entre les balises dans le fichier ASP et l'exécutera (il peut également s'agir du code entre). Si ce programme ASP a déjà été appelé, alors il utilisera le programme compilé en mémoire pour renvoyer le code HTML à l'utilisateur. Sinon, il sera recompilé. Cela économise considérablement les ressources du serveur.
2. Méthode d'implémentation
Démarrez votre VB et sélectionnez l'icône ActiveX. Cette icône peut être trouvée dans le nouveau projet ! VB fournira un nom de projet par défaut (project1) et un nom de classe (class1). Avant de commencer, veuillez d'abord confirmer que nous disposons de la bibliothèque Microsoft ActiveX Data Object 2.0, qui est très utile dans notre programme. Sélectionnez "Projet" dans le menu, puis sélectionnez "Référence", la fenêtre "Référence" apparaîtra, sélectionnez Bibliothèque Microsoft ActiveX Data Object 2.0.
Nous avons maintenant notre propre projet (project1) et notre propre nom de classe (class1). Nous utiliserons leurs noms pour faire référence à ce composant dans le code ASP à l'avenir. En ASP, nous le citons ainsi :
Set ObjReference = Server.CreateObject("ProjectName.ClassName")
Pour utiliser les méthodes ASP dans une classe, vous devez écrire les fonctions d'initialisation et de terminaison dans cette classe. Entrez le code suivant : dans la liste des programmes
Private Sub Class_Initialize() et Private Sub Class_Terminate() dans Class1.cls
transforment les fonctions clés du code ASP en une bibliothèque de liens dynamiques (.dll), masquant partiellement le code source ASP. Par exemple : le code saisi dans Global.bas et Class1.cls dans le listing des programmes (la fonction principale du code est de récupérer les enregistrements dans la base de données et de les afficher).
Sélectionnez Fichier → Générer article.dll → Sélectionnez le répertoire à enregistrer dans le menu déroulant de VB. Recherchez article.dll et copiez-le dans le dossier system32 du disque système. La dernière étape consiste à enregistrer le fichier DLL. Sélectionnez Exécuter dans le menu Démarrer et entrez regsvr32 c:winntsystem32article.dll.
3.
Coder dans la liste de programmes Global.bas :
ObjContext public en tant qu'ObjectContext
Application publique en tant que ASPTypeLibrary.Application
Serveur public en tant que ASPTypeLibrary.Server
Session publique en tant que ASPTypeLibrary.Session
Réponse publique en tant que ASPTypeLibrary.Response
Requête publique en tant que ASPTypeLibrary.Request
Code dans Class1.cls :
Private Sub Class_Initialize()
En cas d'erreur Reprendre ensuite
Set objContext = GetObjectContext
Set Application = objContext.Item("Application")
Set Server = objContext.Item("Server")
Set Session = objContext.Item("Session")
Set Request = objContext .Item("Request")
Définir la réponse = objContext.Item("Response")
End Sub
Private Sub Class_Terminate()
En cas d'erreur Reprendre ensuite
Définir l'application = Rien
Définir le serveur = Rien
Définir la session = Rien
Définir la demande = Rien Définir
Réponse = Rien
Définir objContext = Rien
End Sub
Public Sub AspClassInit()
en cas d'erreur GoTo Err
Set conn = Server.CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;
" .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
Réponse.Écrivez "<head>" & vbCrLf
Response.Write "<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">" & vbCrLf
Response.Write "<title>Système de gestion d'articles-CSSTUDIO</title>" & vbCrLf
Réponse.Écrire "</head>" & vbCrLf
Réponse.Écrivez "<body bgcolor=""#FFFFFF"" topmargin=""0"">" & vbCrLf
Response.Write "<table width=""100%"" border=""0"" cellpadding=""2"" Cellpacing=""0"">" & vbCrLf
Réponse.Écrivez " <tr>" & vbCrLf
Response.Write " <td width=""742"" height=""20"">Titre de l'article</td>" & vbCrLf
Réponse.Écrire " <td width=""90"">Cliquez</td>" & vbCrLf
Response.Write " <td width=""145"">Ajouter une date</td>" & vbCrLf
Réponse.Écrire " </tr>" & vbCrLf
Réponse.Write "</table>" & vbCrLf
Bien que ce ne soit pas rs.EOF et les lignes <rs.PageSize
Response.Write "<table width=""100%"" border=""0"" Cellpacing=""0"" cellpadding=""0"">" & vbCrLf
Réponse.Écrivez " <tr>" & vbCrLf
Réponse.Écrire " <td width=""747"" height=""20"">☆<a href=""view.asp?id="
Réponse.Write rs("ArticleID")
Réponse.Écrire """>" & vbCrLf
Réponse.Écrivez " "
Réponse.Write rs("Titre")
Réponse.Écrire "</a></td>" & vbCrLf
Réponse.Écrire " <td width=""94"">"
Réponse.Write rs("clic")
Réponse.Écrire "</td>" & vbCrLf
Réponse.Écrire " <td width=""148"">"
Response.Write rs("Ajouter une date")
Réponse.Écrire "</td>" & vbCrLf
Réponse.Écrire " </tr>" & vbCrLf
Réponse.Write "</table>" & vbCrLf
rs.MoveNext
Wende
Réponse.Write "</body>" & vbCrLf
Response.Write "</html>" & vbCrLf
rs.Close
Set rs = Rien
conn.Close
Set conn = Rien
Exit Sub
Err :
Si Err.Number = -13572468, alors quitter le sous-
reprendre
la fin suivante du sous-marin
Codez dans index.asp après avoir utilisé article.dll :
<%Dim AspTransBuilderObject
Set AspTransBuilderObject = Server.CreateObject("article.Class1")
AspTransBuilderObject.AspClassInit
Set AspTransBuilderObject = Nothing%>
Codez dans index.asp avant d’utiliser 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>
<tête>
<méta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Système de gestion d'articles-CSSTUDIO</title>
</tête>
<body bgcolor="#FFFFFF" topmargin="0">
<table width="100%" border="0" cellpadding="2"
espacement des cellules="0">
<tr>
<td width="742" height="20">Titre de l'article</td>
<td width="90">Cliquez</td>
<td width="145">Ajouter une date</td>
</tr>
</table>
<% Tandis que Pas Rs.Eof Et Lignes<Rs.PageSize %>
<table width="100%" border="0" cellpacing="0"
cellpadding="0">
<tr>
<td width="747" height="20">☆<a href="view.asp?id=<%
= rs("IDArticle") %>">
<% =rs("titre") %></a></td>
<td width="94"><% = rs("clic") %></td>
<td width="148"><% = rs("Date ajoutée") %></td>
</tr>
</table>
<% Rs.MoveSuivant
Allez %>
</corps>
</html>
<% rs.fermer
définir rs = rien
connexion.fermer
définir conn = rien %>
4. Conclusion
Comme ces codes s'exécutent côté serveur, le client n'a rien à installer. Ceci n'est qu'un petit exemple de ce qui peut être réalisé avec les DLL ActiveX. Vous pouvez écrire vos propres composants plus grands et vous pouvez également utiliser de nombreux contrôles dans VB. Utilisons des composants pour étendre les fonctionnalités de notre programme. J'espère également voir plus de composants de notre peuple chinois ! J'espère que cet article pourra servir de point de départ.