?? userlist1.jsp
字號:
<%@ page language="java" import="java.sql.*,java.io.*,java.util.*" %>
<%@ page contentType="text/HTML;charset=GB2312"%>
<%
//把經常需要修改的數據放在前邊,以方便修改
String username="root"; //數據庫用戶名
String password="password"; //數據庫用戶密碼
int pagesize=5; //每頁顯示的數據數量
//JSP程序中半數以上的Exception是NonePointerException,在聲明變量時賦予一個
//初始值能縮短調試時間
ResultSet rs = null; //數據庫查詢結果集
Connection conn=null;
Statement stmt=null;
//下邊兩個變量是把動態生成的部分集中在一起放入頁面
//這樣做的好處是當修改頁面時就可以直接用Dreamweaver來編輯了
StringBuffer student=new StringBuffer();
StringBuffer pageInfo=new StringBuffer();
try {//注冊驅動程序
Class.forName("com.mysql.jdbc.Driver");
}catch(java.lang.ClassNotFoundException e) {
System.err.println("Driver Error " + e.getMessage());
}
//連接數據庫并創建Statement對象
String sConnStr = "jdbc:mysql://localhost/test?user="+username+"&password="+password+"&useUnicode=true&characterEncoding=8859_1";
try {
conn = DriverManager.getConnection(sConnStr);
conn.setAutoCommit(true);
//建立Statement對象并設置指針可前后移動
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ,
ResultSet.CONCUR_READ_ONLY);
}catch(Exception e) {
System.err.println("數據庫連接錯誤: " + e.getMessage());
}
//通過Statement執行SQL語句來獲得查詢結果
try{//從表sutdent中取出數據
rs=stmt.executeQuery("select * from student");
}catch(SQLException ex){
System.err.println("數據庫查詢錯誤: "+ex);
}
//從用戶的請求中獲取當前頁碼
//獲得需要顯示的頁,如果用戶請求沒有頁碼參數,則默認是第1頁
String paramPage=request.getParameter("page");
int currentPage=1;
try{
currentPage=Integer.parseInt(paramPage);
}catch(Exception e){
currentPage=1;
}
//將要顯示的當前頁的數據記錄放入student中
rs.last(); //把指針置底
int totaluser=rs.getRow(); //獲得結果數量
//計算出總頁數
int pagecount=(int)Math.ceil((float)totaluser/(float)pagesize);
int i=1;
rs.absolute((currentPage-1) * pagesize + 1); //把指針放到要顯示的第一個數據
//把結果放進變量student
while(i<=pagesize && !rs.isAfterLast()){
student.append("<tr bgcolor=#ffffff>\n");
student.append("<td align=center>"+rs.getString("Sno")+"</td>");
student.append("<td align=center>"+rs.getString("Sname")+"</td>");
student.append("<td align=center>"+rs.getString("Sage")+"</td>");
student.append("<td align=center>"+rs.getString("Sdept")+"</td>");
student.append("</tr>");
if(!rs.next()) //當到達最后一個記錄時退出循環
break;
i++;
}
//關閉數據庫連接
try{
rs.close(); //關閉結果集對象
stmt.close(); //關閉Statement對象
conn.close(); //關閉數據庫連接對象
}catch(SQLException e){
System.err.println(e);
}
//將要顯示頁碼信息放入pageInfo
//把顯示翻頁的字段放進變量pageInfo
pageInfo.append("第"+currentPage+"頁 共"+pagecount+"頁,共"+totaluser+"個學生 ");
if(currentPage>1) //在當前頁大于1時有向前翻頁的連接,否則沒有
pageInfo.append(" <a href='userlist.jsp?page="+(currentPage-1)+"'><< 上一頁</a>");
else
pageInfo.append("<< 上一頁");
if(currentPage<pagecount) //在當前頁小于總頁數時有向前翻頁的連接,否則沒有
pageInfo.append(" <a href='userlist.jsp?page="+(currentPage+1)+"'>下一頁 >></a>");
else
pageInfo.append("下一頁 >>");
//顯示結果
%>
<html>
<head>
</head>
<body>
<table width="80%" border="0" align="center" cellpadding=5 cellspacing=1 bgcolor=#000000>
<tr align="center" bgcolor=#cccccc>
<td width="5%">學號</td>
<td width="5%">姓名</td>
<td width="5%">年齡</a></td>
<td width="5%">所在系</td>
</tr>
<%=student%>
</table>
<table width="80%" border="0" align="center">
<tr>
<td align=right><%=pageInfo%>
</td>
</tr>
</table>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -