Declaración: Original del autor, todos los derechos reservados. No se permite la reproducción no autorizada. Utilice beans y servlets para implementar conjuntamente el registro de usuario y el inicio de sesión en jsp
.
Copyright: imagebear
Software y entorno operativo necesarios para este ejemplo:
1. Sistema operativo del servidor Windows2000
2.jdk1.4
3. JCreator2.5 (depurador de edición de código fuente de Java, ¡recomendado para quienes vomitan sangre!)
4. Macromedia JRun MX
5. Macromedia Dreamweaver MX (opcional)
6. Base de datos MySQL (es mejor instalar MySQL Control Center)
1. Diseño de la base de datos Abra la base de datos MySQL con MySQL Control Center, cree una nueva base de datos y cree una nueva tabla tbl_user debajo, con cada campo configurado de la siguiente manera:
2. Escriba el bean de base de datos de conexión: DBConn.java
//DBConn.java
//incluye las clases requeridas
importar java.sql.*
//========================================= = =
// Definir ClassDBConn
//============================================
clase públicaDBConn
{
cadena pública sql_driver = "org.gjt.mm.mysql.Driver";
cadena pública sql_url = "jdbc:mysql://localhost:3306";
cadena pública sql_DBName = "compras";
usuario de cadena pública = "sa";
cadena pública pwd = "";
conexión de conexión = nulo;
Declaración stmt = nulo;
ResultSet rs = nulo;
setDriver booleano público (String drv)
{
this.sql_driver = drv;
devolver verdadero;
}
cadena pública getDriver()
{
devolver this.sql_driver;
}
setUrl público booleano (URL de cadena)
{
this.sql_url = URL;
devolver verdadero;
}
público booleano setDBName(String dbname)
{
this.sql_DBName = nombrebd;
devolver verdadero;
}
cadena pública getDBName()
{
devolver this.sql_DBName;
}
setUser público booleano (usuario de cadena)
{
this.usuario = usuario;
devolver verdadero;
}
cadena pública getUser()
{
devolver este.usuario;
}
setPwd público booleano (contraseña de cadena)
{
this.pwd = contraseña;
devolver verdadero;
}
cadena pública getPwd()
{
devolver este.pwd;
}
publicDBConn()
{
intentar{
Class.forName(sql_driver);//Cargar el controlador de la base de datos
this.conn = DriverManager.getConnection(sql_url + "/" + sql_DBName + "?user=" + usuario + "&password=" + pwd + "&useUnicode=true&characterEncoding=gb2312");
this.stmt = this.conn.createStatement();
}catch(Excepción e){
System.out.println(e.toString());
}
}
//Realizar operación de consulta
conjunto de resultados público ejecutar consulta (cadena strSql)
{
intentar{
this.rs = stmt.executeQuery(strSql);
devolver esto.rs;
}catch(SQLException e){
System.out.println(e.toString());
devolver nulo;
}catch(NullPointerException e){
System.out.println(e.toString());
devolver nulo;
}
}
//Realizar operaciones de inserción, eliminación y modificación de datos
ejecución booleana pública (String strSql)
{
intentar{
si(this.stmt.executeUpdate(strSql) == 0)
devolver falso;
demás
devolver verdadero;
}catch(SQLException e){
System.out.println(e.toString());
devolver falso;
}catch(NullPointerException e){
System.out.println(e.toString());
devolver falso;
}
}
//El puntero del conjunto de resultados salta a una fila determinada
público booleano rs_absolute (fila int)
{
intentar{
this.rs.absolute(fila);
devolver verdadero;
}catch(SQLException e){
System.out.println(e.toString());
devolver falso;
}
}
público vacío rs_afterLast()
{
intentar{
this.rs.afterLast();
}catch(SQLException e){
System.out.println(e.toString());
}
}
público vacío rs_beforeFirst()
{
intentar{
this.rs.beforeFirst();
}catch(SQLException e){
System.out.print(e.toString());
}
}
público vacío rs_close()
{
intentar{
this.rs.close();
}catch(SQLException e){
System.out.print(e.toString());
}
}
público vacío rs_deleteRow()
{
intentar{
this.rs.deleteRow();
}catch(SQLException e){
System.out.print(e.toString());
}
}
público booleano rs_first()
{
intentar{
this.rs.first();
devolver verdadero;
}catch(SQLException e){
System.out.print(e.toString());
devolver falso;
}
}
cadena pública rs_getString (columna de cadena)
{
intentar{
devolver this.rs.getString(columna);
}catch(SQLException e){
System.out.println(e.toString());
devolver nulo;
}
}
//Este método se utiliza para obtener grandes secciones de texto,
//Reemplazar el retorno de carro y el avance de línea con <br>
//Salida a la página html
Cadena pública rs_getHtmlString (columna de cadena)
{
intentar{
Cadena str1 = this.rs.getString(columna);
Cadena str2 = "rn";
Cadena str3 = "<br>";
devuelve this.replaceAll(str1,str2,str3);
}catch(SQLException e){
System.out.println(e.toString());
devolver nulo;
}
}
//Reemplaza la cadena str2 en la cadena str1 con la cadena str3
Cadena estática privada reemplazar todo (cadena str1, cadena str2, cadena str3)
{
StringBuffer strBuf = nuevo StringBuffer(str1);
índice int = 0;
mientras(str1.indexOf(str2,índice)!=-1)
{
índice=str1.indexOf(str2,índice);
strBuf.replace(str1.indexOf(str2,index),str1.indexOf(str2,index)+str2.length(),str3);
índice=índice+str3.length();
str1=strBuf.toString();
}
devolver strBuf.toString();
}
public int rs_getInt (columna de cadena)
{
intentar{
devolver this.rs.getInt(columna);
}catch(SQLException e){
System.out.println(e.toString());
devolver -1;
}
}
public int rs_getInt (columna int)
{
intentar{
devolver this.rs.getInt(columna);
}catch(SQLException e){
System.out.println(e.toString());
devolver -1;
}
}
público booleano rs_next()
{
intentar{
devolver this.rs.next();
}catch(SQLException e){
System.out.println(e.toString());
devolver falso;
}
}
//Determinar si hay datos en el conjunto de resultados
hasData público booleano()
{
intentar{
booleano has_Data = this.rs.first();
this.rs.beforeFirst();
devolver tiene_Datos;
}catch(SQLException e){
System.out.println(e.toString());
devolver falso;
}
}
público booleano rs_last()
{
intentar{
devolver this.rs.last();
}catch(SQLException e){
System.out.println(e.toString());
devolver falso;
}
}
público booleano rs_previous()
{
intentar{
devolver this.rs.previous();
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
//método principal, usado para depurar
principal vacío estático público (argumentos de cadena [])
{
intentar{
DBConn miconn = nuevo DBConn();
//myconn.setDBName("compras");
//myconn.DBConn();
//myconn.execute("Insertar en tbl_test(id,nombre) valores('10','shandaer')");
//myconn.execute("Actualizar tbl_test set name='yyyyyyyyyyyy' donde id=10");
//myconn.execute("Eliminar de tbl_test donde id=1");
ResultSet rs = myconn.executeQuery("select * from tbl_user order by id desc limit 1");
//booleano hasData = myconn.hasData();
//System.out.println("tiene datos:" + hasData);
//rs.primero();
mientras (myconn.rs.siguiente())
{
int identificación = myconn.rs_getInt("identificación") + 1;
Sistema.out.print(id);
System.out.println(myconn.rs_getInt("id") + myconn.rs_getString("nombre"));
//System.out.println('n' + myconn.rs_getHtmlString("nombre"));
//System.out.println(myconn.rs.getString("nombre") + myconn.rs_getInt(1));
}
}catch(Excepción e){
System.err.println(e.toString());
}
}
}
Declaración: debido a que está utilizando una base de datos MySQL, necesita descargar el controlador de la base de datos MySQL. Después de la descarga, coloque el paquete org en el directorio donde se encuentra DBConn.java para asegurarse de que el bean pueda ejecutarse normalmente.
3. Escriba el bean para el registro de usuario: reg.java
//reg.java
//importar clases requeridas
importar java.sql.*;
registro de clase pública
{
público int nuevoID = 0;
resultado booleano público = falso;
registro booleano público (nombre de usuario de cadena, contraseña de cadena, confirmación de cadena, correo electrónico de cadena)
{
intentar{
if(!this.checkUser(nombre de usuario))
devolver falso;
if(!this.checkPwd(contraseña))
devolver falso;
if(!this.verifyPwd(contraseña,confirmar))
devolver falso;
if(!this.checkEmail(correo electrónico))
devolver falso;
if(!this.userNotExit(nombre de usuario))
devolver falso;
this.getNewID();
this.result = this.register(nombre de usuario,contraseña,confirmación,correo electrónico);
devolver este resultado;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}//Finalizar registro booleano
usuario de verificación booleano público (usuario de cadena)
{
intentar{
si(usuario.indexOf("'")!=-1)
{
System.out.println("¡El nombre contiene caracteres ilegales!");
devolver falso;
}demás
devolver verdadero;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
checkPwd booleano público (contraseña de cadena)
{
intentar{
si(pwd.indexOf("'")!=-1)
{
System.out.println("¡La contraseña contiene caracteres ilegales!");
devolver falso;
}demás
devolver verdadero;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
pwd de verificación booleana pública (contraseña de cadena, confirmación de cadena)
{
intentar{
si(!pwd.equals(confirmar))
{
System.out.println("¡Las contraseñas ingresadas dos veces son inconsistentes!");
devolver falso;
}demás
devolver verdadero;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
cheque booleano públicoCorreo electrónico (cadena de correo electrónico)
{
intentar{
if(correo electrónico.indexOf("'")!=-1)
{
System.out.println("¡El correo electrónico contiene caracteres ilegales!");
devolver falso;
}demás
devolver verdadero;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
usuario booleano públicoNotExit (usuario de cadena)
{
intentar{
Usuario DBConnDBConn = nuevo DBConn();
userDBConn.executeQuery("seleccione * de tbl_user donde nombre='" + usuario + "'");
si(usuarioDBConn.rs_next())
{
System.out.println("El nombre de usuario ya existe, ¡elija otro nombre de usuario!");
devolver falso;
}demás
devolver verdadero;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
público int getNewID()
{
intentar{
DBConn nuevoIDDBConn = nuevo DBConn();
newIDDBConn.executeQuery("seleccione * del orden tbl_user por id desc límite 1");
si(newIDDBConn.rs_next())
{
this.newID = newIDDBConn.rs_getInt("id") + 1;
System.out.println(este.nuevoID);
}demás{
this.newID = 1;
}
devolver this.newID;
}catch(Excepción e){
System.out.println(e.toString());
devolver -1;
}
}
público int getID()
{
devolver this.newID;
}
registro booleano público (nombre de usuario de cadena, contraseña de cadena, confirmación de cadena, correo electrónico de cadena)
{
intentar{
DBConn regDBConn = nuevo DBConn();
String strSQL = "insertar en tbl_user(id,nombre,contraseña,correo electrónico) valores('" + this.newID +"','" + nombre de usuario + "','" + contraseña + "','" + correo electrónico + " ')";
regDBConn.execute(strSQL);
devolver verdadero;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
principal vacío estático público (argumentos de cadena [])
{
intentar{
reg nuevoreg = nuevo registro();
System.out.println(newreg.reg("sssssssss","ssssss","ssssss"," [email protected] "));
DBConn miconn = nuevo DBConn();
myconn.executeQuery("seleccione * de tbl_user");
mientras(myconn.rs_next())
{
System.out.println(myconn.rs_getInt("id") + " " + myconn.rs_getString("nombre") + " " + myconn.rs_getString("contraseña") + " " + myconn.rs_getString("correo electrónico") );
}
System.out.println(newreg.getID());
}catch(Excepción e){
System.err.println(e.toString());
}
}
};
ilustrar:
1. El archivo bean debe colocarse en el mismo directorio que el archivo DBConn.class mencionado anteriormente.
2. Este ejemplo estudia principalmente el proceso de registro. La detección de correo electrónico y otros métodos no son perfectos. Si desea aplicarlo, diseñe su propio método.
4. Escriba el servlet para el inicio de sesión del usuario: login.java
//login.java
//importar clases requeridas
importar java.io.*;
importar javax.servlet.*;
importar javax.servlet.http.*;
importar java.sql.*
// inicio de sesión de clase
El inicio de sesión de clase pública extiende HttpServlet
{
doGet público vacío (solicitud HttpServletRequest, resolución HttpServletResponse)
lanzaIOException,ServletException
{
Nombre de usuario de cadena = req.getParameter("nombre de usuario");
Contraseña de cadena = req.getParameter("contraseña");
if(this.checklogin(nombre de usuario,contraseña))
{
Cookie mylogin = nueva Cookie("nombre de usuario",nombre de usuario);
milogin.setVersion(1);
mylogin.setPath("/");
mylogin.setComment("Su nombre de usuario de inicio de sesión");
res.addCookie(miiniciar sesión);
}
//Cookie[] misCookies = req.getCookies();
//String nameValue = this.getCookieValue(myCookies,"username","not found");
//PrintWriter fuera = res.getWriter();
//out.println("nombre de usuario" + ":" + nombreValor);
//out.println("¡Prueba exitosa de la cookie!");
res.sendRedirect("/index.jsp");
}
public void doPost (solicitud HttpServletRequest, resolución HttpServletResponse)
lanzaIOException,ServletException
{
doGet(req,res);
}
cadena estática pública getCookieValue (cookie [] cookies, cadena nombre de cookie, cadena valor predeterminado)
{
for(int i=0;i<cookies.length;i++) {
Galleta galleta = cookies[i];
si (nombrecookie.equals(cookie.getName()))
return(cookie.getValue());
}
retorno (valor predeterminado);
}
inicio de sesión booleano público (nombre de usuario de cadena, contraseña de cadena)
{
intentar{
DBConn loginConn = nuevo DBConn();
loginConn.executeQuery("seleccione * de tbl_user donde nombre='" + nombre de usuario + "'");
si(loginConn.rs_next())
{
System.out.println("¡Conexión creada!");
if(loginConn.rs_getString("pwd").trim().equals(contraseña))
{
System.out.println(loginConn.rs_getString("nombre"));
devolver verdadero;
}
demás
{
devolver falso;
}
}
System.out.println("¡Prueba de inicio de sesión exitosa!");
devolver falso;
}catch(Excepción e){
System.out.println(e.toString());
devolver falso;
}
}
principal vacío estático público (argumentos de cadena [])
{
iniciar sesión mi inicio de sesión = nuevo inicio de sesión();
System.out.println(mylogin.checklogin("shandong","shandong"));
}
}
ilustrar:
1. No hay ningún paquete de servlet en el jdk1.4 predeterminado. Vaya al sitio web de Sun Company para descargar servlet.jar, colóquelo en el directorio jrelib bajo el directorio jdk y agregue el paquete servlet.jar al archivo. configuración jdk en JCreator
2. Este servlet se utiliza para verificar el nombre de usuario y la contraseña. Si son correctos, el nombre de usuario se escribirá en la cookie. Una vez completado, la página actual será redirigida a la página index.jsp.
5. Escriba un bean para detectar si el usuario ha iniciado sesión: checkLogin.java
//checkLogin.java
//importar las clases requeridas
importar java.io.*;
importar javax.servlet.*;
importar javax.servlet.http.*
//clase checkLogin
verificación de clase públicaIniciar sesión
{
nombre de usuario de cadena pública = "";
verificación booleana pública (solicitud HttpServletRequest, resolución HttpServletResponse)
lanzaIOException,ServletException
{
Cadena cookieName = "nombre de usuario";
Cookie[] misCookies = req.getCookies();
this.username = this.getCookieValue(misCookies,cookieName,"no encontrado");
PrintWriter fuera = res.getWriter();
si (este.nombre de usuario! = nulo)
{
//out.println("Buenos días", + this.username + "!");
devolver verdadero;
}demás{
out.println("¡Error al iniciar sesión!");
devolver falso;
}
}
cadena pública getUserName()
{
devolver este.nombre de usuario;
}
cadena estática pública getCookieValue (cookie [] cookies, cadena nombre de cookie, cadena valor predeterminado)
{
for(int i=0;i<cookies.length;i++) {
Galleta galleta = cookies[i];
si (nombrecookie.equals(cookie.getName()))
return(cookie.getValue());
}
retorno (valor predeterminado);
}
}
Descripción: Este bean detecta el nombre de usuario en la cookie. Si no está vacío, significa que ha iniciado sesión; de lo contrario, significa que no ha iniciado sesión. El método no es perfecto, puedes ampliarlo tú mismo.
6. Cree un servidor de compras en JRun. Abra JRun Administrator y cree un nuevo servidor de compras. El puerto aquí es 8101.
Copie todos los archivos de clase compilados mencionados anteriormente junto con el paquete org a la carpeta de clases en el directorio donde se encuentra el servidor de compras de JRun. La ruta es:
C:JRun4serversshoppingdefault-eardefault-warWEB-INFclasses
7. Cree la aplicación de archivo jsp DW en el directorio C:JRun4serversshoppingdefault-eardefault-war Cree un nuevo archivo jsp de la siguiente manera:
índice.jsp:
<%@ página contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<html>
<cabeza>
<title>Compras123</title>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<enlace href="estilos/shoppingstyle.css" rel="hoja de estilo" tipo="texto/css">
</cabeza>
<cuerpo bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<jsp:useBean id="checklogin" class="checkLogin" alcance="página"/>
<%
inicio de sesión booleano = checklogin.check(solicitud,respuesta);
%>
<table width="100%" height="100%" border="0" cellpadding="0" cellspace="0">
<trbgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<tr>
<td ancho="120"> </td>
<td class="caption">Compras123</td>
<td ancho="200"> </td>
</tr>
</tabla></td>
</tr>
<tr>
<td width="200" align="center" valign="top"><table width="100%" height="20" border="0" cellpadding="0" cellpacing="0">
<tr>
<td></td>
</tr>
</tabla>
<%
si(!iniciar sesión){
%>
<table width="90%" border="0" align="center" cellpadding="0" cellpacing="1" bgcolor="#CCCCCC">
<nombre del formulario="formulario1" método="publicar" acción="/servlet/login">
<tr align="centro" bgcolor="#CCCCCC">
<td height="30" colspan="2" class="deepred">Entrada al almacén</td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Miembro</td>
<td align="center" bgcolor="#FFFFFF"><input name="nombre de usuario" tipo="text" id="nombre de usuario" size="10"></td>
</tr>
<tr>
<td height="24" align="center" bgcolor="#FFFFFF">Contraseña</td>
<td align="center" bgcolor="#FFFFFF"><nombre de entrada="contraseña" tipo="texto" id="contraseña" tamaño="10"></td>
</tr>
<tr>
<td height="24" align="center" bgcolor="#FFFFFF"><a href="reg.jsp" target="_blank" class="red">Registrarse</a></td>
<td align="center" bgcolor="#FFFFFF"><tipo de entrada="enviar" nombre="Enviar" valor="Entrar"></td>
</tr>
</formulario>
</tabla>
<%
}
demás
{
out.println("Hola", + checklogin.getUserName() + "!");
}
%>
</td>
<td width="1" valign="top" bgcolor="#CCCCCC"></td>
<td ancho="400"> </td>
<td width="1" valign="top" bgcolor="#CCCCCC"></td>
<td ancho="200"> </td>
</tr>
<tr align="centro" bgcolor="#990000">
<td height="60" colspan="5" class="white">copyright© 2003 Compras123</td>
</tr>
</tabla>
</cuerpo>
</html>
reg.jsp<%@ página contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<html>
<cabeza>
<title>Compras123</title>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<enlace href="estilos/shoppingstyle.css" rel="hoja de estilo" tipo="texto/css">
</cabeza>
<cuerpo bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<table width="100%" height="100%" border="0" cellpadding="0" cellspace="0">
<trbgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<tr>
<td ancho="120"> </td>
<td class="caption">Compras123</td>
<td ancho="200"> </td>
</tr>
</tabla></td>
</tr>
<tr>
<td width="100" align="center" valign="top"> </td>
<td ancho="1" valign="arriba"></td>
<td width="400" align="center" valign="top"><table width="100%" height="20" border="0" cellpadding="0" cellspace="0">
<tr>
<td></td>
</tr>
</tabla>
<table width="100%" border="0" cellpadding="0" cellpacing="1" bgcolor="#CCCCCC">
<formulario acción="regpost.jsp" método="publicación" nombre="form1">
<tr align="centro">
<td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">Registro de miembro</td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Miembro</td>
<td align="center" bgcolor="#FFFFFF"><input name="nombre de usuario" tipo="text" id="nombre de usuario" size="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Contraseña</td>
<td align="center" bgcolor="#FFFFFF"><nombre de entrada="contraseña" tipo="contraseña" id="contraseña" tamaño="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Verificar contraseña</td>
<td align="center" bgcolor="#FFFFFF"><nombre de entrada="confirmar" tipo="contraseña" id="confirmar" tamaño="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Correo electrónico</td>
<td align="center" bgcolor="#FFFFFF"><input name="correo electrónico" tipo="text" id="correo electrónico" size="16"></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF"><tipo de entrada="enviar" nombre="Enviar" valor="Reescribir"></td>
<td align="center" bgcolor="#FFFFFF"><tipo de entrada="enviar" nombre="Enviar2" valor="Registro"></td>
</tr>
</formulario>
</tabla></td>
<td ancho="1" valign="arriba"></td>
<td ancho="100"> </td>
</tr>
<tr align="centro" bgcolor="#990000">
<td height="60" colspan="5" class="white">copyright© 2003 Compras123</td>
</tr>
</tabla>
</cuerpo>
</html>
regpost.jsp: Página de envío del formulario de registro <%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
<%@ página importar="reg"%>
<html>
<cabeza>
<title>Compras123</title>
<meta http-equiv="Tipo de contenido" content="text/html; charset=gb2312">
<enlace href="estilos/shoppingstyle.css" rel="hoja de estilo" tipo="texto/css">
</cabeza>
<cuerpo bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<%
Nombre de usuario de cadena = new String(request.getParameter("nombre de usuario").getBytes("ISO8859_1")).trim();
Contraseña de cadena = new String(request.getParameter("contraseña").getBytes("ISO8859_1")).trim();
Confirmación de cadena = new String(request.getParameter("confirm").getBytes("ISO8859_1")).trim();
Correo electrónico de cadena = new String(request.getParameter("email").getBytes("ISO8859_1")).trim();
%>
<table width="100%" height="100%" border="0" cellpadding="0" cellspace="0">
<trbgcolor="#990000">
<td height="80" colspan="5"><table width="100%" height="100%" border="0" cellpadding="0" cellpacing="0">
<tr>
<td ancho="120"> </td>
<td class="caption">Compras123</td>
<td ancho="200"> </td>
</tr>
</tabla></td>
</tr>
<tr>
<td width="100" align="center" valign="top"> </td>
<td ancho="1" valign="arriba"></td>
<td ancho="400" align="centro" valign="arriba">
<table width="100%" height="20" border="0" cellpadding="0" cellspace="0">
<tr>
<td></td>
</tr>
</tabla>
<jsp:useBean id="regID" clase="reg" alcance="sesión"/>
<%
if(regID.reg(nombre de usuario,contraseña,confirmar,correo electrónico))
{
salida.print("ok");
Cadena nuevoID = regID.getID() + "";
%>
<table width="100%" border="0" cellpadding="0" cellpacing="1" bgcolor="#CCCCCC">
<tr align="centro">
<td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">¡Felicitaciones, su registro fue exitoso! </td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Número</td>
<td align="center" bgcolor="#FFFFFF"><%=newID%></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Miembro</td>
<td align="center" bgcolor="#FFFFFF"><%=nombre de usuario%></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Contraseña</td>
<td align="center" bgcolor="#FFFFFF"><%=contraseña%></td>
</tr>
<tr>
<td width="50%" height="24" align="center" bgcolor="#FFFFFF">Correo electrónico</td>
<td align="center" bgcolor="#FFFFFF"><%=email%></td>
</tr>
</tabla>
<%
salida.print("<br>");
out.print("<a href=javascript:window.close()>Cerrar</a>");
}demás{
out.print("¡Error en el registro!<br>");
out.print("Este nombre de usuario ya está en uso, ¡use otro nombre de usuario!");
out.print("<a href=javascript:history.go(-1)>Return</a>");
}
%>
</td>
<td ancho="1" valign="arriba"></td>
<td ancho="100"> </td>
</tr>
<tr align="centro" bgcolor="#990000">
<td height="60" colspan="5" class="white">copyright© 2003 Compras123</td>
</tr>
</tabla>
</cuerpo>
</html>
Hasta ahora, hemos completado un sistema de registro e inicio de sesión de usuarios. Debido a que esto lo completé yo mismo mientras aprendía, debe haber muchas imperfecciones en el código. Todos pueden criticarme y corregirme. Todos los códigos anteriores han sido probados por mí.