Заявление: Оригинал автора, все права защищены. Несанкционированное воспроизведение запрещено. Используйте bean-компоненты и сервлеты для совместной реализации регистрации и входа пользователей в jsp.
Автор: imagebear.
Авторские права: imagebear
Программное обеспечение и операционная среда, необходимые для этого примера:
1. Операционная система Windows2000 Server.
2.jdk1.4
3. JCreator2.5 (отладчик редактирования исходного кода Java, рекомендуется тем, кого рвет кровью!)
4. Макромедиа JRun MX
5. Macromedia Dreamweaver MX (необязательно)
6. База данных MySQL (лучше всего установить MySQL Control Center)
1. Проектирование базы данных Откройте базу данных MySQL с помощью MySQL Control Center, создайте новую базу данных Shopping и под ней создайте новую таблицу tbl_user, где каждое поле установлено следующим образом:
2. Напишите компонент базы данных подключения: DBConn.java.
//DBConn.java
//включаем необходимые классы
импорт java.sql.*
//======================================
;= =
// Определить ClassDBConn
//========================================
общедоступный классDBConn
{
общедоступная строка sql_driver = "org.gjt.mm.mysql.Driver";
общедоступная строка sql_url = "jdbc:mysql://localhost:3306";
общественная строка sql_DBName = «покупки»;
пользователь публичной строки = «са»;
общедоступная строка pwd = ""
Connection conn = null;
Заявление stmt = null;
ResultSet rs = null;
public boolean setDriver (String drv)
{
this.sql_driver = дрв;
вернуть истину;
}
Публичная строка getDriver()
{
верните этот.sql_driver;
}
Public boolean setUrl (URL-строка)
{
this.sql_url = URL;
вернуть истину;
}
Публичное логическое значение setDBName (String dbname)
{
this.sql_DBName = имя_базы данных;
вернуть истину;
}
Публичная строка getDBName()
{
вернуть this.sql_DBName;
}
Public boolean setUser (строковый пользователь)
{
this.user = пользователь;
вернуть истину;
}
Публичная строка getUser()
{
вернуть этого.пользователя;
}
Публичное логическое значение setPwd (String 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();
}catch(Исключение е){
System.out.println(e.toString());
}
}
//Выполняем операцию запроса
общедоступный набор результатов ExecuteQuery (String strSql)
{
пытаться{
this.rs = stmt.executeQuery(strSql);
верните этот.rs;
}catch(SQLException e){
System.out.println(e.toString());
вернуть ноль;
}catch(NullPointerException e){
System.out.println(e.toString());
вернуть ноль;
}
}
//Выполняем операции вставки, удаления и изменения данных
общедоступное логическое выполнение (String strSql)
{
пытаться{
если (this.stmt.executeUpdate (strSql) == 0)
вернуть ложь;
еще
вернуть истину;
}catch(SQLException e){
System.out.println(e.toString());
вернуть ложь;
}catch(NullPointerException e){
System.out.println(e.toString());
вернуть ложь;
}
}
//Указатель результирующего набора переходит на определенную строку
общедоступное логическое значение rs_absolute (int row)
{
пытаться{
this.rs.absolute(строка);
вернуть истину;
}catch(SQLException e){
System.out.println(e.toString());
вернуть ложь;
}
}
Публичная недействительность rs_afterLast()
{
пытаться{
this.rs.afterLast();
}catch(SQLException e){
System.out.println(e.toString());
}
}
Публичная недействительность rs_beforeFirst()
{
пытаться{
this.rs.beforeFirst();
}catch(SQLException e){
System.out.print(e.toString());
}
}
Публичная недействительность rs_close()
{
пытаться{
это.rs.close();
}catch(SQLException e){
System.out.print(e.toString());
}
}
Публичная недействительность rs_deleteRow()
{
пытаться{
this.rs.deleteRow();
}catch(SQLException e){
System.out.print(e.toString());
}
}
общедоступное логическое значение rs_first()
{
пытаться{
это.rs.first();
вернуть истину;
}catch(SQLException e){
System.out.print(e.toString());
вернуть ложь;
}
}
Публичная строка rs_getString (столбец String)
{
пытаться{
вернуть this.rs.getString(столбец);
}catch(SQLException e){
System.out.println(e.toString());
вернуть ноль;
}
}
//Этот метод используется для получения больших фрагментов текста,
//Заменяем возврат каретки и перевод строки на <br>
//Вывод на html-страницу
общедоступная строка rs_getHtmlString (столбец String)
{
пытаться{
Строка str1 = this.rs.getString(столбец);
Строка str2 = "rn";
Строка str3 = "<br>";
вернуть this.replaceAll(str1,str2,str3);
}catch(SQLException e){
System.out.println(e.toString());
вернуть ноль;
}
}
//Заменяем строку str2 в строке str1 на строку str3
частная статическая строка replaceAll (String str1, String str2, String str3)
{
StringBuffer strBuf = новый StringBuffer (str1);
интервал индекса = 0;
while(str1.indexOf(str2,index)!=-1)
{
index=str1.indexOf(str2,index);
strBuf.replace(str1.indexOf(str2,index),str1.indexOf(str2,index)+str2.length(),str3);
индекс=индекс+str3.length();
str1=strBuf.toString();
}
вернуть strBuf.toString();
}
Public int rs_getInt (столбец String)
{
пытаться{
вернуть this.rs.getInt(столбец);
}catch(SQLException e){
System.out.println(e.toString());
вернуть -1;
}
}
Public int rs_getInt (столбец int)
{
пытаться{
вернуть this.rs.getInt(столбец);
}catch(SQLException e){
System.out.println(e.toString());
вернуть -1;
}
}
общедоступное логическое значение rs_next()
{
пытаться{
вернуть this.rs.next();
}catch(SQLException e){
System.out.println(e.toString());
вернуть ложь;
}
}
//Определяем, есть ли данные в наборе результатов
общедоступное логическое значение hasData()
{
пытаться{
логическое значение has_Data = this.rs.first();
this.rs.beforeFirst();
вернуть has_Data;
}catch(SQLException e){
System.out.println(e.toString());
вернуть ложь;
}
}
общедоступное логическое значение rs_last()
{
пытаться{
верните this.rs.last();
}catch(SQLException e){
System.out.println(e.toString());
вернуть ложь;
}
}
общедоступное логическое значение rs_previous()
{
пытаться{
вернуть this.rs.previous();
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
//основной метод, используемый для отладки
public static void main(String args[])
{
пытаться{
DBConn myconn = новый DBConn();
//myconn.setDBName("покупки");
//myconn.DBConn();
//myconn.execute("Вставить в tbl_test(id,name) значения('10','shandaer')");
//myconn.execute("Обновить набор tbl_test name='yyyyyyyyyyyy' где id=10");
//myconn.execute("Удалить из tbl_test, где id=1");
ResultSet rs = myconn.executeQuery("выберите * из порядка tbl_user по идентификатору desc limit 1");
//логическое значение hasData = myconn.hasData();
//System.out.println("имеет данные:" + hasData);
//rs.first();
пока (myconn.rs.next())
{
int id = 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));
}
}catch(Исключение е){
System.err.println(e.toString());
}
}
}
Утверждение: поскольку вы используете базу данных MySQL, вам необходимо загрузить драйвер базы данных MySQL. После загрузки поместите пакет org в каталог, где находится DBConn.java, чтобы гарантировать нормальную работу компонента.
3. Напишите компонент для регистрации пользователя: reg.java.
//reg.java
//импортируем необходимые классы
java.sql
.*;
{
общественный ИНТ newID = 0;
общедоступный логический результат = ложь;
общедоступная логическая регистрация (строка имени пользователя, строка пароля, строка подтверждения, строка электронной почты)
{
пытаться{
if(!this.checkUser(имя пользователя))
вернуть ложь;
если(!this.checkPwd(пароль))
вернуть ложь;
if(!this.verifyPwd(пароль,подтвердить))
вернуть ложь;
if(!this.checkEmail(электронная почта))
вернуть ложь;
if(!this.userNotExit(имя пользователя))
вернуть ложь;
это.getNewID();
this.result = this.register(имя пользователя,пароль,подтверждение,электронная почта);
вернуть этот.результат;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}//Конец логической регистрации
общедоступное логическое значение checkUser (строковый пользователь)
{
пытаться{
if(user.indexOf("'")!=-1)
{
System.out.println("Имя содержит недопустимые символы!");
вернуть ложь;
}еще
вернуть истину;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
общедоступное логическое значение checkPwd(String pwd)
{
пытаться{
if(pwd.indexOf("'")!=-1)
{
System.out.println("Пароль содержит недопустимые символы!");
вернуть ложь;
}еще
вернуть истину;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
общедоступное логическое значениеverifyPwd (строка pwd, строка подтверждения)
{
пытаться{
если(!pwd.equals(подтвердить))
{
System.out.println("Пароли, введенные дважды, несовместимы!");
вернуть ложь;
}еще
вернуть истину;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
общедоступная логическая проверкаEmail (строка электронной почты)
{
пытаться{
if(email.indexOf("'")!=-1)
{
System.out.println("Электронное письмо содержит недопустимые символы!");
вернуть ложь;
}еще
вернуть истину;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
общедоступное логическое значение userNotExit (строковый пользователь)
{
пытаться{
DBConn userDBConn = новый DBConn();
userDBConn.executeQuery("select * from tbl_user, где name="" + user + "'");
если (userDBConn.rs_next())
{
System.out.println("Имя пользователя уже существует, выберите другое имя пользователя!");
вернуть ложь;
}еще
вернуть истину;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
публичный int getNewID()
{
пытаться{
DBConn newIDDBConn = новый DBConn();
newIDDBConn.executeQuery("выберите * из порядка tbl_user по идентификатору desc limit 1");
если (newIDDBConn.rs_next())
{
this.newID = newIDDBConn.rs_getInt("id") + 1;
System.out.println(this.newID);
}еще{
this.newID = 1;
}
вернуть этот.новыйID;
}catch(Исключение е){
System.out.println(e.toString());
вернуть -1;
}
}
публичный int getID()
{
вернуть этот.новыйID;
}
общедоступный логический регистр (строка имени пользователя, строка пароля, строка подтверждения, строка электронной почты)
{
пытаться{
DBConn regDBConn = новый DBConn();
String strSQL = "insert in tbl_user(id,name,pwd,email)values('" + this.newID +"','" + имя пользователя + "','" + пароль + "','" + адрес электронной почты + " ')";
regDBConn.execute(strSQL);
вернуть истину;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
public static void main(String args[])
{
пытаться{
reg newreg = новый reg();
System.out.println(newreg.reg("ssssssss", "ssssss", "ssssss", " [email protected] "));
DBConn myconn = новый 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());
}catch(Исключение е){
System.err.println(e.toString());
}
}
};
проиллюстрируйте:
1. Файл компонента должен быть помещен в тот же каталог, что и файл DBConn.class, упомянутый выше.
2. В этом примере в основном рассматривается процесс регистрации. Обнаружение электронной почты и другие методы не идеальны. Если вы хотите применить его, разработайте свой собственный метод.
4. Напишите сервлет для входа пользователя: login.java.
//login.java
//импортируем необходимые классы
импортировать java.io.*;
импортировать javax.servlet.*;
импортировать javax.servlet.http.*;
импорт java.sql.*;
// вход в класс
вход в общедоступный класс расширяет HttpServlet
{
public void doGet (требование HttpServletRequest, разрешение HttpServletResponse)
бросаетIOException, ServletException
{
Строка username = req.getParameter("username");
Строковый пароль = req.getParameter("пароль");
if(this.checklogin(имя пользователя,пароль))
{
Cookie mylogin = новый Cookie("имя пользователя",имя пользователя);
мойлогин.setVersion(1);
mylogin.setPath("/");
mylogin.setComment("Ваше имя пользователя для входа");
res.addCookie(мойлогин);
}
//Cookie[] myCookies = req.getCookies();
//Строка nameValue = this.getCookieValue(myCookies,"имя пользователя","не найдено");
//PrintWriter out = res.getWriter();
//out.println("имя пользователя" + ":" + nameValue);
//out.println("Проверка успеха файла cookie!");
res.sendRedirect("/index.jsp");
}
public void doPost (требование HttpServletRequest, разрешение HttpServletResponse)
бросаетIOException, ServletException
{
doGet (требование, рез);
}
public static String getCookieValue (Cookie[] cookie, String cookieName, String defaultValue)
{
for(int i=0;i<cookies.length;i++) {
Файл cookie = файлы cookie[i];
если (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
возврат (значение по умолчанию);
}
общедоступный логический вход в систему (имя пользователя String, пароль String)
{
пытаться{
DBConn loginConn = новый DBConn();
loginConn.executeQuery("select * from tbl_user, где name='" + имя пользователя + "'");
если (loginConn.rs_next())
{
System.out.println("Соединение создано!");
if(loginConn.rs_getString("pwd").trim().equals(пароль))
{
System.out.println(loginConn.rs_getString("имя"));
вернуть истину;
}
еще
{
вернуть ложь;
}
}
System.out.println("Проверка успешного входа в систему!");
вернуть ложь;
}catch(Исключение е){
System.out.println(e.toString());
вернуть ложь;
}
}
public static void main(String args[])
{
вход mylogin = новый вход();
System.out.println(mylogin.checklogin("Шаньдун","Шаньдун"));
}
}
иллюстрируем:
1. В jdk1.4 по умолчанию нет пакета сервлетов. Перейдите на веб-сайт компании Sun, чтобы загрузить servlet.jar, поместите его в каталог jrelib в каталоге jdk и добавьте пакет servlet.jar в каталог. jdk в JCreator
2. Этот сервлет используется для проверки имени пользователя и пароля. Если оно правильное, имя пользователя будет записано в файл cookie. После завершения текущая страница будет перенаправлена на страницу index.jsp.
5. Напишите компонент, определяющий, вошел ли пользователь в систему: checkLogin.java
//checkLogin.java
//импортируем необходимые классы.
импортировать java.io.*;
импортировать javax.servlet.*;
импорт javax.servlet.http.*;
//класс checkLogin
публичный класс checkLogin
{
имя пользователя публичной строки = "";
общедоступная логическая проверка (HttpServletRequest req, HttpServletResponse res)
бросаетIOException, ServletException
{
Строка cookieName = «имя пользователя»;
Cookie[] myCookies = req.getCookies();
this.username = this.getCookieValue(myCookies,cookieName, «не найдено»);
PrintWriter out = res.getWriter();
если (это.имя пользователя! = ноль)
{
//out.println("Доброе утро," + this.username + "!");
вернуть истину;
}еще{
out.println("Не удалось войти!");
вернуть ложь;
}
}
публичная строка getUserName()
{
вернуть это.имя_пользователя;
}
public static String getCookieValue (Cookie[] cookie, String cookieName, String defaultValue)
{
for(int i=0;i<cookies.length;i++) {
Файл cookie = файлы cookie[i];
если (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
возврат (значение по умолчанию);
}
}
Описание: Этот компонент определяет имя пользователя в файле cookie. Если оно не пустое, это означает, что вы вошли в систему, в противном случае — вы не вошли в систему. Метод не идеален, вы можете расширить его самостоятельно.
6. Создайте сервер покупок в JRun. Откройте администратор JRun и создайте новый сервер покупок. Порт — 8101.
Скопируйте все скомпилированные файлы классов, упомянутые выше, вместе с пакетом org в папку классов в каталоге, где находится торговый сервер JRun. Путь:
C:JRun4serversshoppingdefault-eardefault-warWEB-INFclasses
7. Создайте JSP-файл приложения DW в каталоге C:JRun4serversshoppingdefault-eardefault-war. Создайте новый файл jsp следующим образом:
index.jsp:
<%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<html>
<голова>
<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" leftmargin="0" topmargin="0">
<jsp:useBean id="checklogin" class="checkLogin"scope="page"/>
<%
логический вход = checklogin.check(запрос,ответ);
%>
<table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<tr bgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<тр>
<td width="120"> </td>
<td class="caption">Покупки123</td>
<td width="200"> </td>
</tr>
</таблица></тд>
</tr>
<тр>
<td width="200" align="center" valign="top"><table width="100%" height="20" border="0" cellpadding="0" cellpacing="0">
<тр>
<td> </td>
</tr>
</таблица>
<%
если(!логин){
%>
<table width="90%" border="0" align="center" cellpadding="0" cellpacing="1" bgcolor="#CCCCCC">
<form name="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 align="center" bgcolor="#FFFFFF"><input name="username" type="text" id="username" size="10"></td>
</tr>
<тр>
<td height="24" align="center" bgcolor="#FFFFFF">Пароль</td>
<td align="center" bgcolor="#FFFFFF"><input name="password" type="text" id="password" size="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>
</форма>
</таблица>
<%
}
еще
{
out.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" %>
<html>
<голова>
<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" leftmargin="0" topmargin="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<tr bgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellpacing="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"><table width="100%" height="20" border="0" cellpadding="0" cellpacing="0">
<тр>
<td> </td>
</tr>
</таблица>
<table width="100%" border="0" cellpadding="0" cellpacing="1" bgcolor="#CCCCCC">
<form action="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 align="center" bgcolor="#FFFFFF"><input name="username" type="text" id="username" size="16"></td>
</tr>
<тр>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Пароль</td>
<td align="center" bgcolor="#FFFFFF"><input name="password" type="password" id="password" size="16"></td>
</tr>
<тр>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Подтвердить пароль</td>
<td align="center" bgcolor="#FFFFFF"><input name="confirm" type="password" id="confirm" size="16"></td>
</tr>
<тр>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Электронная почта</td>
<td align="center" bgcolor="#FFFFFF"><input name="email" type="text" id="email" size="16"></td>
</tr>
<тр>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="Rewrite"></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" %>
<%@ страница import="reg"%>
<html>
<голова>
<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" leftmargin="0" topmargin="0">
<%
String username = new String(request.getParameter("username").getBytes("ISO8859_1")).trim();
Строковый пароль = новая строка(request.getParameter("пароль").getBytes("ISO8859_1")).trim();
Строка подтверждения = новая строка(request.getParameter("confirm").getBytes("ISO8859_1")).trim();
Строка электронной почты = новая строка(request.getParameter("электронная почта").getBytes("ISO8859_1")).trim();
%>
<table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<tr bgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellpacing="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">
<table width="100%" height="20" border="0" cellpadding="0" cellpacing="0">
<тр>
<td> </td>
</tr>
</таблица>
<jsp:useBean id="regID" class="reg"scope="session"/>
<%
if(regID.reg(имя пользователя,пароль,подтверждение,адрес электронной почты))
{
out.print("ОК");
Строка newID = regID.getID() + "";
%>
<table width="100%" border="0" cellpadding="0" cellpacing="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"><%=username%></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"><%=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)>Return</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>
На данный момент мы завершили систему регистрации и входа пользователей. Поскольку это было сделано мной во время обучения, в коде должно быть много недостатков. Каждый может меня критиковать и исправлять. Все приведенные выше коды были проверены мной.