1. Pendahuluan
Lingkungan menjalankan skrip sisi server sederhana dan mudah digunakan, tidak memerlukan kompilasi dan koneksi, skrip dapat dijalankan langsung di sisi server, dan mendukung multi-pengguna dan multi-utas, dan telah banyak digunakan dalam pengembangan Web. Komponen sisi server berbeda dengan komponen sisi klien. Komponen sisi klien ditransmisikan melalui jaringan, mengandalkan HTML untuk berfungsi, dan hanya tersedia di IE. Namun komponen sisi server berjalan di sisi server dan melakukan berbagai operasi di server. Oleh karena itu, semua browser dapat menikmatinya, dan ini bergantung pada server, bukan browser. Namun, karena skrip ASP dalam format teks biasa, pelaku kejahatan dapat dengan mudah melihat konten halaman yang seharusnya tidak mereka lihat melalui kode sumber. Oleh karena itu, melindungi kode sumber ASP sangatlah penting. Mengenkapsulasi kode ASP ke dalam DLL tidak hanya mempercepat eksekusi kode ASP, tetapi juga melindungi kode aslinya. Ketika IIS diminta untuk menjalankan program ASP, pertama-tama IIS akan menemukan kode di antara tag dalam file ASP dan mengeksekusinya (bisa juga berupa kode di antaranya). Jika program ASP ini telah dipanggil sebelumnya, maka program yang telah dikompilasi tersebut akan digunakan di memori untuk mengembalikan kode HTML kepada pengguna. Jika tidak, maka program tersebut akan dikompilasi ulang. Ini sangat menghemat sumber daya server.
2. Metode implementasi
Jalankan VB Anda dan pilih ikon ActiveX. Ikon ini dapat ditemukan di proyek baru! VB akan memberikan nama proyek default (proyek1) dan nama kelas (kelas1). Sebelum memulai, harap konfirmasi terlebih dahulu bahwa kami memiliki Perpustakaan Microsoft ActiveX Data Object 2.0, yang sangat berguna dalam program kami. Pilih "Project" dari menu, lalu pilih "Reference" disana, akan muncul jendela "Reference", pilih Microsoft ActiveX Data Object 2.0 Library.
Sekarang kita memiliki proyek kita sendiri (proyek1) dan nama kelas (kelas1). Kami akan menggunakan nama mereka untuk merujuk ke komponen ini dalam kode ASP di masa depan. Di ASP kami mengutipnya seperti ini, sebagai berikut:
Set ObjReference = Server.CreateObject("ProjectName.ClassName")
Untuk menggunakan metode ASP di kelas, Anda harus menulis fungsi inisialisasi dan terminasi di kelas ini. Masukkan kode berikut: pada daftar program
Sub Class_Initialize() Pribadi dan Sub Class_Terminate() Pribadi di Class1.cls
membuat fungsi utama dalam kode ASP menjadi pustaka tautan dinamis (.dll), menyembunyikan sebagian kode sumber ASP. Misalnya: kode yang dimasukkan di Global.bas dan Class1.cls dalam daftar program (fungsi utama kode adalah untuk mengambil catatan dalam database dan menampilkannya).
Pilih File → Hasilkan article.dll → Pilih direktori untuk menyimpan di menu drop-down VB. Temukan article.dll dan salin ke folder system32 pada disk sistem. Langkah terakhir adalah mendaftarkan file DLL. Pilih Jalankan di menu Mulai dan masukkan regsvr32 c:winntsystem32article.dll.
3.
Kode dalam daftar program Global.bas:
ObjContext Publik Sebagai ObjectContext
Aplikasi Publik Sebagai ASPTypeLibrary.Aplikasi
Server Publik Sebagai ASPTypeLibrary.Server
Sesi Publik Sebagai ASPTypeLibrary.Sesi
Respon Publik Sebagai ASPTypeLibrary.Respon
Permintaan Publik Sebagai ASPTypeLibrary.Request
Kode di Class1.cls:
Sub Pribadi Class_Initialize()
Pada Kesalahan Lanjutkan
Set Berikutnya objContext = GetObjectContext
Set Aplikasi = objContext.Item("Application")
Set Server = objContext.Item("Server")
Setel Sesi = objContext.Item("Session")
Setel Permintaan = objContext .Item("Request")
Tetapkan Respon = objContext.Item("Respon")
End Sub
Sub Pribadi Class_Terminate()
Saat Error Lanjutkan
Set Berikutnya Aplikasi = Tidak Ada
yang Diatur Server = Tidak Ada
yang Diatur Sesi = Tidak Ada
yang Diatur Permintaan = Tidak Ada
yang Diatur Response = Tidak Ada
yang Diatur objContext = Tidak Ada yang
Berakhir Sub
Sub Publik AspClassInit()
Pada Kesalahan 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 = "pilih * dari Urutan artikel berdasarkan ArticleID desc"
rs.Open sql, conn, 1, 1
Response.Write "<html> " & vbCrLf
Respon.Tulis "<head>" & vbCrLf
Respon.Tulis "<meta http-equiv=""Jenis Konten"" content=""teks/html; charset=gb2312"">" & vbCrLf
Respon.Tulis "<title>Sistem Manajemen Artikel-CSSTUDIO</title>" & vbCrLf
Respon.Tulis "</head>" & vbCrLf
Respon.Tulis "<body bgcolor=""#FFFFFF"" topmargin=""0"">" & vbCrLf
Respon.Tulis "<lebar tabel=""100%"" border=""0"" cellpadding=""2"" Cellspacing=""0"">" & vbCrLf
Respon.Tulis " <tr>" & vbCrLf
Respon.Tulis " <td width=""742"" height=""20"">Judul artikel</td>" & vbCrLf
Respon.Tulis " <td width=""90"">Klik</td>" & vbCrLf
Respon.Tulis " <td width=""145"">Tambahkan Tanggal</td>" & vbCrLf
Respon.Tulis " </tr>" & vbCrLf
Respon.Tulis "</table>" & vbCrLf
Sedangkan Bukan rs.EOF Dan Baris < rs.PageSize
Respon.Tulis "<lebar tabel=""100%"" border=""0"" Cellspacing=""0"" cellpadding=""0"">" & vbCrLf
Respon.Tulis " <tr>" & vbCrLf
Respon.Tulis " <td width=""747"" height=""20"">☆<a href=""view.asp?id="
Respon.Tulis rs("ArticleID")
Respon.Tulis """>" & vbCrLf
Tanggapan.Tulis " "
Respon.Tulis rs("Judul")
Respon.Tulis "</a></td>" & vbCrLf
Respon.Tulis " <td width=""94"">"
Respon.Tulis rs("klik")
Respon.Tulis "</td>" & vbCrLf
Respon.Tulis " <td width=""148"">"
Respon.Tulis rs("Tambahkan tanggal")
Respon.Tulis "</td>" & vbCrLf
Respon.Tulis " </tr>" & vbCrLf
Respon.Tulis "</table>" & vbCrLf
rs.MoveNext
Pergi ke
Respon.Tulis "</body>" & vbCrLf
Response.Tulis "</html>" & vbCrLf
rs.Tutup
Set rs = Tidak ada
sambungan.Tutup
Set samb = Tidak Ada
Keluar Sub
Err:
Jika Err.Number = -13572468 Maka Keluar Sub
LanjutkanSub Akhir
Berikutnya
Kode di index.asp setelah menggunakan article.dll:
<%Dim AspTransBuilderObject
Set AspTransBuilderObject = Server.CreateObject("article.Class1")
AspTransBuilderObject.AspClassInit
Set AspTransBuilderObject = Tidak Ada%>
Kode di index.asp sebelum menggunakan article.dll:
<% Set conn=Server.CreateObject("ADODB.Connection")
strcon = "Penyedia=Microsoft.Jet.OLEDB.4.0;" & _
"Sumber Data=" & Server.MapPath("Article.mdb")
samb.Buka strcon %>
<% Set rs = Server.CreateObject ("ADODB.Recordset")
sql="pilih * dari urutan Artikel berdasarkan ArticleID desc"
rs.Open sql, Conn,1,1 %>
<html>
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<title>Sistem Manajemen Artikel-CSSTUDIO</title>
</kepala>
<tubuh bgcolor="#FFFFFF" topmargin="0">
<lebar tabel="100%" border="0" cellpadding="2"
spasi sel="0">
<tr>
<td width="742" height="20">Judul artikel</td>
<td width="90">Klik</td>
<td width="145">Tambahkan tanggal</td>
</tr>
</tabel>
<% Meskipun Bukan Rs.Eof Dan Baris<Rs.PageSize %>
<lebar tabel="100%" border="0" spasi sel="0"
bantalan sel="0">
<tr>
<td width="747" height="20">☆<a href="view.asp?id=<%
= rs("IDArtikel") %>">
<% =rs("judul") %></a></td>
<td lebar="94"><% = rs("klik") %></td>
<td width="148"><% = rs("Tanggal ditambahkan") %></td>
</tr>
</tabel>
<% Rs.MoveNext
Pergi %>
</tubuh>
</html>
<% rs.tutup
atur rs=tidak ada
samb.tutup
setel samb=tidak ada %>
4. Kesimpulan
Karena kode-kode ini dijalankan di sisi server, klien tidak perlu menginstal apa pun. Ini hanyalah contoh kecil dari apa yang dapat dicapai dengan ActiveX DLL. Anda dapat menulis komponen Anda sendiri yang lebih besar, dan Anda juga dapat menggunakan banyak kontrol di VB. Mari gunakan komponen untuk memperluas fungsionalitas program kita! Saya juga berharap dapat melihat lebih banyak komponen dari orang-orang Tiongkok. Saya harap artikel ini dapat menjadi titik awal.