1. Pengetahuan dasar ASP
1. ASP adalah singkatan dari halaman server aktif, lokal skrip yang ditafsirkan;
2. ASP mengharuskan sistem operasi Windows untuk berjalan, dan PWS perlu diinstal di bawah 9x;
3. Tag skrip untuk ASP dan JSP adalah <%%>, sedangkan untuk PHP, Anda dapat mengaturnya ke banyak jenis;
4. Simbol komentar ASP adalah ';
5. Gunakan add-on untuk memperluas fungsi ASP.
dari www.knowsky.com
contoh:
HelloWorld_1.asp
<%= Halo, World%>
Memengaruhi:
Halo, dunia
Helloworld_2.asp
<%
untuk i = 1 hingga 10
Response.write Hello, World
Berikutnya
%>
Memengaruhi:
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
Halo, dunia
CATATAN: ASP tidak sensitif;
2. Penggunaan objek bawaan ASP:
Setiap objek bawaan ASP di bawah ini dapat digunakan tanpa harus secara khusus mendeklarasikannya dalam skrip ASP.
1. Meminta:
Definisi: Objek ini dapat digunakan untuk mengakses informasi permintaan yang dikirim dari browser ke server.
mengatur:
Cookie: Nilai yang berisi cookie browser
Formulir: Berisi nilai dalam bidang bentuk html
QueryString: Nilai yang berisi string kueri
ServerVariables: berisi nilai -nilai dalam variabel header dan lingkungan
contoh:
request_url.asp
<%
'Dapatkan input pengguna dan simpan variabel
user_id = request.queryString (user_id)
user_name = request.queryString (user_name)
'Menilai apakah input pengguna sudah benar
Jika user_id = lalu
response.write user_id nol, silakan periksa
respons.end
akhiri jika
Jika user_name = lalu
response.write user_name is null, silakan periksa
respons.end
akhiri jika
'Variabel cetak
response.write user_id & <br>
response.write user_name
%>
Memengaruhi:
Saat mengakses http://10.1.43.238/course/request_url.asp?user_name=j:
User_id nol, silakan periksa
Saat mengakses http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id:
my_id
J
Berpikir: Bagaimana variabel dilewatkan dalam URL dan diperoleh dengan halaman ASP?
request_form.htm
<Tipe Gaya = Teks/CSS>
<!-
.input {latar belakang-warna: #FFFFF; : Georgia;
A: Link {Color: #1B629C;
A: Hover {Color: #FF6600;
A: Dikunjungi {Text-Decoration: None}
->
</tyle>
<senter>
<Form name = course action = request_form.asp Method = post>
User_id: <input type = name teks = user_id maxlength = 20 class = input> <br> <br>
User_name: <input type = name teks = user_name maxlength = 30 class = input>
</form>
<br> <br>
<a href = javascript: document.course.submit ();> kirim </a>
</penter>
request_form.asp
<%
'Dapatkan input pengguna dan simpan variabel
user_id = request.form (user_id)
user_name = request.form (user_name)
'Menilai apakah input pengguna sudah benar
Jika user_id = lalu
response.write user_id nol, silakan periksa
respons.end
akhiri jika
Jika user_name = lalu
response.write user_name is null, silakan periksa
respons.end
akhiri jika
'Variabel cetak
response.write user_id & <br>
response.write user_name
%>
Catatan: Apa perbedaan antara tindakan yang menunjuk formulir, request_form.asp dan request_url.asp dalam kode sumber?
2. Tanggapan:
Definisi: Digunakan untuk mengirim kembali informasi ke browser, dan menggunakan objek ini untuk mengirim output dari skrip ke browser.
mengatur:
Cookie: Tambahkan cookie ke browser Anda
metode:
Akhir: Akhiri pemrosesan skrip
Redirect: Boot browser ke halaman baru
Tulis: Kirim string ke browser
milik:
Buffer: cache asp
Cachecontrol: Cache dikendalikan oleh server proxy
ContentType: Menentukan jenis konten dari respons
Kedaluwarsa: Browser menggunakan waktu relatif untuk mengontrol cache
Expiresabsolute: Browser menggunakan waktu absolut untuk mengontrol cache
contoh:
response_redirect.asp
<%
'Pergi ke Google dan lihatlah
response.redirect http://www2.google.com
respons.end
%>
response_cookies.asp
<%
'Atur dan baca cookie
response.cookies (time_now) = now ()
response.write request.cookies (time_now)
%>
Memengaruhi:
Saat mengakses http://10.1.43.238/course/response_cookies.asp:
2002-9-1 16:20:40
response_buffer.asp
<%'response.buffer = true%>
<a href = a> a </a>
<%response.redirect request_form.htm%>
Memengaruhi:
①. Saat fungsi buffering IIS dimatikan, terjadi kesalahan saat mengakses halaman ini
A
Balas kesalahan objek 'ASP 0156: 80004005'
Header salah
/course/response_buffer.asp, baris 3
Header HTTP telah ditulis ke browser klien. Setiap modifikasi header HTTP harus sebelum konten halaman ditulis.
②. Ketika fungsi buffering IIS dimatikan dan komentar pada baris pertama file dihapus, pengalihan halaman berhasil
③. Ketika fungsi buffering IIS dihidupkan, pengalihan halaman akan berhasil terlepas dari apakah komentar pada baris pertama file dihapus atau tidak,
3. Server
Definisi: Fungsi entitas yang berbeda dapat digunakan di server, seperti mengendalikan waktu eksekusi skrip sebelum waktu tiba. Dapat juga digunakan untuk membuat objek lain.
metode:
CreateObject: Buat instance objek
Htmlencode: konversi string untuk menggunakan karakter html khusus
Mappath: Konversi jalur virtual menjadi jalur fisik
Urlencode: Konversi string menjadi URL-encoded
ScriptTimeout: Jumlah detik skrip diizinkan untuk dijalankan sebelum penghentian
contoh:
server_htmlencode.asp
<%
'HTML Encode
response.write server.htmlencode (ATIME_NOW)
%>
Memengaruhi:
ATIME_NOW
Saat melihat file sumber, itu muncul sebagai: atime_now
Berpikir: Mengapa tidak efek seperti ATIME_NOW? Ada apa dengan file sumbernya?
server_mappath.asp
<%
'Mappath
response.write server.mappath (server_mappath.asp)
%>
Memengaruhi:
G: /asp_www/test/course/server_mapath.asp
Berpikir: Bagaimana cara mendapatkan jalur aktual ke direktori root situs? Bagaimana cara mendapatkan jalur yang sebenarnya ke direktori?
server_urlencode.asp
<%
'URL Encode
response.write server.urlencode (a/time_now)
%>
Memengaruhi:
a%5cTime%5fnow
4. Aplikasi
Definisi: Digunakan untuk menyimpan dan membaca informasi aplikasi yang dibagikan oleh pengguna.
metode:
Kunci: Mencegah pengguna lain mengakses set aplikasi
Buka Kunci: Mengaktifkan pengguna lain untuk mengakses set aplikasi
peristiwa:
Onend: dipicu dengan mengakhiri server jaringan dan mengubah file global.asa
Onstart: dipicu oleh aplikasi pertama untuk halaman web di aplikasi
contoh:
application_counter.asp
<%
'Penghitung sederhana dibuat menggunakan aplikasi
Application.lock
Aplikasi (klik) = Aplikasi (klik) +1
Application.unlock
Response.write Anda adalah yang pertama & aplikasi (klik) & pengunjung situs ini!
response.write <br> <br> Anda dari & request.servaribles (remote_addr)
%>
Memengaruhi:
Anda adalah pengunjung pertama ke situs ini!
Anda berasal dari 10.1.43.238
Berpikir: Apa fungsi kunci dan buka kunci dalam contoh ini?
5. sidang
Definisi: Simpan dan baca informasi percakapan pengguna tertentu, seperti menyimpan informasi akses pengguna ke situs web, dan informasinya hilang setelah server restart.
metode:
Abandon: Setelah memproses halaman saat ini, akhiri sesi pengguna
milik:
Timeout: Durasi Sesi Pengguna (Menit)
peristiwa:
Onend: Waktu batas waktu sesi di luar, pengguna tidak lagi berlaku untuk halaman untuk memicu acara
Onstart: dipicu oleh aplikasi pertama pengguna untuk halaman web
contoh:
session_counter.asp
<%
'Penghitung sederhana yang dibuat menggunakan sesi
sesi (klik) = sesi (klik) +1
Response.write Anda adalah pengunjung pertama dari Situs & Sesi ini (Klik) &!
response.write <br> <br> Anda dari & request.servaribles (remote_addr)
%>
Memengaruhi:
Anda adalah pengunjung pertama ke situs ini!
Anda berasal dari 10.1.43.238
Berpikir: Karena sesi dan aplikasi dapat menghitung, apa perbedaan di antara mereka? Bagaimana cara mulai menghitung lagi jika Anda ingin mendapatkan lebih dari 100?
3. Gunakan ASP untuk mengoperasikan database:
1. Perbedaan antara menghubungkan melalui ODBC atau OLE?
Sekarang ada dua cara untuk terhubung ke database. Di satu sisi, koneksi dapat dihasilkan menggunakan ODBC, yang kompatibel dengan database apa pun dengan drive ODBC (mis. Pada dasarnya semua database di pasaran);
Penyedia mana yang harus saya gunakan? Gunakan penyedia OLE DB asli jika memungkinkan, karena memberikan akses yang lebih efisien ke data. Microsoft secara bertahap mengganti standar ODBC dengan OLE DB dan hanya boleh menggunakan ODBC tanpa penyedia OLE DB asli.
⑴. Sambungkan ke SQL Server menggunakan ODBC:
①. Konfigurasikan ODBC
②. Kode Koneksi:
Conn_odbc.asp
<%
Set Conn = Server.CreateObject (AdodB.Connection)
'Conn.open dsn = course_dsn; uid = course_user; pwd = course_password; basis data = kursus
Conn.open course_dsn, course_user, course_password
%>
CATATAN: Saat mengkonfigurasi MyDSN, jika database default ditentukan sebagai kursus, kode di atas akan sama. Premis adalah bahwa Course_User memiliki izin operasional pada database ini).
⑵. Sambungkan ke SQL Server menggunakan OLE:
Conn_ole.asp
<%
Set Conn = Server.CreateObject (AdodB.Connection)
Conn.open penyedia = sqloledb; sumber data = 10.1.43.238.2433;
%>
2. Database Operasi: Koneksi dan Recordset
Gunakan Koneksi dan Recordset untuk mengoperasikan database, atau menggunakan koneksi hanya untuk mengoperasikan database.
contoh:
⑴. Gunakan Koneksi dan Recordset untuk mengoperasikan database bersama
use_db_1.asp
<%
Set Conn = Server.CreateObject (adodb.connection) 'Buat objek yang menghubungkan ke database
conn.open course_dsn, course_user, course_password 'Gunakan objek ini untuk terhubung ke database
Set RS = Server.CreateObject (AdodB.Recordset) 'Buat Objek Recordset
rs.open pilih * dari user_info, conn, basis data terbuka 1,1 'menggunakan objek set rekaman
Jika Rs.RecordCount> 0 maka ada catatan
response.write user_iduser_name <br>
untuk i = 1 ke rs.recordcount 'loop untuk membaca semua catatan
response.write rs (id) && rs (user_name) & <br>
'Bidang Rekaman Output ke Browser
rs.movenext 'pointer menggerakkan satu baris ke bawah
Jika rs.eof maka keluar untuk loop jika bagian bawah set rekaman tercapai
Berikutnya
akhiri jika
%>
Memengaruhi:
User_iduser_name
1ahyi
3test
⑵. Hanya gunakan koneksi untuk mengoperasikan database:
use_db_2.asp
<%
Set Conn = Server.CreateObject (adodb.connection) 'Buat objek yang menghubungkan ke database
conn.open course_dsn, course_user, course_password 'Gunakan objek ini untuk terhubung ke database
Conn.Execute Hapus dari user_info
%>
Memengaruhi:
Semua data dalam tabel user_info dihapus
Berpikir: Apakah ada perbedaan antara kedua metode? Dalam kesempatan apa mereka digunakan?
3. Bagaimana cara menggunakan transaksi, prosedur tersimpan, dan tampilan?
⑴. Menggunakan prosedur tersimpan
①. Tentukan prosedur tersimpan
Buat Prosedur [output_1]
@sid int output
SEBAGAI
set @sid = 2
Buat Prosedur [return_1]
(@user_name varchar (40),@kata sandi varchar (20))
SEBAGAI
Jika ada (pilih ID dari user_info di mana user_name =@user_name dan kata sandi =@kata sandi)
kembali 1
kalau tidak
kembali 0
Buat Prosedur [user_info_1]
(@user_name varchar (40),@kata sandi varchar (20))
SEBAGAI
Pilih ID dari user_info di mana user_name =@user_name dan kata sandi =@kata sandi
Buat Prosedur [user_info_2]
(@user_name varchar (40),@kata sandi varchar (20))
SEBAGAI
Atur XACT_ABORT ON
Mulailah transaksi
Hapus dari user_info di mana user_name =@user_name dan kata sandi =@kata sandi
Melakukan transaksi
Atur Xact_abort
Buat Prosedur [user_info_3] sebagai
Pilih * dari user_info
②. Dipanggil di ASP
use_proc.asp
<!-#include virtual =/adovbs.inc->
<%
Set Conn = Server.CreateObject (AdodB.Connection)
conn.open course_dsn, course_user, course_password
'Panggilan prosedur tersimpan dengan dua parameter input dan return record set menggunakan Recordset
'Buat Prosedur [user_info_1]
'(@user_name varchar (40),@kata sandi varchar (20))
'SEBAGAI
'Pilih ID dari user_info di mana user_name =@user_name dan kata sandi =@kata sandi
response.write Metode panggilan normal: <br>
Set RS = Server.CreateObject (ADODB.Recordset)
sql = user_info_1 '& request.queryString (user_name) &', '& request.queryString (kata sandi) &'
Rs.open SQL, Conn, 1,1
response.write rs (id) & <br>
rs.close
'Gunakan Recordset untuk memanggil prosedur tersimpan tanpa parameter input, return recordset, Anda dapat menggunakan RecordCount dan atribut lainnya
'Buat Prosedur [user_info_3] sebagai
'Pilih * dari user_info
response.write <br> Mengembalikan set rekaman, Anda dapat menggunakan RecordCount dan properti lainnya:
sql = exec user_info_3
Rs.open SQL, Conn, 1,1
untuk i = 1 hingga rs.recordcount
response.write <br> & rs (user_name)
rs.movenext
Berikutnya
rs.close
Setel RS = tidak ada
'Gunakan perintah untuk memanggil prosedur tersimpan dengan parameter output
'Buat Prosedur [output_1]
'@sid int output
'SEBAGAI
'Set @Sid = 2
response.write <br> <br> Memanggil prosedur tersimpan dengan parameter output: <br>
Setel cmd = server.CreateObject (adodb.command)
cmd.activeConnection = Conn
cmd.CommandText = output_1
cmd.parameters.Append cmd.createParameter (@Sid, Adinteger, AdParamOutput)
CMD (@SID) = 10
cmd.execute ()
BBB = CMD (@SID)
Response.write BBB & <br>
atur cmd = tidak ada
'Gunakan perintah untuk memanggil prosedur tersimpan dengan dua parameter input dan nilai pengembalian
'Buat Prosedur [return_1]
'(@user_name varchar (40))
'SEBAGAI
'Jika ada (pilih ID dari user_info di mana user_name =@user_name)
'Kembali 1
'kalau tidak
'Return 0
response.write <br> Memanggil prosedur tersimpan dengan dua parameter input dan nilai pengembalian: <br>
Setel cmd = server.CreateObject (adodb.command)
cmd.activeConnection = Conn
CMD.CommandType = ADCMDStoredProc
cmd.CommandText = return_1
cmd.parameters.Append cmd.createParameter (@return_value, adinteger, adparamreturnValue)
cmd.parameters.Append cmd.createParameter (@user_name, advarchar, adparaminput, 40)
cmd.parameters.Append cmd.createParameter (@password, advarchar, adparaminput, 20)
cmd (@user_name) = tuth
cmd (@password) = yyuyu
cmd.execute ()
RRR = CMD (@return_value)
Response.write RRR
atur cmd = tidak ada
Conn.Close
atur conn = tidak ada
%>
Memengaruhi:
Saat mengunjungi http://10.1.43.238/course/use_proc.asp?user_name=ahyi&password=tt, berikut ini muncul
Metode panggilan normal:
12
Kembali ke set rekaman, Anda dapat menggunakan RecordCount dan properti lainnya:
ahyi
Tet
tuth
Panggilan prosedur tersimpan dengan parameter output:
2
Hubungi prosedur tersimpan dengan dua parameter input dan nilai pengembalian:
1
Catatan: Jika tidak ada parameter dalam prosedur tersimpan, pernyataan SQL yang dipanggil secara langsung nama prosedur yang disimpan, dan satu parameter adalah parameter nama prosedur yang tersimpan. . Parameter n; .
⑵. Gunakan pemrosesan transaksi
①. Dukungan transaksi tertanam ASP
contoh:
use_transaction_1.asp
<%
'Menggunakan transaksi di ASP
Set Conn = Server.CreateObject (AdodB.Connection)
conn.open course_dsn, course_user, course_password
Conn.Begintrans'Start transaksi
sql = hapus dari user_info
Set RS = Server.CreateObject (ADODB.Recordset)
Rs.open SQL, Conn, 3,3
Jika Conn.Errors.Count> 0 lalu ada kesalahan
rollback Conn.rollbacktrans
Setel RS = tidak ada
Conn.Close
atur conn = tidak ada
Response.write Transaction gagal dan digulung kembali ke negara sebelum modifikasi!
respons.end
kalau tidak
Transaksi komit Conn.Committrans
Setel RS = tidak ada
Conn.Close
atur conn = tidak ada
Response. Tulis transaksi berhasil!
respons.end
akhiri jika
%>
②. Transaksi tingkat basis data
Saya. Buat prosedur tersimpan
Buat Prosedur [user_info_2]
(@user_name varchar (40),@kata sandi varchar (20))
SEBAGAI
Atur XACT_ABORT ON
Mulailah transaksi
Hapus dari user_info di mana user_name =@user_name dan kata sandi =@kata sandi
Melakukan transaksi
Atur Xact_abort
ii. Dipanggil di ASP
use_transaction_2.asp
<%
Set Conn = Server.CreateObject (AdodB.Connection)
conn.open course_dsn, course_user, course_password
sql = user_info_2 '& request.queryString (user_name) &', '& request.queryString (kata sandi) &'
Set RS = Server.CreateObject (ADODB.Recordset)
Rs.open SQL, Conn, 1,1
Setel RS = tidak ada
Conn.Close
atur conn = tidak ada
%>
Diskusi: Keuntungan dan kerugian dari kedua metode tersebut?
⑶. Menggunakan tampilan
Setelah mendefinisikan tampilan dalam database, gunakan tampilan di ASP seolah -olah menggunakan tabel
4. Contoh pagar database
db_page.asp
<%
pada kesalahan resume berikutnya
Set Conn = Server.CreateObject (adodb.connection) 'Buat objek yang menghubungkan ke database
conn.open course_dsn, course_user, course_password 'Gunakan objek ini untuk terhubung ke database
Set RS = Server.CreateObject (ADODB.Recordset)
SQL = SELECT * Dari User_info Order oleh ID Desc
Rs.open SQL, Conn, 1,1
Jika Rs.RecordCount> 0 maka ada catatan
rs.pagesize = 2'a maksimum 2 catatan ditampilkan per halaman
'Dapatkan halaman yang ditampilkan dari URL
halaman = cint (permintaan (halaman))
'Halaman Parameter Pengecualian Penanganan
jika halaman = lalu halaman = 1
Jika halaman <1 maka halaman = 1
Jika halaman> = rs.pagecount maka halaman = rs.pagecount
rs.Absolutepage = Page'the Page saat ini adalah halaman yang ditentukan oleh parameter halaman
untuk i = 1 ke rs.pagesize'cycle catatan di halaman saat ini sesuai dengan ukuran parameter halaman
response.write user_id: & rs (id) & <br>
response.write user_name: & rs (user_name) & <br> <br>
Rs.Movenext 'Record Pointer Bergerak Down
Jika rs.eof maka keluar untuk loop jika bagian bawah set rekaman tercapai
Berikutnya
akhiri jika
'Tampilkan tombol putar halaman
Jika halaman> 1 maka
response.write <a href = & request.serverVariable (document_name) &? page = 1> halaman 1 </a>
response.write <a href = & request.serverVariable (document_name) &? page = & (page-1) &> halaman sebelumnya </a>
akhiri jika
Jika halaman <> rs.pagecount maka
response.write <a href = & request.serverVariable (document_name) &? page = & (halaman+1) &> halaman berikutnya </a>
response.write <a href = & request.serverVariable (document_name) &? page = & rs.pagecount &> halaman terakhir </a>
akhiri jika
response.write Nomor halaman: & halaman &/& rs.pagecount
'Tutup objek dan lepaskan memori
rs.close
Setel RS = tidak ada
Conn.Close
atur conn = tidak ada
%>
Berpikir: Atribut tambahan apa yang digunakan selama proses paging?