البيان: الأصل من قبل المؤلف، جميع الحقوق محفوظة.
لا يُسمح بالنسخ غير المصرحبه
. استخدم الفاصوليا والسيرفلتس لتنفيذ تسجيل المستخدم وتسجيل الدخول بشكل مشترك في jsp
حقوق الطبع والنشر:
برنامج imagebear وبيئة التشغيل المطلوبة لهذا المثال:
1. نظام التشغيل Windows2000 Server
2.jdk1.4
3. JCreator2.5 (مصحح أخطاء تحرير كود مصدر Java، موصى به لأولئك الذين يتقيؤون دمًا!)
4. ماكروميديا JRun MX
5. ماكروميديا دريمويفر MX (اختياري)
6. قاعدة بيانات MySQL (من الأفضل تثبيت MySQL Control Center)
1. تصميم قاعدة البيانات افتح قاعدة بيانات MySQL باستخدام MySQL Control Center، وقم بإنشاء قاعدة بيانات جديدة للتسوق، وأنشئ جدول tbl_user جديد تحته، مع تعيين كل حقل على النحو التالي:
2. اكتب حبة قاعدة بيانات الاتصال: DBConn.java
//DBConn.java
//تتضمن الفئات المطلوبة
import java.sql.*
//========================= = =
// تعريف ClassDBConn
//=========================================================================================
فئة عامةDBConn
{
سلسلة عامة sql_driver = "org.gjt.mm.mysql.Driver";
السلسلة العامة sql_url = "jdbc:mysql://localhost:3306";
سلسلة عامة sql_DBName = "التسوق"؛
مستخدم السلسلة العامة = "sa"؛
سلسلة عامة pwd = "";
اتصال conn = null;
البيان stmt = null;
ResultSet rs = null;
public boolean setDriver(String drv)
{
this.sql_driver = drv;
عودة صحيحة؛
}
سلسلة عامة getDriver ()
{
إرجاع this.sql_driver;
}
setUrl المنطقية العامة (عنوان url للسلسلة)
{
this.sql_url = url;
عودة صحيحة؛
}
setDBName المنطقية العامة (سلسلة dbname)
{
this.sql_DBName = dbname;
عودة صحيحة؛
}
سلسلة عامة getDBName ()
{
إرجاع this.sql_DBName;
}
مجموعة منطقية عامة (مستخدم سلسلة)
{
this.user = user;
عودة صحيحة؛
}
سلسلة عامة getUser()
{
إرجاع هذا.المستخدم؛
}
مجموعة منطقية عامة (سلسلة pwd)
{
this.pwd = pwd;
عودة صحيحة؛
}
سلسلة عامة getPwd ()
{
إرجاع هذا.pwd;
}
عامةDBConn()
{
يحاول{
Class.forName(sql_driver);// تحميل برنامج تشغيل قاعدة البيانات
this.conn = DriverManager.getConnection(sql_url + "/" + sql_DBName + "?user=" + user + "&password=" + pwd + "&useUnicode=true&characterEncoding=gb2312");
this.stmt = this.conn.createStatement();
}قبض(استثناء ه){
System.out.println(e.toString());
}
}
// تنفيذ عملية الاستعلام
تنفيذ مجموعة النتائج العامة (سلسلة strSql)
{
يحاول{
this.rs = stmt.executeQuery(strSql);
إرجاع هذا.rs;
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة فارغة؛
}قبض على(NullPointerException ه){
System.out.println(e.toString());
عودة فارغة؛
}
}
// إجراء عمليات إدراج البيانات وحذفها وتعديلها
تنفيذ منطقي عام (سلسلة strSql)
{
يحاول{
إذا (this.stmt.executeUpdate(strSql) == 0)
عودة كاذبة.
آخر
عودة صحيحة؛
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة كاذبة.
}قبض على(NullPointerException ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
// ينتقل مؤشر مجموعة النتائج إلى صف معين
منطقية عامة rs_absolute(صف int)
{
يحاول{
this.rs.absolute(row);
عودة صحيحة؛
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
الفراغ العام rs_afterLast()
{
يحاول{
this.rs.afterLast();
}قبض على(SQLException ه){
System.out.println(e.toString());
}
}
الفراغ العام rs_beforeFirst()
{
يحاول{
this.rs.beforeFirst();
}قبض على(SQLException ه){
System.out.print(e.toString());
}
}
الفراغ العام rs_ Close ()
{
يحاول{
this.rs. Close();
}قبض على(SQLException ه){
System.out.print(e.toString());
}
}
الفراغ العام rs_deleteRow()
{
يحاول{
this.rs.deleteRow();
}قبض على(SQLException ه){
System.out.print(e.toString());
}
}
منطقية عامة rs_first()
{
يحاول{
this.rs.first();
عودة صحيحة؛
}قبض على(SQLException ه){
System.out.print(e.toString());
عودة كاذبة.
}
}
سلسلة عامة rs_getString (عمود السلسلة)
{
يحاول{
إرجاع this.rs.getString(column);
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة فارغة؛
}
}
// تُستخدم هذه الطريقة للحصول على أجزاء كبيرة من النص،
// استبدل حرف الإرجاع وتغذية السطر بـ <br>
//الإخراج إلى صفحة html
السلسلة العامة rs_getHtmlString (عمود السلسلة)
{
يحاول{
String str1 = this.rs.getString(column);
سلسلة str2 = "rn";
String str3 = "<br>";
إرجاع this.replaceAll(str1,str2,str3);
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة فارغة؛
}
}
// استبدل سلسلة str2 في سلسلة str1 بسلسلة str3
سلسلة ثابتة خاصة استبدال الكل (سلسلة str1، سلسلة str2، سلسلة str3)
{
StringBuffer strBuf = new StringBuffer(str1);
مؤشر كثافة العمليات = 0؛
بينما (str1.indexOf (str2،index)!=-1)
{
Index=str1.indexOf(str2,index);
strBuf.replace(str1.indexOf(str2,index),str1.indexOf(str2,index)+str2.length(),str3);
مؤشر=index+str3.length();
str1=strBuf.toString();
}
إرجاع strBuf.toString();
}
int العام rs_getInt (عمود السلسلة)
{
يحاول{
إرجاع this.rs.getInt(column);
}قبض على(SQLException ه){
System.out.println(e.toString());
العودة -1؛
}
}
int rs_getInt العام (عمود int)
{
يحاول{
إرجاع this.rs.getInt(column);
}قبض على(SQLException ه){
System.out.println(e.toString());
العودة -1؛
}
}
منطقية عامة rs_next()
{
يحاول{
إرجاع this.rs.next();
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
// تحديد ما إذا كانت هناك بيانات في مجموعة النتائج
hasData المنطقية العامة ()
{
يحاول{
boolean has_Data = this.rs.first();
this.rs.beforeFirst();
العودة has_Data؛
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
منطقية عامة rs_last()
{
يحاول{
إرجاع this.rs.last();
}قبض على(SQLException ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
منطقية عامة rs_previous()
{
يحاول{
إرجاع this.rs.previous();
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
// الطريقة الرئيسية المستخدمة لتصحيح الأخطاء
الفراغ العام الثابت الرئيسي (سلسلة الحجج [])
{
يحاول{
DBConn myconn = new DBConn();
//myconn.setDBName("التسوق");
//myconn.DBConn();
//myconn.execute("أدخل في قيم tbl_test(id,name)('10','shandaer')");
//myconn.execute("تحديث اسم مجموعة tbl_test = 'yyyyyyyyyyy' حيث المعرف = 10");
//myconn.execute("حذف من tbl_test حيث المعرف = 1");
ResultSet rs = myconn.executeQuery("اختر * من ترتيب tbl_user حسب الحد التنازلي للمعرف 1");
//boolean hasData = myconn.hasData();
//System.out.println("يحتوي على بيانات:" + hasData);
//rs.first();
بينما (myconn.rs.next())
{
معرف int = myconn.rs_getInt("id") + 1;
System.out.print(id);
System.out.println(myconn.rs_getInt("id") + myconn.rs_getString("name"));
//System.out.println('n' + myconn.rs_getHtmlString("name"));
//System.out.println(myconn.rs.getString("name") + myconn.rs_getInt(1));
}
}قبض(استثناء ه){
System.err.println(e.toString());
}
}
}
بيان: نظرًا لأنك تستخدم قاعدة بيانات MySQL، فأنت بحاجة إلى تنزيل برنامج تشغيل قاعدة بيانات MySQL. بعد التنزيل، يرجى وضع حزمة المؤسسة في الدليل حيث يوجد DBConn.java للتأكد من إمكانية تشغيل الوحدة بشكل طبيعي.
3. اكتب الفول لتسجيل المستخدم: reg.java
//reg.java
//استيراد الفئات المطلوبة
java.sql
.*;
{
المعرف العام الجديد = 0؛
النتيجة المنطقية العامة = خطأ؛
التسجيل المنطقي العام (اسم مستخدم السلسلة، كلمة مرور السلسلة، تأكيد السلسلة، البريد الإلكتروني للسلسلة)
{
يحاول{
إذا (! this.checkUser (اسم المستخدم))
عودة كاذبة.
إذا (! this.checkPwd (كلمة المرور))
عودة كاذبة.
إذا (!this.verifyPwd(كلمة المرور، تأكيد))
عودة كاذبة.
إذا (! this.checkEmail (البريد الإلكتروني))
عودة كاذبة.
إذا (!this.userNotExit(اسم المستخدم))
عودة كاذبة.
this.getNewID();
this.result = this.register(username,password,confirm,email);
إرجاع هذه النتيجة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}//نهاية reg المنطقي
مستخدم التحقق المنطقي العام (مستخدم السلسلة)
{
يحاول{
إذا (user.indexOf("'")!=-1)
{
System.out.println("الاسم يحتوي على أحرف غير قانونية!");
عودة كاذبة.
}آخر
عودة صحيحة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
checkPwd المنطقية العامة (سلسلة pwd)
{
يحاول{
إذا (pwd.indexOf("'")!=-1)
{
System.out.println("كلمة المرور تحتوي على أحرف غير قانونية!");
عودة كاذبة.
}آخر
عودة صحيحة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
التحقق المنطقي العام (سلسلة pwd، تأكيد السلسلة)
{
يحاول{
إذا (!pwd.equals(تأكيد))
{
System.out.println("كلمات المرور التي تم إدخالها مرتين غير متناسقة!");
عودة كاذبة.
}آخر
عودة صحيحة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
البريد الإلكتروني المنطقي العام (سلسلة البريد الإلكتروني)
{
يحاول{
إذا (email.indexOf("'")!=-1)
{
System.out.println("البريد الإلكتروني يحتوي على أحرف غير قانونية!");
عودة كاذبة.
}آخر
عودة صحيحة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
userNotExit المنطقي العام (مستخدم السلسلة)
{
يحاول{
DBConn userDBConn = new DBConn();
userDBConn.executeQuery("select * from tbl_user Where name='" + user + "'");
إذا (userDBConn.rs_next())
{
System.out.println("اسم المستخدم موجود بالفعل، يرجى اختيار اسم مستخدم آخر!");
عودة كاذبة.
}آخر
عودة صحيحة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
int public getNewID()
{
يحاول{
DBConn newIDDBConn = new DBConn();
newIDDBConn.executeQuery("اختر * من ترتيب tbl_user حسب حد تعريف المعرف 1");
إذا (newIDDBConn.rs_next())
{
this.newID = newIDDBConn.rs_getInt("id") + 1;
System.out.println(this.newID);
}آخر{
this.newID = 1;
}
إرجاع this.newID;
}قبض(استثناء ه){
System.out.println(e.toString());
العودة -1؛
}
}
getID العام ()
{
إرجاع this.newID;
}
السجل المنطقي العام (اسم مستخدم السلسلة، كلمة مرور السلسلة، تأكيد السلسلة، البريد الإلكتروني للسلسلة)
{
يحاول{
DBConn regDBConn = new DBConn();
String strSQL = "أدخل في قيم tbl_user(id,name,pwd,email)('" + this.newID +"','" + اسم المستخدم + "','" + كلمة المرور + "','" + البريد الإلكتروني + " ')";
regDBConn.execute(strSQL);
عودة صحيحة؛
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
الفراغ الثابت العام الرئيسي (سلسلة الحجج [])
{
يحاول{
ريج نيوريج = ريج جديد ()؛
System.out.println(newreg.reg("sssssssss"، "ssssss"، "ssssss"، " [email protected] "))؛
DBConn myconn = new DBConn();
myconn.executeQuery("اختر * من tbl_user");
بينما (myconn.rs_next())
{
System.out.println(myconn.rs_getInt("id") + " " + myconn.rs_getString("name") + " " + myconn.rs_getString("pwd") + " " + myconn.rs_getString("email") );
}
System.out.println(newreg.getID());
}قبض(استثناء ه){
System.err.println(e.toString());
}
}
}؛
يوضح:
1. يجب وضع ملف الفول في نفس الدليل مثل ملف DBConn.class المذكور أعلاه.
2. يدرس هذا المثال بشكل أساسي عملية التسجيل والكشف عن البريد الإلكتروني والطرق الأخرى ليست مثالية. إذا كنت تريد تطبيقه، فيرجى تصميم طريقتك الخاصة.
4. اكتب Servlet لتسجيل دخول المستخدم: login.java
//login.java
//استيراد الفئات المطلوبة
استيراد java.io.*;
استيراد javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
// تسجيل الدخول للفئة
يمتد تسجيل الدخول للفئة العامة إلى HttpServlet
{
doGet الفراغ العام (HttpServletRequest req، HttpServletResponse res)
throwsIOException,ServletException
{
اسم مستخدم السلسلة = req.getParameter("اسم المستخدم");
كلمة مرور السلسلة = req.getParameter("password");
إذا (this.checklogin (اسم المستخدم، كلمة المرور))
{
Cookie mylogin = new Cookie("username",username);
mylogin.setVersion(1);
mylogin.setPath("/");
mylogin.setComment("اسم المستخدم لتسجيل الدخول الخاص بك");
res.addCookie(mylogin);
}
//Cookie[] myCookies = req.getCookies();
//String nameValue = this.getCookieValue(myCookies"،اسم المستخدم"،"غير موجود");
//PrintWriter out = res.getWriter();
//out.println("اسم المستخدم" + ":: + nameValue);
//out.println("اختبار نجاح ملف تعريف الارتباط!");
res.sendRedirect("/index.jsp");
}
doPost الفراغ العام (HttpServletRequest req، HttpServletResponse res)
throwsIOException,ServletException
{
doGet(req,res);
}
سلسلة ثابتة عامة getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
{
for(int i=0;i<cookies.length;i++) {
ملف تعريف الارتباط = ملفات تعريف الارتباط[i];
إذا (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
return(defaultValue);
}
تسجيل الدخول المنطقي العام (اسم مستخدم السلسلة، كلمة مرور السلسلة)
{
يحاول{
DBConn logonConn = new DBConn();
تسجيل الدخولConn.executeQuery("اختر * من tbl_user حيث الاسم ='" + اسم المستخدم + "'");
إذا (loginConn.rs_next())
{
System.out.println("تم إنشاء الاتصال!");
إذا (loginConn.rs_getString("pwd").trim().equals(password))
{
System.out.println(loginConn.rs_getString("name"));
عودة صحيحة؛
}
آخر
{
عودة كاذبة.
}
}
System.out.println("اختبار نجاح تسجيل الدخول!");
عودة كاذبة.
}قبض(استثناء ه){
System.out.println(e.toString());
عودة كاذبة.
}
}
الفراغ العام الثابت الرئيسي (سلسلة الحجج [])
{
تسجيل الدخول mylogin = تسجيل الدخول الجديد ()؛
System.out.println(mylogin.checklogin("shandong"،"shandong"))؛
}
}
يوضح:
1. لا توجد حزمة servlet في jdk1.4 الافتراضي. يرجى الانتقال إلى موقع شركة Sun لتنزيل servlet.jar، ووضعه في دليل jrelib ضمن دليل jdk، وإضافة حزمة servlet.jar إلى المجلد. إعداد jdk في JCreator
2. يتم استخدام Servlet للتحقق من اسم المستخدم وكلمة المرور، إذا كان صحيحًا، فسيتم كتابة اسم المستخدم في ملف تعريف الارتباط، بعد الانتهاء، سيتم إعادة توجيه الصفحة الحالية إلى صفحة Index.jsp.
5. اكتب حبة لاكتشاف ما إذا كان المستخدم قد قام بتسجيل الدخول: checkLogin.java
//checkLogin.java
//استيراد الفئات المطلوبة
استيراد java.io.*;
استيراد javax.servlet.*;
import javax.servlet.http.*;
//class checkLogin
التحقق من الطبقة العامةتسجيل الدخول
{
اسم مستخدم السلسلة العامة = ""؛
فحص منطقي عام (HttpServletRequest req، HttpServletResponse res)
throwsIOException,ServletException
{
String cookieName = "username";
Cookie[] myCookies = req.getCookies();
this.username = this.getCookieValue(myCookies,cookieName,"not Found");
PrintWriter out = res.getWriter();
إذا (هذا.اسم المستخدم! = فارغ)
{
//out.println("صباح الخير،" + this.username + "!");
عودة صحيحة؛
}آخر{
println("فشل تسجيل الدخول!");
عودة كاذبة.
}
}
سلسلة عامة getUserName ()
{
إرجاع هذا. اسم المستخدم؛
}
سلسلة ثابتة عامة getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
{
for(int i=0;i<cookies.length;i++) {
ملف تعريف الارتباط = ملفات تعريف الارتباط[i];
إذا (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
return(defaultValue);
}
}
الوصف: تكتشف هذه الحبة اسم المستخدم في ملف تعريف الارتباط إذا لم يكن فارغًا، فهذا يعني أنك قمت بتسجيل الدخول، وإلا فهذا يعني أنك لم تقم بتسجيل الدخول. الطريقة ليست مثالية، يمكنك توسيعها بنفسك.
6. أنشئ خادم تسوق في JRun وافتح JRun Administrator وأنشئ خادم تسوق جديدًا. المنفذ هنا هو 8101.
انسخ جميع ملفات الفئة المترجمة المذكورة أعلاه مع حزمة org إلى مجلد الفئات في الدليل حيث يوجد خادم التسوق الخاص بـ JRun.
C:JRun4serversshoppingdefault-eardefault-warWEB-INFclasses
7. قم بإنشاء تطبيق ملف jsp DW في الدليل C:JRun4serversshoppingdefault-eardefault-war قم بإنشاء ملف jsp جديد كما يلي:
مؤشر.jsp:
<%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<أتش تي أم أل>
<الرأس>
<title>التسوق123</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
</الرأس>
<body bgcolor="#FFFFFF" الهامش الأيسر = "0" الهامش العلوي = "0">
<jsp:useBean id = "checklogin" class = "checkLogin"scope = "page"/>
<%
تسجيل دخول منطقي = checklogin.check(request,response);
%>
<عرض الجدول = "100%" الارتفاع = "100%" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<tr bgcolor="#990000">
<td height = "80" colspan = "5"> عرض الجدول = "100٪" ارتفاع = "100٪" حدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<تر>
<td width="120"> </td>
<td class="caption">التسوق123</td>
<td width="200"> </td>
</tr>
</الجدول></تد>
</tr>
<تر>
<td width="200" align="center" valign="top"><عرض الجدول = "100%" ارتفاع = "20" حدود = "0" cellpadding = "0" تباعد الخلايا = "0">
<تر>
<td> </td>
</tr>
</الجدول>
<%
إذا (! تسجيل الدخول) {
%>
<عرض الجدول = "90%" الحدود = "0" محاذاة = "المركز" cellpadding = "0" تباعد الخلايا = "1" bgcolor = "#CCCCCC">
<اسم النموذج = "form1" طريقة = "post" action = "/servlet/login">
<tr align="center" bgcolor="#CCCCCC">
<td height="30" colspan="2" class="deepred">مدخل التخزين</td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">عضو</td>
<td محاذاة = "center" bgcolor = "#FFFFFF"> اسم الإدخال = "اسم المستخدم" نوع = "نص" id = "اسم المستخدم" حجم = "10"></td>
</tr>
<تر>
<td height="24" align="center" bgcolor="#FFFFFF">كلمة المرور</td>
<td محاذاة = "center" bgcolor = "#FFFFFF"> اسم الإدخال = "كلمة المرور" نوع = "نص" id = "كلمة المرور" حجم = "10"></td>
</tr>
<تر>
<td height="24" align="center" bgcolor="#FFFFFF"><a href="reg.jsp" target="_blank" class="red">التسجيل</a></td>
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="Enter"></td>
</tr>
</النموذج>
</الجدول>
<%
}
آخر
{
println("مرحبًا،" + checklogin.getUserName() + "!");
}
%>
</TD>
<td width="1" valign="top" bgcolor="#CCCCCC"></td>
<td width="400"> </td>
<td width="1" valign="top" bgcolor="#CCCCCC"></td>
<td width="200"> </td>
</tr>
<tr align="center" bgcolor="#990000">
<td height="60" colspan="5" class="white">حقوق النشر والنسخ لعام 2003 Shopping123</td>
</tr>
</الجدول>
</الجسم>
</html>
reg.jsp<%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<أتش تي أم أل>
<الرأس>
<title>التسوق123</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
</الرأس>
<body bgcolor="#FFFFFF" الهامش الأيسر = "0" الهامش العلوي = "0">
<عرض الجدول = "100%" الارتفاع = "100%" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<tr bgcolor="#990000">
<td height = "80" colspan = "5"> عرض الجدول = "100٪" ارتفاع = "100٪" حدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<تر>
<td width="120"> </td>
<td class="caption">التسوق123</td>
<td width="200"> </td>
</tr>
</الجدول></تد>
</tr>
<تر>
<td width="100" align="center" valign="top"> </td>
<td width="1" valign="top"></td>
<td width="400" align="center" valign="top"><عرض الجدول = "100%" ارتفاع = "20" حدود = "0" cellpadding = "0" تباعد الخلايا = "0">
<تر>
<td> </td>
</tr>
</الجدول>
<عرض الجدول = "100%" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "1" bgcolor = "#CCCCCC">
<طريقة الإجراء = "regpost.jsp" = "post" name = "form1">
<tr align="center">
<td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">تسجيل الأعضاء</td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">عضو</td>
<td محاذاة = "center" bgcolor = "#FFFFFF"> اسم الإدخال = "اسم المستخدم" نوع = "نص" id = "اسم المستخدم" حجم = "16"></td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">كلمة المرور</td>
<td محاذاة = "center" bgcolor = "#FFFFFF"> اسم الإدخال = "كلمة المرور" نوع = "كلمة المرور" id = "كلمة المرور" الحجم = "16"></td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">التحقق من كلمة المرور</td>
<td align="center" bgcolor="#FFFFFF"><إدخال الاسم = "تأكيد" نوع = "كلمة المرور" id = "تأكيد" الحجم = "16"></td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">البريد الإلكتروني</td>
<td align="center" bgcolor="#FFFFFF"><اسم الإدخال = "email" type = "text" id = "email" size = "16"></td>
</tr>
<تر>
<td width = "50%" height = "24" align = "center" bgcolor = "#FFFFFF"><input type = "submit" name = "Submit" value = "إعادة الكتابة" ></td>
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit2" value="Register"></td>
</tr>
</النموذج>
</الجدول></تد>
<td width="1" valign="top"></td>
<td width="100"> </td>
</tr>
<tr align="center" bgcolor="#990000">
<td height="60" colspan="5" class="white">حقوق النشر والنسخ لعام 2003 Shopping123</td>
</tr>
</الجدول>
</الجسم>
</html>
regpost.jsp: صفحة إرسال نموذج التسجيل <%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<%@ صفحة الاستيراد = "reg"٪>
<أتش تي أم أل>
<الرأس>
<title>التسوق123</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
</الرأس>
<body bgcolor="#FFFFFF" الهامش الأيسر = "0" الهامش العلوي = "0">
<%
String username = new String(request.getParameter("username").getBytes("ISO8859_1")).trim();
كلمة مرور السلسلة = سلسلة جديدة (request.getParameter("password").getBytes("ISO8859_1")).trim();
تأكيد السلسلة = سلسلة جديدة (request.getParameter("confirm").getBytes("ISO8859_1")).trim();
String email = new String(request.getParameter("email").getBytes("ISO8859_1")).trim();
%>
<عرض الجدول = "100%" الارتفاع = "100%" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<tr bgcolor="#990000">
<td height = "80" colspan = "5"> عرض الجدول = "100٪" ارتفاع = "100٪" حدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<تر>
<td width="120"> </td>
<td class="caption">التسوق123</td>
<td width="200"> </td>
</tr>
</الجدول></تد>
</tr>
<تر>
<td width="100" align="center" valign="top"> </td>
<td width="1" valign="top"></td>
<td width="400" align="center" valign="top">
<عرض الجدول = "100%" الارتفاع = "20" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "0">
<تر>
<td> </td>
</tr>
</الجدول>
<jsp:useBean id = "regID" class = "reg" نطاق = "جلسة"/>
<%
إذا (regID.reg(اسم المستخدم، كلمة المرور، تأكيد، البريد الإلكتروني))
{
out.print("موافق");
String newID = regID.getID() + "";
%>
<عرض الجدول = "100%" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "1" bgcolor = "#CCCCCC">
<tr align="center">
<td height = "30" colspan = "2" bgcolor = "#CCCCCC" class = "deepred">تهانينا، لقد تم تسجيلك بنجاح! </TD>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">الرقم</td>
<td align="center" bgcolor="#FFFFFF"><%=newID%></td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">عضو</td>
<td align="center" bgcolor="#FFFFFF"><%=اسم المستخدم%></td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">كلمة المرور</td>
<td align="center" bgcolor="#FFFFFF"><%=password%></td>
</tr>
<تر>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">البريد الإلكتروني</td>
<td align="center" bgcolor="#FFFFFF"><%=email%></td>
</tr>
</الجدول>
<%
out.print("<br>");
out.print("<a href=javascript:window. Close()>إغلاق</a>");
}آخر{
out.print("فشل التسجيل!<br>");
out.print("اسم المستخدم هذا مستخدم بالفعل، يرجى استخدام اسم مستخدم آخر!");
out.print("<a href=javascript:history.go(-1)>العودة</a>");
}
%>
</TD>
<td width="1" valign="top"></td>
<td width="100"> </td>
</tr>
<tr align="center" bgcolor="#990000">
<td height="60" colspan="5" class="white">حقوق النشر والنسخ لعام 2003 Shopping123</td>
</tr>
</الجدول>
</الجسم>
</html>
لقد أكملنا حتى الآن نظام تسجيل المستخدم وتسجيل الدخول. نظرًا لأن هذا قد تم إكماله بنفسي أثناء التعلم، فلا بد أن يكون هناك العديد من العيوب في الكود، فالجميع مرحب به لانتقادي وتصحيحي. لقد تم اختبار جميع الرموز المذكورة أعلاه بواسطتي.