Dalam seri yang diterbitkan, kami telah membahas dua objek ASP: objek aplikasi dan objek sesi, sehingga kami dapat mengakses koleksi, metode, properti, dan peristiwa yang disediakan oleh objek aplikasi dan objek sesi. Bagian ini akan mempelajari kedua objek ini dari perspektif pemrograman.
· Buat objek aplikasi ketika ASP DLL dimuat dan permintaan pertama ke halaman web ASP ditanggapi. Objek ini menyediakan tempat penyimpanan untuk menyimpan variabel dan objek yang tersedia untuk semua halaman web yang dibuka oleh semua pengunjung.
· Ketika pengunjung meminta halaman ASP dari situs untuk pertama kalinya, buat objek sesi untuknya dan tetap valid hingga periode batas waktu default (atau periode batas waktu yang ditentukan oleh skrip). Objek ini menyediakan tempat penyimpanan untuk menyimpan variabel dan objek yang hanya tersedia untuk halaman web yang dibuka oleh pengunjung selama aktivitas sesi.
hubungan
1. Gambaran Umum Anggota Objek Aplikasi ASP
Bagian ini menjelaskan pengumpulan, metode, dan peristiwa objek aplikasi (objek aplikasi tidak memiliki properti). Objek sesi (dengan properti) dijelaskan di bagian selanjutnya. Kemudian kami akan terus mengeksplorasi tugas -tugas yang dilakukan dengan objek -objek ini, menjelaskan secara lebih rinci bagaimana setiap anggota dari setiap objek bekerja.
1. Kumpulan objek aplikasi
Objek aplikasi menyediakan dua koleksi yang dapat digunakan untuk mengakses variabel dan objek yang disimpan di ruang aplikasi global. Koleksi dan deskripsi adalah sebagai berikut:
Pengumpulan dan deskripsi objek aplikasi tabel
| mengumpulkan | menjelaskan |
| Isi | Tidak ada set semua variabel (dan nilainya) yang disimpan dalam objek aplikasi yang didefinisikan menggunakan elemen <POMPERTIF>. Termasuk referensi ke varian array dan varian tipe objek instance |
| StaticObjects | Kumpulan semua variabel (dan nilainya) yang disimpan dalam objek aplikasi yang ditentukan menggunakan elemen <POMPEST> |
2. Metode objek aplikasi
Metode objek aplikasi memungkinkan menghapus nilai di ruang aplikasi global, mengendalikan akses bersamaan ke variabel dalam ruang itu. Metode dan instruksi ditampilkan dalam tabel berikut:
Metode dan deskripsi objek aplikasi tabel
| metode | menjelaskan |
| Content.remove (variable_name) | Hapus variabel bernama variable_name dari koleksi application.content |
| Isi.removeall () | Hapus semua variabel dari Application.Content Collection |
| Kunci() | Kunci objek aplikasi sehingga hanya halaman ASP saat ini yang dapat mengakses konten. Digunakan untuk memastikan bahwa operasi bersamaan dilakukan dengan metode yang memungkinkan dua pengguna membaca dan memodifikasi nilai secara bersamaan tidak merusak konten |
| Membuka kunci() | Buka kunci halaman web ASP pada objek aplikasi |
Perhatikan bahwa variabel tidak dapat dihapus dari koleksi Application.StaticObjects selama runtime.
3. Peristiwa objek aplikasi
Objek aplikasi menyediakan dua peristiwa yang dipicu saat dimulai dan berakhir, seperti yang ditunjukkan pada tabel berikut:
Acara dan Deskripsi Objek Aplikasi Tabel
| peristiwa | menjelaskan |
| Mulai | Dipicu ketika ASP dimulai, sebelum pengguna meminta halaman web untuk dieksekusi dan sebelum pengguna membuat objek sesi. Digunakan untuk menginisialisasi variabel, membuat objek, atau menjalankan kode lain |
| Onend | Dipicu saat aplikasi ASP berakhir. Terjadi setelah sesi pengguna terakhir berakhir dan semua kode dalam acara Onend dari sesi itu telah dieksekusi. Di ujungnya, semua variabel yang ada dalam aplikasi dibatalkan |
Ikhtisar Anggota Objek Sesi ASP
Bagian ini menguraikan semua anggota objek sesi.
1. Koleksi objek sesi
Objek sesi menyediakan dua set yang dapat digunakan untuk mengakses variabel dan objek yang disimpan di ruang sesi lokal pengguna. Koleksi dan deskripsi ini ditampilkan dalam tabel berikut:
Set dan deskripsi objek sesi tabel
| mengumpulkan | menjelaskan |
| Isi | Kumpulan semua variabel dan nilainya yang disimpan dalam objek sesi khusus ini, dan variabel dan nilai -nilai ini tidak didefinisikan menggunakan elemen <POBPEN>. Termasuk referensi ke varian array dan varian tipe objek instance |
| StaticObjects | Koleksi semua variabel yang disimpan dalam objek sesi ini ditentukan dengan menggunakan elemen <POMPERTIF> |
2. Karakteristik objek sesi
Objek sesi menyediakan empat properti. Properti dan deskripsi ini ditampilkan dalam tabel berikut:
Tabel 3-7 Properti dan Deskripsi Objek Sesi
| milik | menjelaskan |
| Codepage | Baca/Tulis. Bilangan bulat. Menentukan halaman kode untuk menampilkan konten halaman di browser. Halaman kode adalah nilai numerik dari set karakter, dan halaman kode yang berbeda dapat digunakan dalam berbagai bahasa dan tempat. Misalnya, Kode ANSI Halaman 1252 digunakan dalam bahasa Inggris Amerika dan sebagian besar bahasa Eropa. Kode Halaman 932 digunakan untuk karakter Jepang |
| LCID | Baca/Tulis. Bilangan bulat. Menentukan ID Area Halaman (LCID) yang dikirim ke browser. LCID adalah singkatan standar internasional yang secara unik mengidentifikasi suatu wilayah. LCID juga dapat digunakan dalam format dan pernyataan lainnya selama ada parameter LCID opsional. LCID juga dapat diatur dalam instruksi pemrosesan ASP <%& Hellip;%> dan diutamakan daripada pengaturan dalam atribut LCID sesi. Bab ini memberikan daftar instruksi pemrosesan ASP nanti |
| Sessionid | Hanya baca. Bentuk panjang. Mengembalikan pengidentifikasi sesi untuk sesi ini, yang dihasilkan oleh server saat sesi dibuat. Hanya unik selama masa hidup objek aplikasi induk, sehingga dapat digunakan kembali saat aplikasi baru dimulai |
| Batas waktu | Baca/Tulis. Bilangan bulat. Tentukan periode batas waktu dalam hitungan menit untuk sesi ini. Jika pengguna tidak menyegarkan atau meminta halaman web selama periode batas waktu, sesi berakhir. Anda dapat memodifikasinya sesuai kebutuhan di setiap halaman web. Nilai default adalah 10 menit. Waktu ini harus lebih pendek di situs dengan penggunaan tinggi |
3. Metode objek sesi
Objek sesi memungkinkan penghapusan nilai yang ditentukan dari ruang sesi tingkat pengguna dan mengakhiri sesi sesuai kebutuhan. Metode dan deskripsi objek seesi ditunjukkan pada tabel berikut:
Metode dan deskripsi objek sesi tabel
| metode | menjelaskan |
| Content.remove (variable_name) | Hapus variabel bernama variable_name dari sesi. Koleksi konten |
| Isi.removeall () | Hapus semua variabel dari sesi. Koleksi Konten |
| Meninggalkan() | Ketika eksekusi halaman web selesai, sesi pengguna saat ini berakhir dan objek sesi saat ini tidak berdokumen. Tetapi bahkan setelah metode ini dipanggil, variabel sesi saat ini di halaman masih dapat diakses. Ketika pengguna meminta halaman berikutnya, sesi baru akan dimulai dan objek sesi baru akan dibuat (jika ada) Perhatikan bahwa variabel tidak dapat dihapus dari koleksi sesi. StaticObjects selama runtime. |
4. Acara objek sesi
Objek sesi menyediakan dua acara yang dipicu pada saat startup dan akhir, seperti yang ditunjukkan pada Tabel 3-9:
Tabel 3-9 Acara dan Deskripsi Objek Sesi
| peristiwa | menjelaskan |
| Mulai | Dipicu ketika sesi pengguna ASP dimulai, sebelum halaman Web yang diminta pengguna dijalankan. Digunakan untuk menginisialisasi variabel, membuat objek, atau menjalankan kode lain. |
| Onend | Dipicu saat sesi pengguna ASP berakhir. Mulai dari permintaan halaman terakhir pengguna ke aplikasi, acara dipicu jika periode waktu tunggu sesi yang telah ditentukan telah terlampaui. Saat sesi berakhir, batalkan semua variabel di sesi itu. Acara ini juga dipicu saat menggunakan metode pengabaian untuk mengakhiri sesi pengguna ASP dalam kode |
Acara Menggunakan Aplikasi dan Sesi
Objek aplikasi dan sesi ASP mencerminkan acara-acara yang tidak dimiliki oleh objek bawaan ASP lainnya. Namun, seperti yang terlihat pada tabel anggota objek sebelumnya, ini adalah peristiwa yang terkait dengan sesi ASP dan pekerjaan aplikasi.
1. Penangan acara untuk aplikasi dan sesi
Setiap kali aplikasi atau sesi dimulai atau berakhir, ASP memicu acara. Peristiwa ini dapat dideteksi dan dijawab dengan menulis kode skrip biasa dalam file khusus, yang disebut global.asa, yang terletak di direktori root aplikasi (untuk situs web default adalah /inetpub /wwwroot direktori, atau sebagai folder yang didefinisikan sebagai a aplikasi nyata). File ini dapat berisi satu atau lebih elemen <pesope> HTML yang digunakan untuk membuat instance komponen yang akan digunakan dalam aplikasi atau sesi pengguna.
Kode berikut adalah contoh file global.asa. Kami hanya fokus pada elemen <POMPERTIF> dan baris kode yang dimulai dengan kata kunci yang ditetapkan:
| <!- Deklarasikan contoh komponen aspcounter dengan lingkup level aplikasi //-> < ID objek = aspcounter runat = server scope = aplikasi Progid = mswc.countters > </objek > <!- Deklarasikan contoh komponen ASPContentLimk dengan SKOPE Tingkat Sesi //-> < ID objek = aspcontentlink runat = server scope = sesi Progid = mswc.nextlink> </objek > < bahasa skrip = vbscript runat = server > Sub application_onstart () 'Buat instance dari ADO Recordset dengan ruang lingkup level aplikasi Setel Aplikasi (Adoconnection) = Server.CreateObject (AdodB.Connection) Dim Vararray (3) 'Buat array varian dan isi Vararray (0) = ini adalah a VaraRray (1) = varian array Vararray (2) = disimpan di VARRRAY (3) = Objek Aplikasi Aplikasi (varian_array) = vararray'store di aplikasi Aplikasi (start_time) = cstr (sekarang) 'simpan tanggal/waktu sebagai string Aplikasi (Visit_Count) = 0 'Setel variabel penghitung ke nol Akhir sub Sub application_onend () Atur Aplikasi (Adoconnection) = Tidak Ada Akhir sub Sub Sesson_onstart () 'Buat instance komponen adrotator dengan ruang lingkup tingkat sesi Set Sesi (AspadRotator) = Server.CreateObject (MSWC.Adrotator) Redup varaRray (3) 'Buat varian arry dan isi Vararray (0) = ini adalah a VaraRray (1) = varian array Vararray (2) = disimpan di VARRRAY (3) = Objek Sesi Sesi (varian_array) = vararray 'menyimpannya di sesi Sesi (start_time) = cstr (sekarang) 'simpan tanggal/waktu sebagai string 'Kami dapat mengakses konten permintaan dan respons di session_onstart 'Event Handler untuk halaman yang memulai sesi. 'Tempatkan konteks halaman ASP tersedia seperti ini. 'Sebagai contoh, kita bisa mendapatkan alamat IP pengguna: Sesi (your_ip_address) = request.serverVariable (remote_addr) Application.lock Intvisits = Aplikasi (Visit_Count) +1 Aplikasi (Visit_Count) = Intvisits Application.unlock Akhir sub Sub session_onend () Set Sesi (Aspadrotator) = Tidak Ada Akhir sub </skrip > |
Karena file global.asa ini digunakan di halaman contoh dalam bab ini, akan perlu untuk meletakkan file di direktori root situs web, atau di direktori yang dikonfigurasi sebagai aplikasi virtual, dan menyertakan direktori file sampel lainnya .
Nilai Baca dan Simpan
Perhatikan contoh di atas cara membaca variabel aplikasi dan sesi, dengan cara yang sama seperti yang Anda ambil dalam kumpulan objek permintaan dan respons. Atur nilai variabel -variabel ini:
| Aplikasi (variable_name) = variable_value Aplikasi (variable_name) = variable_array_variable_name Setel Application (variable_name) = Object_reference |
Dapatkan nilai -nilai variabel ini:
| variable_value = aplikasi (variable_name) varian_array_variable = aplikasi (variable_name) Set Object_Reference = Application (variable_name) |
Tentu saja, pendekatan yang sama dapat diambil untuk objek sesi.
Anda dapat melihat cara mengunci dan membuka kunci objek aplikasi saat diakses dari prosesor acara sesi; Ini tidak diperlukan saat mengakses nilai dalam objek aplikasi menggunakan kode dalam acara aplikasi. Ini karena dalam aplikasi apa pun hanya ada satu contoh objek aplikasi, dan kode event handler hanya dilakukan ketika tidak ada sesi pengguna aktif.
Anda juga dapat melihat bagaimana penghitung sesi pengguna dasar diimplementasikan. Berikut adalah variabel level aplikasi Visit_count, yang secara otomatis meningkat ketika sesi baru dimulai. Secara umum, tidak terbatas untuk hanya menyimpan nilai ke objek aplikasi atau sesi. Misalnya, situs web pengembang web memiliki file global.ASA yang sesuai di http://webdev.wrox.co.uk. Saat sesi baru dimulai, file ditulis ke database yang sesuai di server diperoleh dari koleksi permintaan. Ini memberikan metode dasar untuk menghitung jumlah pengunjung dan mengumpulkan beberapa informasi dasar tentang pengunjung.