JSP+MySQL을 사용하여 방명록을 만드는 방법 (2)
저자:Eve Cole
업데이트 시간:2009-07-02 17:13:19
데이터베이스가 확보되면 데이터베이스 작업을 위한 메시지를 읽어야 합니다!
메시지를 표시하는 주요 프로그램은 다음과 같습니다.
<%@page import="java.sql.*"
import="java.util.*"
import="java.io.*"
contentType="text/html; charset=gb2312"
%>
<html>
<머리>
<title>핑후이 자유공간 방명록</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<style type="text/css"><!--
본문{글꼴 크기: 9pt}
td { 글꼴 크기: 9pt}-->
</style>
</head>
<본문>
<p align="center"><u><font size="5" face="华文新伟">핑후이 여유 공간 방명록</font></u></p>
<table width="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"
bordercolordark="#6666FF" cellpadding="0" cellpacing="0" align="center">
<tr>
<td colspan="5" height="202">
<%//다음은 사용자의 페이징 요청을 처리합니다.
문자열 string_page;
int 페이지,RecoderPage,RecoderRow;
try{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;//페이지 처리
else RecorderPage=0-페이지*10;
if (RecoderPage>count/15){ RecoderPage=count/15; Page=RecoderPage }//페이지가 범위를 벗어났습니다.
RecoderRow=RecoderPage*15; //표시할 메시지 레코드 번호를 가져옵니다.
sqlQuery="select * 사용자 ID별 설명 순서에서 제한 "+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">
<tr>
<td width="25%">닉네임: <%=sqlRst.getString("username")%></td>
<td width="25%">성별: <%=sqlRst.getString("sex")%></td>
<td colspan="2" width="50%">주소: <%=sqlRst.getString("address") %></td>
</tr>
<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>
<tr>
<td colspan="2" width="50%">이메일:
<a href="mailto:<%=sqlRst.getString("email")%>" title="메시지를 남긴 사람에게 쓰기"><%=sqlRst.getString("email")%></a ></td>
<td colspan="2" width="50%">URL:
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="메시지를 남긴 사람에게 쓰기">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<tr>
<td colspan="4"><font style="line-height: 150%;color: 녹색">
메시지:<%=sqlRst.getString("comment")%><br>
-<%=sqlRst.getString("time") %>
(<%=sqlRst.getString("ip") %>에서)</font></td>
</tr>
</table>
<hr align="center" noshade size="2" width="95%">
<% } %> <%
//아래 메시지 페이지 지정
int i=count/15; //총 페이지, 각 페이지에는 15개의 레코드가 표시됩니다.
int j=i/10; //전체 대형 페이지, 10개의 페이지가 하나의 대형 페이지로 분할되지 않음
//페이지 표시 페이지
int 시작페이지;
//int HrefPage;
if (Page<0) Page=0-Page*10; //10페이지를 한 번에 나눕니다.
StartPage=Page/10; //10페이지씩 나누기
out.print("[총 "+(i+1)+"페이지]");
//out.print("전체"+j+"화면");
//out.print("페이지 "+Page+" 표시"");
//out.print("StartPage="+StartPage);
if (시작페이지>0)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">처음 10페이지</a>");
for (int k=0;k<10;k++)
{ int p=시작페이지*10+k;
(p>i) 중단되면;
if (p==페이지)
out.print ("|th"+Integer.toString(p+1)+"페이지");
또 다른
out.print ("|<a href="connectmysql.jsp?page="+p+"">페이지 "+Integer.toString(p+1)+"</a>");
}
if (시작페이지<j)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">다음 10페이지</a>");
out.print("|");
%> </td>
</tr>
</table>
</body>
<%
//결과 집합 객체를 닫습니다.
sqlRst.close();
//문 객체 닫기
sqlStmt.close();
//데이터베이스 연결 닫기
sqlConn.close();
%> 프로그램 종료 프로그램의 결함:
오류는 캡처되지 않지만 jsp가 MySQL 데이터베이스를 읽는 것을 설명하기 위한 것입니다. 방명록으로 사용하신다면, 오류 처리는 필수! 그래도 메시지를 남기고 싶으신가요?