Di antara banyak situs web di Internet, situs web dinamis berdasarkan database Web banyak digunakan. Situs web dinamis berbasis basis data jaringan Web terdiri dari browser Web sebagai antarmuka klien, server basis data untuk penyimpanan informasi, dan server aplikasi Web yang menghubungkan keduanya. Teknologi CGI asli untuk mengembangkan situs web dinamis secara bertahap telah digantikan oleh Java Applet, kontrol ActiveX, DHTML dan JavaScript seiring dengan berkembangnya teknologi klien aplikasi Web. Teknologi ini sangat meningkatkan antarmuka pengguna, namun ketika mereka mencoba melakukan beberapa pekerjaan mendalam, mereka mulai menemui masalah seperti ketidakcocokan browser klien, server kelebihan beban, akses lambat, dan masalah keamanan. Teknologi JSP adalah kunci emas untuk memecahkan masalah tersebut. Artikel ini terutama membahas beberapa masalah teknis dalam proses penggunaan teknologi JSP untuk membangun website dinamis.
Teknologi JSP
JSP adalah teknologi pengembangan Web berbasis Java Servlet dan keseluruhan sistem Java. Teknologi ini dapat digunakan untuk membangun situs web dinamis yang canggih, aman, cepat, dan lintas platform. Menambahkan fragmen program Java dan tag JSP ke file HTML halaman web tradisional membentuk halaman web JSP. Ketika server Web menerima permintaan untuk mengakses halaman web JSP, pertama-tama ia mengeksekusi fragmen program dan kemudian mengembalikan hasil eksekusi ke klien dalam format HTML. Fragmen program dapat mengoperasikan database, mengalihkan halaman web, mengirim email, dll. Ini adalah fungsi yang diperlukan untuk membangun situs web dinamis. Semua operasi program dijalankan di sisi server, dan hanya hasilnya yang dikirim ke klien di jaringan, dengan persyaratan yang sangat rendah pada browser klien. Seperti yang ditunjukkan pada Gambar 1, ketika pengguna terhubung ke situs web JSP, pengguna meminta halaman web, dan halaman JSP merespons permintaan tersebut sendiri, mengubah permintaan pengguna untuk halaman web menjadi permintaan data, memproses permintaan melalui JavaBean, dan merangkum data yang dikembalikan ke dalam halaman HTML untuk dikembalikan ke pengguna.
JSP mempunyai banyak keuntungan:
1. Tulis program sekali dan jalankan di mana saja. Saat merancang JSP, independensi platform aplikasi sepenuhnya dipertimbangkan. Mengandalkan portabilitas Java, JSP didukung oleh banyak platform operasi populer dan dapat dijalankan di server seperti Apache, NetScape, dan IIS.
2. Eksekusi cepat. Halaman JSP hanya perlu dikompilasi satu kali dan diubah menjadi kode byte Java, lalu disimpan di memori server, sehingga mempercepat respons ke halaman JSP. Jika Anda tidak mempertimbangkan waktu yang diperlukan untuk mengkompilasi halaman JSP untuk pertama kalinya, kecepatan respon JSP jauh lebih cepat dibandingkan dengan ASP.
3. Keunggulan Java. Teknologi JSP menggunakan bahasa Java sebagai bahasa scriptingnya. Teknologi Java lintas platform, matang, kuat, dan mudah diperluas membuat pekerjaan pengembang lebih mudah dan sederhana dalam aspek lainnya. Ketika sistem Windows dicurigai mengalami crash, Java dapat secara efektif mencegah sistem agar tidak crash. Bahasa Java unggul dalam manajemen memori dengan menyediakan metode untuk mencegah kebocoran memori. Selain itu, JSP menyediakan mekanisme penanganan kejadian tak terduga yang lebih kuat untuk aplikasi, sehingga memberikan keuntungan penuh dari Java.
Kesulitan teknis JSP
1. Koneksi ke database
Koneksi database adalah bagian terpenting dari situs web dinamis. Teknologi ODBC atau JDBC dapat digunakan saat menghubungkan ke database back-end. Meskipun ODBC merupakan pilihan sebagai cara tradisional untuk menghubungkan ke database, ODBC memiliki kelemahan fatal berikut, sehingga tidak kompeten untuk permintaan JSP:
(1) ODBC adalah API yang diimplementasikan dalam bahasa C. Memanggil program C lokal dari program Java akan menyebabkan Ini membawa serangkaian masalah serupa dengan keamanan, integritas, dan ketahanan.
(2) Kedua, implementasi ODBC yang benar-benar akurat dari kode C ODBC ke terjemahan Java API tidak akan memuaskan, karena tidak ada pointer di Java, dan ODBC menggunakan banyak pointer, termasuk pointer nol yang sangat rawan kesalahan "void "*".
(3) Mengingat portabilitas platform, penggunaan ODBC dalam mengembangkan program JSP akan berdampak negatif, membuat kode tidak sesuai untuk portabilitas.
Untuk membuat program mudah ditransplantasikan sekaligus memiliki keamanan, integritas, dan ketahanan, lebih tepat menggunakan JDBC untuk terhubung ke database. JDBC adalah API Java yang dapat digunakan untuk mengeksekusi pernyataan SQL. Ini terdiri dari beberapa kelas dan antarmuka yang ditulis dalam bahasa Java, memungkinkan pengembang untuk menulis aplikasi database lengkap dalam bahasa Java murni. Dengan menggunakan JDBC, pernyataan SQL dapat dengan mudah dikirimkan ke hampir semua database. Dengan kata lain, Anda tidak perlu menulis satu program untuk mengakses Sybase, program lain untuk mengakses Oracle, dan program lain untuk mengakses Microsoft SQL Server. Program yang ditulis dengan JDBC dapat secara otomatis mengirimkan pernyataan SQL ke sistem manajemen database yang sesuai.
Ketika program database lokal menggunakan database seperti Microsoft Access, jembatan JDBC-ODBC yang dikembangkan oleh Sun dapat digunakan. Dengan meminjam teknologi ini, program JSP dapat mengakses database dengan driver ODBC. Ini tidak hanya mempertahankan keunggulan JDBC, tetapi juga dapat menggunakan sumber data ODBC yang disediakan oleh Microsoft untuk menyambung ke Access. Tidak peduli apa jenis database pihak lain, selama ada antarmuka ODBC, Anda dapat langsung menggunakan jembatan JDBC-ODBC untuk terhubung ke database tanpa mengubah kode program yang sesuai karena perubahan pada database back-end, mencapai pemisahan sempurna antara lapisan aplikasi dan lapisan database. Jika Anda perlu mengubah database back-end ke MySQL, Anda hanya perlu menginstal driver MySQL di sumber data ODBC, dan Anda dapat menggunakan database MySQL secara langsung.
2. Saat mengimplementasikan situs web dengan komponen bawaan
, karena kebutuhan obyektif, untuk dengan mudah membedakan pengguna LAN lokal dari pengguna jarak jauh dan memberikan izin yang sesuai, komponen Permintaan bawaan dapat digunakan untuk menangkap setiap koneksi ke server. Alamat IP pengguna dibandingkan dan izin terkait diberikan. Dengan cara ini, pengguna dalam jaringan area lokal ini dapat menggunakan semua sumber daya publik dan non-publik di situs web. Metode yang ada juga dapat ditingkatkan dengan memasukkan berbagai alamat IP ke dalam database dan memberikan izin berbeda ke alamat IP berbeda untuk sepenuhnya mengontrol penggunaan sumber daya situs web oleh pengguna.
Pemeliharaan status sesi adalah masalah yang harus dihadapi oleh pengembang aplikasi web. Untuk mengetahui apakah pengguna masih online, komponen Sesi bawaan digunakan. Dengan memberikan variabel Sesi kepada setiap pengguna yang masuk, sumber daya yang digunakan oleh pengguna dapat ditutup setelah pengguna meninggalkan situs web secara tidak normal, sehingga menghemat. memori dan meningkatkan kinerja server.
Kelas Cookie juga disediakan di JSP, dan konstruktornya memiliki dua parameter, yang mewakili nama dan nilai Cookie. Kelas Cookie menyediakan berbagai metode untuk mengatur atribut Cookie. Misalnya, metode setMaxAge dapat digunakan untuk mengatur masa pakai Cookie. Jika survival time bernilai negatif berarti browser menutup cookie dan menghilang; jika survival time bernilai 0 berarti cookie dihapus; jika survival time bernilai positif berarti berapa detik kue ada. Cookies dapat digunakan untuk menyimpan sementara akun dan kata sandi pengguna, dan JSP dapat membacanya kapan saja untuk memverifikasi keabsahan pengguna. Status penelusuran pengguna dapat disimpan dalam cookie, dan saat pengguna mengunjungi halaman web berikutnya, JSP akan menampilkan halaman yang dipersonalisasi ke browser.
3. Konversi pengkodean Unicode.
Selama proses debugging di banyak halaman JSP, masalah yang disebabkan oleh konversi pengkodean karakter Cina dan pengkodean Unicode telah ditemui, misalnya, karakter Cina di halaman JSP yang terlihat di browser semuanya kacau, dan halaman JSP tidak dapat ditampilkan secara normal. Karakter Cina, JSP tidak dapat menerima karakter Cina yang dikirimkan dalam formulir, pembacaan dan penulisan database JSP tidak dapat memperoleh konten yang benar, dll. Hal ini karena sebagian besar pemrosesan karakter inti perangkat lunak dengan karakteristik internasional didasarkan pada Unicode. Saat perangkat lunak berjalan, berdasarkan Pada saat itu, pengaturan "Lokal/Lang/Codepage" menentukan pengaturan pengkodean karakter lokal yang sesuai, dan memproses karakter lokal yang sesuai. Oleh karena itu, konversi timbal balik antara Unicode dan kumpulan karakter lokal harus dilakukan dicapai selama proses pemrosesan, dan bahkan dua karakter lokal yang berbeda menggunakan Unicode sebagai perantara Konversi antar kumpulan karakter. Metode ini diperluas lebih lanjut dalam lingkungan jaringan, dan informasi karakter apa pun di kedua ujung jaringan juga perlu diubah menjadi konten yang dapat diterima sesuai dengan pengaturan rangkaian karakter.
Karena kumpulan karakter default IE adalah GB2312, kumpulan karakter default Windows adalah GBK, dan kumpulan karakter default Java adalah Unicode. Oleh karena itu, tanpa konversi tertentu, halaman yang diperoleh dari GBK atau Unicode akan ditampilkan langsung pada kumpulan karakter GB2312 menjadi kacau. Bahasa Java menggunakan Unicode untuk memproses karakter, namun dari sudut pandang lain, non-Unicode juga dapat digunakan dalam program Java. Yang penting adalah memastikan bahwa informasi karakter Cina saat masuk dan keluar program tidak terdistorsi. Jika ISO-8859-1 sepenuhnya digunakan untuk memproses karakter Cina, hasil yang benar dapat dicapai. Setelah konversi dan kumpulan karakter halaman web dipaksa untuk ditampilkan dalam kumpulan karakter GB2312, karakter Cina dapat ditampilkan secara normal.