Como usar JSP+MySQL para criar um livro de visitas (2)
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:13:19
Depois de ter o banco de dados, você precisa ler a mensagem para a operação do banco de dados!
Os principais programas para exibição de mensagens estão listados abaixo:
<%@page import="java.sql.*"
importar="java.util.*"
importar="java.io.*"
contentType="text/html; charset=gb2312"
%>
<html>
<cabeça>
<title>Livro de Visitas do Espaço Livre Pinghui</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<style type="text/css"><!--
corpo {tamanho da fonte: 9pt}
td {tamanho da fonte: 9pt}-->
</estilo>
</head>
<corpo>
<p align="center"><u><font size="5" face="华文新伟">Livro de visitas do espaço livre Pinghui</font></u></p>
<table width="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"
bordercolordark="#6666FF" cellpadding="0" cellpacing="0" align="center">
<tr>
<td colspan="5" altura="202">
<%//O seguinte trata da solicitação de paginação do usuário
String string_page;
int Page,RecoderPage,RecoderRow;
tente{string_page=request.getParameter("página");
}catch(NullPointerException e){string_page="";}
tente{Página=Integer.parseInt(string_page);
}catch(NumberFormatException e)
{Página=0;
}
java.sql.Connection sqlConn; //Objeto de conexão de banco de dados
java.sql.Statement sqlStmt; //Objeto de instrução
java.sql.ResultSet sqlRst; //Objeto do conjunto de resultados
//Registra o objeto do driver JDBC
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//Conecta ao banco de dados
sqlConn= java.sql.DriverManager.getConnection ("jdbc:mysql://localhost/p","test","");
//Cria objeto de instrução
sqlStmt=sqlConn.createStatement
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//Executa instrução SQL
String sqlQuery="selecionar contagem(*) do comentário";
sqlRst=sqlStmt.executeQuery (sqlQuery);
sqlRst.next();
int count=sqlRst.getInt(1); //Obtém o número total de registros de mensagens
if (Page>=0)RecoderPage=Page;//processar página
senão RecorderPage=0-Página*10;
if (RecoderPage>count/15){ RecoderPage=count/15;
RecoderRow=RecoderPage*15; //Obtém o número do registro da mensagem a ser exibido
sqlQuery="select * from comment order by userid desc limit "+RecoderRow+",15;";
sqlRst=sqlStmt.executeQuery (sqlQuery);
%> Existem <%=count%> mensagens no total
<% while (sqlRst.next()) //Exibir mensagens
{ //Obter o próximo registro %> <%=sqlRst.getString("userid")%>
<table width="95%" border="1" cellpacing="1" cellpadding="1"
bordercolorlight="#6666FF" bordercolordark="#6666FF" bgcolor="#CCCCFF" align="center">
<tr>
<td width="25%">Apelido: <%=sqlRst.getString("nomedeusuário")%></td>
<td width="25%">Sexo: <%=sqlRst.getString("sex")%></td>
<td colspan="2" width="50%">Endereço: <%=sqlRst.getString("address") %></td>
</tr>
<tr>
<td width="25%">Telefone: <%=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%">E-mail:
<a href="mailto:<%=sqlRst.getString("email")%>" title="Escreva para a pessoa que deixou a mensagem"><%=sqlRst.getString("email")%></a </td>
<td colspan="2" width="50%">URL:
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="Escreva para a pessoa que deixou a mensagem">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<tr>
<td colspan="4"><font style="line-height: 150%;cor: verde">
Mensagem:<%=sqlRst.getString("comment")%><br>
-<%=sqlRst.getString("tempo") %>
(de <%=sqlRst.getString("ip") %>)</font></td>
</tr>
</tabela>
<hr align="center" noshade size="2" width="95%">
<% } %> <%
//Page as mensagens abaixo
int i=count/15; //Página total, cada página exibe 15 registros
int j=i/10; //Página grande total, não há 10 páginas divididas em uma página grande
//Página exibida
intPágina inicial;
//int HrefPage;
if (Page<0) Page=0-Page*10; //Divide 10 páginas uma vez
StartPage=Page/10; //Divide 10 páginas por vez
out.print ("[Total "+(i+1)+"páginas]");
//out.print("total"+j+"tela");
//out.print("Exibir página "+Página+"");
//out.print("StartPage="+StartPage);
if (Página Inicial>0)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">Primeiras 10 páginas</a>");
para (int k=0;k<10;k++)
{ int p=Página Inicial*10+k;
se (p>i) quebrar;
if (p==Página)
out.print ("|th"+Integer.toString(p+1)+"página");
outro
out.print ("|<a href="connectmysql.jsp?page="+p+"">Página "+Integer.toString(p+1)+"</a>");
}
if (Página Inicial<j)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">Próximas 10 páginas</a>");
imprimir("|");
%> </td>
</tr>
</tabela>
</body>
<%
//Fecha o objeto do conjunto de resultados
sqlRst.close();
//Fecha o objeto de instrução
sqlStmt.close();
//Fecha a conexão com o banco de dados
sqlConn.close();
%> Deficiências no programa final do programa:
Os erros não são capturados, mas isso é apenas para explicar a leitura do jsp no banco de dados Mysql. Se você o estiver usando como livro de visitas, deverá lidar com os erros! Ainda queremos deixar uma mensagem?