1. Introducción
El entorno de ejecución de scripts del lado del servidor es simple y fácil de usar, no requiere compilación ni conexión, los scripts se pueden ejecutar directamente en el lado del servidor, admite múltiples usuarios y subprocesos y se ha utilizado ampliamente. en desarrollo web. Los componentes del lado del servidor son diferentes de los componentes del lado del cliente. Los componentes del lado del cliente se transmiten a través de la red, dependen de HTML para funcionar y solo están disponibles en IE. Pero el componente del lado del servidor se ejecuta en el lado del servidor y realiza varias operaciones en el servidor. Por lo tanto, todos los navegadores pueden disfrutarlo y depende del servidor y no del navegador. Sin embargo, debido a que los scripts ASP están en formato de texto plano, los actores malintencionados pueden ver fácilmente el contenido de la página que no deberían ver a través del código fuente. Por tanto, proteger el código fuente ASP es muy importante. Encapsular código ASP en DLL no solo acelera la ejecución del código ASP, sino que también protege el código original. Cuando se solicita a IIS que ejecute un programa ASP, primero encontrará el código entre las etiquetas en el archivo ASP y lo ejecutará (también puede ser el código entre). Si este programa ASP ha sido llamado antes, utilizará el programa compilado en la memoria para devolver el código HTML al usuario. Si no, lo volverá a compilar. Esto ahorra enormemente los recursos del servidor.
2. Método de implementación
Inicie su VB y seleccione el ícono ActiveX. ¡Este icono se puede encontrar en el nuevo proyecto! VB proporcionará un nombre de proyecto predeterminado (proyecto1) y un nombre de clase (clase1). Antes de comenzar, primero confirme que tenemos la biblioteca Microsoft ActiveX Data Object 2.0, que es muy útil en nuestro programa. Seleccione "Proyecto" en el menú, luego seleccione "Referencia" allí, aparecerá la ventana "Referencia", seleccione Biblioteca Microsoft ActiveX Data Object 2.0.
Ahora tenemos nuestro propio proyecto (proyecto1) y nombre de clase (clase1). Usaremos sus nombres para referirnos a este componente en el código ASP en el futuro. En ASP lo citamos así, de la siguiente manera:
Set ObjReference = Server.CreateObject("ProjectName.ClassName")
Para utilizar métodos ASP en una clase, debe escribir las funciones de inicialización y terminación en esta clase. Ingrese el siguiente código: en la lista de programas
Private Sub Class_Initialize() y Private Sub Class_Terminate() en Class1.cls
convierten las funciones clave en el código ASP en una biblioteca de vínculos dinámicos (.dll), ocultando parcialmente el código fuente ASP. Por ejemplo: el código ingresado en Global.bas y Class1.cls en el listado del programa (la función principal del código es recuperar registros en la base de datos y mostrarlos).
Seleccione Archivo → Generar artículo.dll → Seleccione el directorio para guardar en el menú desplegable de VB. Busque item.dll y cópielo en la carpeta system32 del disco del sistema. El último paso es registrar el archivo DLL. Seleccione Ejecutar en el menú Inicio e ingrese regsvr32 c:winntsystem32article.dll.
3.
Código en la lista de programas Global.bas:
ObjContext público como ObjectContext
Aplicación pública como ASPTypeLibrary.Application
Servidor público como ASPTypeLibrary.Server
Sesión pública como ASPTypeLibrary.Session
Respuesta pública como ASPTypeLibrary.Response
Solicitud pública como ASPTypeLibrary.Request
Código en Class1.cls:
Private Sub Class_Initialize()
En caso de error Reanudar siguiente
Establecer objContext = GetObjectContext
Establecer aplicación = objContext.Item("Aplicación")
Establecer servidor = objContext.Item("Servidor")
Establecer sesión = objContext.Item("Sesión")
Establecer solicitud = objContext .Item("Solicitud")
Establecer respuesta = objContext.Item("Respuesta")
End Sub
Private Sub Class_Terminate()
En caso de error Reanudar siguiente
Establecer aplicación = Nada
Establecer servidor = Nada
Establecer sesión = Nada
Establecer solicitud = Nada
Establecer respuesta = Nada
Establecer objContext = Nada
terminar Sub
Public Sub AspClassInit()
En caso de error GoTo Err
Set conn = Server.CreateObject("ADODB.Connection")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Artículo .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
Respuesta.Escribir "<head>" & vbCrLf
Respuesta.Escribir "<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">" & vbCrLf
Response.Write "<title>Sistema de gestión de artículos-CSSTUDIO</title>" & vbCrLf
Respuesta.Escribir "</head>" y vbCrLf
Respuesta.Escribir "<body bgcolor=""#FFFFFF"" topmargin=""0"">" & vbCrLf
Respuesta.Escribir "<table width=""100%"" border=""0"" cellpadding=""2"" cellpacing=""0"">" & vbCrLf
Respuesta.Escribir "<tr>" y vbCrLf
Response.Write " <td width=""742"" height=""20"">Título del artículo</td>" & vbCrLf
Respuesta.Escribir " <td width=""90"">Hacer clic</td>" & vbCrLf
Respuesta.Escribir " <td width=""145"">Agregar fecha</td>" & vbCrLf
Respuesta.Escribir " </tr>" & vbCrLf
Respuesta.Escribir "</table>" y vbCrLf
Mientras no sea rs.EOF y filas <rs.PageSize
Respuesta.Escribir "<table width=""100%"" border=""0"" cellpacing=""0"" cellpadding=""0"">" & vbCrLf
Respuesta.Escribir "<tr>" y vbCrLf
Respuesta.Escribir " <td width=""747"" height=""20"">☆<a href=""view.asp?id="
Response.Write rs("ArtículoID")
Respuesta.Escribir """>" & vbCrLf
Respuesta.Escribe " "
Respuesta.Escritores("Título")
Respuesta.Escribir "</a></td>" & vbCrLf
Respuesta.Escribir " <td width=""94"">"
Respuesta.Escribir rs("clic")
Respuesta.Escribir "</td>" y vbCrLf
Respuesta.Escribir " <td width=""148"">"
Response.Write rs("Agregar fecha")
Respuesta.Escribir "</td>" y vbCrLf
Respuesta.Escribir " </tr>" & vbCrLf
Respuesta.Escribir "</table>" y vbCrLf
rs.MoverSiguiente
Encaminarse a
Respuesta.Escribir "</body>" y vbCrLf
Response.Write "</html>" & vbCrLf
rs.Close
Set rs = Nada
conn.Close
Set conn = Nada
Salir Sub
Err:
Si Err.Number = -13572468 Entonces Salir Sub
Reanudar Siguiente
Fin Sub
Código en index.asp después de usar artículo.dll:
<%Dim AspTransBuilderObject
Establecer AspTransBuilderObject = Server.CreateObject("article.Class1")
AspTransBuilderObject.AspClassInit
Establecer AspTransBuilderObject = Nada%>
Código en index.asp antes de usar artículo.dll:
<% Establecer 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 Artículo orden por ArticleID desc"
rs.Open sql, Conn,1,1 %>
<html>
<cabeza>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<title>Sistema de gestión de artículos-CSSTUDIO</title>
</cabeza>
<cuerpo bgcolor="#FFFFFF" topmargin="0">
<table width="100%" border="0" cellpadding="2"
espacio entre celdas="0">
<tr>
<td width="742" height="20">Título del artículo</td>
<td width="90">Hacer clic</td>
<td width="145">Agregar fecha</td>
</tr>
</tabla>
<% mientras no sea Rs.Eof y filas<Rs.PageSize %>
<ancho de tabla="100%" borde="0" espacio entre celdas="0"
relleno de celda="0">
<tr>
<td width="747" height="20">☆<a href="view.asp?id=<%
= rs("ArtículoID") %>">
<% =rs("título") %></a></td>
<td ancho="94"><% = rs("clic") %></td>
<td width="148"><% = rs("Fecha de adición") %></td>
</tr>
</tabla>
<% Rs.MoverSiguiente
Venir %>
</cuerpo>
</html>
<% rs.cerrar
establecer rs = nada
con.cerrar
establecer conexión=nada %>
4. Conclusión
Debido a que estos códigos se ejecutan en el lado del servidor, el cliente no necesita instalar nada. Este es sólo un pequeño ejemplo de lo que se puede lograr con las DLL ActiveX. Puede escribir sus propios componentes más grandes y también puede usar muchos controles en VB. ¡Usemos componentes para ampliar la funcionalidad de nuestro programa! ¡También espero ver más componentes de nuestro pueblo chino! Espero que este artículo pueda servir como punto de partida.