Как использовать JSP+MySQL для создания гостевой книги (2)
Автор:Eve Cole
Время обновления:2009-07-02 17:13:19
Если у вас есть база данных, вам необходимо прочитать сообщение об операции с базой данных!
Основные программы для отображения сообщений перечислены ниже:
<%@page import="java.sql.*"
импорт="java.util.*"
импорт="java.io.*"
contentType="text/html; charset=gb2312"
%>
<html>
<голова>
<title>Гостевая книга свободного пространства Pinghui</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<style type="text/css"><!--
тело {размер шрифта: 9pt}
td {размер шрифта: 9pt} -->
</стиль>
</голова>
<тело>
<p align="center"><u><font size="5" face="华文新伟">Гостевая книга свободного пространства Pinghui</font></u></p>
<table width="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"
bordercolordark="#6666FF" cellpadding="0" cellpacing="0" align="center">
<тр>
<td colspan="5" height="202">
<%//Следующее обрабатывает пейджинговый запрос пользователя
Строка string_page;
int Страница, RecoderPage, RecoderRow;
попробуйте {string_page=request.getParameter("страница");
}catch (NullPointerException e){string_page="";}
try{Page=Integer.parseInt(string_page);
}catch (NumberFormatException e)
{Страница=0;
}
java.sql.Connection sqlConn //Объект подключения к базе данных;
java.sql.Statement sqlStmt //Объект оператора;
java.sql.ResultSet sqlRst //Объект набора результатов;
//Регистрируем объект драйвера JDBC
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//Подключаемся к базе данных
sqlConn= java.sql.DriverManager.getConnection ("jdbc:mysql://localhost/p", "test","");
//Создаем объект оператора
sqlStmt=sqlConn.createStatement
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//Выполняем оператор SQL
String sqlQuery="выберите счетчик(*) из комментария";
sqlRst=sqlStmt.executeQuery (sqlQuery);
sqlRst.next();
int count=sqlRst.getInt(1); //Получаем общее количество записей сообщений
if (Page>=0)RecoderPage=Page;//обработка страницы
иначе RecorderPage=0-Page*10;
if (RecoderPage>count/15){ RecoderPage=count/15; Page=RecoderPage }//Страница находится за пределами границ;
RecoderRow=RecoderPage*15 //Получаем номер записи сообщения, которую нужно отобразить;
sqlQuery="выберите * из порядка комментариев по идентификатору пользователя desc limit "+RecoderRow+",15;" //Чтение 15 записей одновременно
sqlRst=sqlStmt.executeQuery (sqlQuery);
%> Всего сообщений: <%=count%>
<% while (sqlRst.next()) //Отображение сообщений
{ //Получаем следующую запись %> <%=sqlRst.getString("userid")%>
<table width="95%" border="1" cellpacing="1" cellpadding="1"
bordercolorlight="#6666FF" bordercolordark="#6666FF" bgcolor="#CCCCFF" align="center">
<тр>
<td width="25%">Псевдоним: <%=sqlRst.getString("username")%></td>
<td width="25%">Пол: <%=sqlRst.getString("sex")%></td>
<td colspan="2" width="50%">Адрес: <%=sqlRst.getString("адрес") %></td>
</tr>
<тр>
<td width="25%">Телефон: <%=sqlRst.getString("telnumber")%></td>
<td width="25%">Почтовый индекс:<%=sqlRst.getString("post")%></td>
<td width="25%">OICQ:<%=sqlRst.getString("oicq")%></td>
<td width="25%">ICQ:<%=sqlRst.getString("icq")%></td>
</tr>
<тр>
<td colspan="2" width="50%">Электронная почта:
<a href="mailto:<%=sqlRst.getString("email")%>" title="Написать тому, кто оставил сообщение"><%=sqlRst.getString("email")%></a >/тд>
<td colspan="2" width="50%">URL:
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="Написать тому, кто оставил сообщение">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<тр>
<td colspan="4"><font style="line-height: 150%;цвет: зеленый">
Сообщение:<%=sqlRst.getString("комментарий")%><br>
-<%=sqlRst.getString("time") %>
(из <%=sqlRst.getString("ip") %>)</font></td>
</tr>
</таблица>
<hr align="center" noshade size="2" width="95%">
<% } %> <%
//Отображение сообщений ниже
int i=count/15 //Всего страница, на каждой странице отображается 15 записей;
int j=i/10 //Всего большая страница, нет 10 страниц, разделенных на одну большую страницу
//Страница, отображаемая страница
интервал стартовой страницы;
//int HrefPage;
if (Page<0) Page=0-Page*10 //Разделяем 10 страниц один раз;
StartPage=Page/10 // Разделяем 10 страниц за раз;
out.print ("[Всего "+(i+1)+"страниц]");
//out.print ("всего"+j+"экран");
//out.print ("Показать страницу "+Страница+"");
//out.print ("StartPage="+StartPage);
если (Начальная страница>0)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">Первые 10 страниц</a>");
для (int k=0;k<10;k++)
{ int p=StartPage*10+k;
если (p>i) сломаться;
если (p==Страница)
out.print ("|th"+Integer.toString(p+1)+"страница");
еще
out.print ("|<a href="connectmysql.jsp?page="+p+"">Page "+Integer.toString(p+1)+"</a>");
}
если (Начальная страница<j)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">Следующие 10 страниц</a>");
out.print ("|");
%> </td>
</tr>
</таблица>
</тело>
<%
//Закрываем объект набора результатов
sqlRst.закрыть();
//Закрываем объект оператора
sqlStmt.close();
//Закрываем соединение с базой данных
sqlConn.закрыть();
%> Недостатки в программе завершения программы:
Ошибки не фиксируются, но это просто объяснение того, как jsp читает базу данных Mysql. Если вы используете ее как гостевую, вам придется разобраться с ошибками! Мы все еще хотим оставить сообщение?