تشارك هذه المقالة طريقة وظيفة تسجيل الدخول إلى Javaweb للرجوع إليها. المحتوى المحدد كما يلي
بادئ ذي بدء ، نحتاج إلى العملية الأساسية لتسجيل الدخول إلى Javaweb: إرسال طلبات على صفحة JSP -> Servlet -> Servlet يحصل على بيانات من قاعدة البيانات عن طريق استدعاء أساليب وإرجاع النتيجة إلى الصفحة.
نقوم أولاً بإنشاء ثلاث صفحات JSP ، بما في ذلك login.jsp (صفحة تسجيل الدخول) ، الفهرس. يمكن كتابة محتويات آخر صفحتين في الإرادة ، والمحتويات الرئيسية لصفحة login.jsp هي كما يلي:
<form action = "loginservlet" method = "post"> اسم المستخدم: <إدخال type = "text" name = "username"/> كلمة المرور: <إدخال type = "password" name = "password"/> <input
في بداية ملف login.jsp ، نحتاج إلى تغيير pageencoding = "ISO-8859-1" إلى pageencoding = "utf-8" (في نفس الوقت ، لا تنسى تعيين تنسيق الترميز لأداة التطوير ، وإلا فإن صفحة JSP ستعرض رمزًا مشويًا)
استنادًا إلى سمتين اسم المستخدم وكلمة المرور ، نقوم بإنشاء فئات كيان مقابلة ونضيف طرق Get and Set. الرمز كما يلي:
مستخدم الفئة العامة {private string username ؛ كلمة مرور السلسلة الخاصة ؛ السلسلة العامة getUserName () {return username ؛ } public void setusername (string username) {this.userName = username ؛ } السلسلة العامة getPassword () {return password ؛ } public void setPassword (سلسلة كلمة مرور) {this.password = password ؛ }} يشير Action = "loginservlet" في صفحة JSP إلى إرسال طلب إلى servlet للمعالجة. بعد ذلك نذهب إلى Servlet للمعالجة:
استيراد java.io.ioException ؛ استيراد javax.servlet.servletexception ؛ استيراد javax.servlet.http.htpservlet ؛ بدلا من الفصل عند إنشائها. يجب تكوينه في web.xml. ستقوم MyEclipse التي تم تكوينها تلقائيًا بإنشاء LoginServlet على توسيع HttPservlet {// إنشاء كائن userDao لتسهيل الاستعلام عن قاعدة البيانات userDao userDao = new userDao () ؛ . DOPOST الفراغ العام (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servletexception ، ioException {// استخدم طريقة getParameter لإدخال القيمة في مربع النص المقدمة ، حيث يكون المحتوى في الأقواس هو سمات الاسم في <input/> tag username = request.getParameter ("username" ؛ سلسلة كلمة مرور = request.getParameter ("كلمة المرور") ؛ // استدعاء طريقة getSelect في userDao واحصل على قيمة الإرجاع boolean flag = userDao.getSelect (اسم المستخدم ، كلمة المرور) ؛ // توجيه إلى صفحة index.jsp if (flag) {request.getRequestDispatcher ("index.jsp"). إلى الأمام (طلب ، استجابة) ؛ } else reponse.sendRedirect ("error.jsp") ؛ }} ما قلته بالفعل في التعليقات واضح للغاية ، لذلك لن أكرر ذلك بعد الآن. يمكنك إلقاء نظرة على الأسطر 26 والخطوط 29 ، منها 26 يتم إعادة توجيهها و 29 إعادة توجيه. يمكن للأصدقاء المهتمين التحقق من الفرق بين الاثنين. الجزء الباقي هو عملية الاستعلام حول قاعدة البيانات التي ذكرناها من قبل. أطلقنا عليه على السطر 23 ، والطريقة التالية أكملنا المكالمة:
package com.test.dao ؛ استيراد java.sql.connection ؛ استيراد java.sql.drivermanager ؛ استيراد java.sql.preparedstatement ؛ استيراد java.sql.resultset ؛ // اتصال قاعدة البيانات كلمة مرور كلمة المرور = "" ؛ String driver = "com.mysql.jdbc.driver" ؛ // حيث يكون الاختبار اسم قاعدة البيانات url = "jdbc: mysql: // localhost: 3306/test" ؛ اتصال conn = null ؛ حاول {class.forname (driver) ؛ conn = (connection) drivermanager.getConnection (url ، اسم المستخدم ، كلمة المرور) ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } return conn ؛ } // طريقة الاستعلام ، إذا كانت هناك بيانات تلبي الشروط ، فإنها تُرجع getSelect Boolean العامة الحقيقية (اسم المستخدم ، كلمة مرور السلسلة) {boolean flag = false ؛ String SQL = "SELECT * from user where username = '"+username+"' 'and password ='"+password+"'' ؛ اتصال conn = getCon () ؛ أعدت PST = NULL ؛ حاول {pst = (preparedStatement) conn.preparestatement (sql) ؛ resultset rs = pst.executequery () ؛ if (rs.next ()) {flag = true ؛ }} catch (استثناء e) {} الإرجاع ؛ }}في هذه الطريقة ، نتواصل أولاً مع قاعدة البيانات ، ثم نمر في طريقة الاستعلام المستخدم وكلمة المرور التي تم الحصول عليها من صفحة JSP لتحديد ما إذا كان المستخدم مع اسم المستخدم وكلمة المرور موجودة في قاعدة البيانات. إذا كان موجودًا ، فإنه يعيد صحيحًا ، وإلا فإنه يعيد خطأ (لا تنس استيراد الحزمة المرتبطة بقاعدة البيانات).
بالنسبة للحقول الموجودة في قاعدة البيانات ، يمكنك فقط استخدام مستخدم فئة الكيانات لإنشائها ، أي أنك تضم سمتين: اسم المستخدم وكلمة المرور. إذا كان لديك أي أسئلة حول رابط قاعدة البيانات ، فيرجى الرجوع إلى المقال السابق حول جزء قاعدة البيانات.
أخيرًا ، دعونا نلقي نظرة على التكوين في web.xml:
<؟ XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xd <Srevlet> <Sradlet-Name> loginservlet </servlet-name> <Verlet-Class> com.test.servlet.loginservlet </servlet-class> </servlet> <Servlet-mapping> <sterlet-name> loginservlet </servlet-name> <Url-patern>
يمكن كتابة <Srevlet-Name> في <vervlet> حسب الرغبة ، فقط تأكد من أن الأجزاء العلوية والسفلية هي نفسها.
ثم هناك مسار servlet المحدد من قبل نفسك (بما في ذلك اسم الحزمة) ، وأخيراً <url-pattern>. يمكن أيضًا كتابة المحتويات الموجودة في الداخل ، ولكن يجب أن تكون سمة الإجراء لنموذج النموذج في صفحة JSP هي نفسها مثل هذا الاسم (لا يحتوي الإجراء "/")
أخيرًا ، نحتاج إلى نشر مشروع الويب إلى Tomcat ثم إدخال: http: // localhost: 8080/name project/login.jsp في المتصفح للوصول إلى وتسجيل الدخول.
هذا مجرد تطبيق بسيط ، والغرض من ذلك هو مساعدة جميع الأصدقاء على فهم العملية الأساسية لتطوير JSP+Servlet. بالطبع ، سنقوم بتجزئة أكثر تفصيلاً في عملية التطوير الفعلية ، بما في ذلك الواجهات ، وفئات التنفيذ ، إلخ.