Cómo utilizar JSP+MySQL para crear un libro de visitas (2)
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:13:19
Una vez que tenga la base de datos, deberá leer el mensaje para la operación de la base de datos.
Los principales programas para mostrar mensajes se enumeran a continuación:
<%@page import="java.sql.*"
importar="java.util.*"
importar="java.io.*"
contentType="texto/html; juego de caracteres=gb2312"
%>
<html>
<cabeza>
<title>Libro de visitas del espacio libre de Pinghui</title>
<meta nombre="GENERADOR" contenido="Microsoft FrontPage 4.0">
<meta nombre="ProgId" contenido="FrontPage.Editor.Document">
<tipo de estilo="text/css"><!--
cuerpo {tamaño de fuente: 9pt}
td {tamaño de fuente: 9pt}-->
</estilo>
</cabeza>
<cuerpo>
<p align="center"><u><font size="5" face="华文新伟">Libro de visitas de Pinghui Free Space</font></u></p>
<table width="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"
bordercolordark="#6666FF" cellpadding="0" cellspace="0" align="center">
<tr>
<td colspan="5" altura="202">
<%//Lo siguiente maneja la solicitud de búsqueda del usuario.
Cadena string_page;
int Página,RecoderPage,RecoderRow;
intente{string_page=request.getParameter("página");
}catch (NullPointerException e){string_page="";}
intente{Página=Integer.parseInt(string_page);
}catch(NumberFormatException e)
{Página=0;
}
java.sql.Connection sqlConn; //Objeto de conexión de base de datos
java.sql.Statement sqlStmt; //Objeto de declaración
java.sql.ResultSet sqlRst; //Objeto de conjunto de resultados
//Registrar objeto controlador JDBC
Class.forName ("org.gjt.mm.mysql.Driver").newInstance ();
//Conectarse a la base de datos
sqlConn= java.sql.DriverManager.getConnection ("jdbc:mysql://localhost/p","test","");
//Crear objeto de declaración
sqlStmt=sqlConn.createStatement
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//Ejecutar sentencia SQL
String sqlQuery="seleccione recuento (*) del comentario";
sqlRst=sqlStmt.executeQuery (sqlQuery);
sqlRst.siguiente();
int count=sqlRst.getInt(1); //Obtener el número total de registros de mensajes
if (Página>=0)RecoderPage=Página;//página de proceso
else RecorderPage=0-Página*10;
if (RecoderPage>count/15){ RecoderPage=count/15; Page=RecoderPage }//La página está fuera de los límites;
RecoderRow=RecoderPage*15; //Obtener el número de registro del mensaje que se mostrará
sqlQuery="select * del orden de comentarios por ID de usuario desc limit "+RecoderRow+",15;" //Leer 15 registros a la vez
sqlRst=sqlStmt.executeQuery (sqlQuery);
%> Hay <%=count%> mensajes en total
<% while (sqlRst.next()) //Mostrar mensajes
{ //Obtener el siguiente registro %> <%=sqlRst.getString("userid")%>
<table width="95%" border="1" cellspace="1" cellpadding="1"
bordercolorlight="#6666FF" bordercolordark="#6666FF" bgcolor="#CCCCFF" align="centro">
<tr>
<td width="25%">Apodo: <%=sqlRst.getString("nombre de usuario")%></td>
<td width="25%">Género: <%=sqlRst.getString("sex")%></td>
<td colspan="2" width="50%">Dirección: <%=sqlRst.getString("dirección") %></td>
</tr>
<tr>
<td width="25%">Teléfono: <%=sqlRst.getString("telnumber")%></td>
<td width="25%">Código postal:<%=sqlRst.getString("post")%></td>
<td width="25%">OICQ:<%=sqlRst.getString("oicq")%></td>
<td width="25%">ICQ:<%=sqlRst.getString("icq")%></td>
</tr>
<tr>
<td colspan="2" width="50%">Correo electrónico:
<a href="mailto:<%=sqlRst.getString("email")%>" title="Escribe a la persona que dejó el mensaje"><%=sqlRst.getString("email")%></a >>td>
<td colspan="2" ancho="50%">URL:
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="Escribe a la persona que dejó el mensaje">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<tr>
<td colspan="4"><font style="alto de línea: 150%;color: verde">
Mensaje:<%=sqlRst.getString("comentario")%><br>
-<%=sqlRst.getString("hora") %>
(de <%=sqlRst.getString("ip") %>)</font></td>
</tr>
</tabla>
<hr align="center" noshade size="2" ancho="95%">
<% } %> <%
//Pagina los mensajes a continuación
int i=count/15; //Página total, cada página muestra 15 registros
int j=i/10; // Página grande total, no hay 10 páginas divididas en una página grande
//Página mostrada
int página de inicio;
//int PáginaHref;
if (Página<0) Página=0-Página*10; //Dividir 10 páginas una vez
StartPage=Page/10; //Dividir 10 páginas a la vez
out.print ("[Total "+(i+1)+"páginas]");
//out.print ("total"+j+"pantalla");
//out.print ("Mostrar página "+Página+"");
//out.print ("Página de inicio="+Página de inicio);
si (Página de inicio>0)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">Primeras 10 páginas</a>");
para (int k=0;k<10;k++)
{ int p=Página de inicio*10+k;
si (p>i) se rompe;
si (p==Página)
out.print ("|th"+Integer.toString(p+1)+"página");
demás
out.print ("|<a href="connectmysql.jsp?page="+p+"">Página "+Integer.toString(p+1)+"</a>");
}
si (Página de inicio<j)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">Siguientes 10 páginas</a>");
salida.imprimir ("|");
%> </td>
</tr>
</tabla>
</cuerpo>
<%
//Cerrar el objeto del conjunto de resultados
sqlRst.close();
//Cerrar objeto de declaración
sqlStmt.close();
//Cerrar conexión a la base de datos
sqlConn.close();
%> Deficiencias en el programa de fin de programa:
Los errores no se capturan, pero esto es solo para explicar cómo jsp lee la base de datos Mysql. Si lo estás utilizando como libro de visitas, ¡debes ocuparte de los errores! ¿Aún queremos dejar un mensaje?