Artikel ini membagikan metode fungsi login Javaweb untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Pertama -tama, kita membutuhkan proses dasar login Javaweb: Kirim permintaan pada halaman JSP -> Servlet -> Servlet mendapatkan data dari database dengan memanggil metode dan mengembalikan hasilnya ke halaman.
Kami pertama -tama membuat tiga halaman JSP, termasuk login.jsp (halaman login), index.jsp (menampilkan informasi setelah keberhasilan login), dan error.jsp (halaman yang gagal masuk). Isi dari dua halaman terakhir dapat ditulis sesuka hati, dan isi utama dari halaman login.jsp adalah sebagai berikut:
<Form Action = "LOGINSERVLET" METODE = "POST"> Nama pengguna: <input type = "text" name = "username"/> kata sandi: <input type = "password" name = "password"/> <input type = "kirim" value = "kirim"/> <form>
Di awal file login.jsp, kita perlu mengubah pageEncoding = "iso-8859-1" menjadi pageEncoding = "UTF-8" (pada saat yang sama, jangan lupa untuk mengatur format pengkodean dari alat pengembangan, jika tidak, halaman JSP akan menampilkan kode yang kacau)
Berdasarkan dua atribut nama pengguna dan kata sandi, kami membuat kelas entitas yang sesuai dan menambahkan metode Get and Set. Kodenya adalah sebagai berikut:
Pengguna kelas publik {Private String username; kata sandi string pribadi; string publik getUserName () {return username; } public void setusername (string username) {this.username = username; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; }} Tindakan = "LogInservlet" di halaman JSP mengacu pada mengirim permintaan ke Servlet untuk diproses. Selanjutnya kita pergi ke Servlet untuk memproses:
Impor java.io.ioException; impor javax.servlet.servletException; impor javax.servlet.http.httpservlet; import javax.servlet.http.htpservletrequest; impor.terdeoo.pondeoo.poneo.pondeoo.terdeoo.pondeoooo.poneo; Servlet bukan kelas saat dibuat. Itu perlu dikonfigurasi di web.xml. Kode yang dikonfigurasi myeclipse akan secara otomatis menghasilkan kelas publik LogInservlet memperluas httpservlet {// Buat objek userdao untuk memfasilitasi permintaan database userdao userdao = Userdao baru (); //The following doGet methods and doPost methods correspond to method="get" and method="post" in the form form respectively public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IoException {} public void dopost (permintaan httpservletrequest, httpservletResponse response) melempar servletException, ioException {// Gunakan metode getParameter untuk mendapatkan nilai dalam tag foreground/di mana konten dalam dongeng adalah atribut nama dalam namanya yang ditimbulkan/tag/di foreground/di mana isinya adalah <serpparampePpareMer = String password = request.getParameter ("password"); // hubungi metode getSelect di userdao dan dapatkan nilai pengembalian boolean flag = userdao.getselect (nama pengguna, kata sandi); // Maju ke halaman index.jsp if (flag) {request.getRequestDispatcher ("index.jsp"). Forward (request, response); } else response.sendredirect ("error.jsp"); }} Apa yang telah saya katakan di komentar sangat jelas, jadi saya tidak akan mengulanginya lagi. Anda dapat melihat garis 26 dan baris 29, di mana 26 di antaranya penerusan dan 29 mengarahkan ulang. Teman yang tertarik dapat memeriksa perbedaan antara keduanya. Bagian istirahat adalah operasi kueri tentang database yang kami sebutkan sebelumnya. Kami menyebutnya di baris 23, dan metode berikut kami menyelesaikan panggilan:
Paket com.test.dao; impor java.sql.connection; impor java.sql.driverManager; import java.sql.preparedstatement; import java.sql.resultset; kelas publik Userdao {// menghubungkan database koneksi publik getCon () { / /public Userdao {// Database Public Connection GetCon () {// // Database Connection Password String Password = ""; String driver = "com.mysql.jdbc.driver"; // di mana tes adalah nama basis data string url = "jdbc: mysql: // localhost: 3306/test"; Koneksi conn = null; coba {class.forname (driver); conn = (koneksi) driverManager.getConnection (url, nama pengguna, kata sandi); } catch (Exception e) {E.PrintStackTrace (); } return conn; } // Metode kueri, jika ada data yang memenuhi syarat, ia mengembalikan getSelect boolean publik sejati (nama pengguna string, kata sandi string) {boolean flag = false; String sql = "pilih * dari pengguna di mana nama pengguna = '"+nama pengguna+"' dan kata sandi = '"+kata sandi+"'"; Koneksi conn = getCon (); Persiapan PST = NULL; coba {pst = (disiapkan) conn.preparestatement (sql); Hasil rs = pst.executeQuery (); if (rs.next ()) {flag = true; }} catch (Exception e) {} return flag; }}Dalam metode ini, pertama -tama kami terhubung ke database, dan kemudian meneruskan nama pengguna Metode Kueri dan kata sandi yang diperoleh dari halaman JSP untuk menentukan apakah pengguna dengan nama pengguna dan kata sandi ini ada dalam database. Jika ada, ia mengembalikan true, jika tidak ia mengembalikan False (jangan lupa untuk mengimpor paket yang ditautkan ke database).
Adapun bidang dalam database, Anda bisa menggunakan pengguna kelas entitas untuk membuatnya, yaitu, Anda dapat menyertakan dua atribut: nama pengguna dan kata sandi. Jika Anda memiliki pertanyaan tentang tautan database, silakan merujuk ke esai sebelumnya tentang bagian basis data.
Akhirnya, mari kita lihat konfigurasi di web.xml:
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xmlns =" http://java.com/xmlns = "http://java.com/xmlns = XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/we-pappe." "" "" "" "" "" "" "" "" "" <servlet> <servlet-name> LogInservlet </servlet-name> <servlet-class> com.test.servlet.logInservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> LogInservlet </servlet-name> <rerl-pattern>/loginServlet </url-pola> </servlet> <rerl-pola>/loginServlet </url-polat> </servlet> <rerl-Pattern>/Loginservlet </url-polat> </servlet-name>
<servlet-name> di <servlet> dapat ditulis sesuka hati, pastikan bahwa bagian atas dan bawahnya sama.
Lalu ada jalur servlet yang ditentukan oleh diri Anda sendiri (termasuk nama paket), dan akhirnya <Rerl-pola>. Isi di dalam juga dapat ditulis sesuka hati, tetapi atribut tindakan formulir di halaman JSP harus sama dengan nama ini (tindakan tidak mengandung "/")
Akhirnya, kita perlu menerbitkan proyek web ke Tomcat dan kemudian masuk: http: // localhost: 8080/nama proyek/login.jsp di browser untuk mengakses dan masuk.
Ini hanyalah aplikasi sederhana, dan tujuannya adalah untuk membantu semua teman memahami proses dasar pengembangan JSP+Servlet. Tentu saja, kami akan melakukan segmentasi yang lebih baik dalam proses pengembangan aktual, termasuk antarmuka, kelas implementasi, dll.