三つのフェイルを使う;test.jspとPagination.javaとDBConnect.java,と簡単なデータベース表testtest,ウェブサーバTomcat. testの作用は結果を表示する,DBConnect.javaの作用はデータベースを連絡する,Pagination.javaの作用はマルチページを実現する, 採用データベースはmysqlである. 1、create database test ----------建造データベースtest create table test(id int not null,name varchar(25));---------建造データベースの表、 2、DBConnect.java import java.sql.*; public class DBConnect{ String sDBDriver="org.gjt.mm.mysql.Driver";//データベースのドライバーを制定する String sConnStr="jdbc:mysql://127.0.0.1:3306/test?user=root&password=";//新しい Connection conn=null; ResultSet rs=null; public DBConnect(){ try{ Class.forName(sDBDriver);// } catch(java.lang.ClassNotFoundException e){ System.out.println("Jdbc_conn():"+e.getMessage()); } } // でーたを更新。 public void executeUpdate(String sql)throws Exception{ sql=new String(sql.getBytes("GBK"),"ISO8859_1"); try{ conn=DriverManager.getConnection(sConnStr); Statement stmt=conn.createStatement(); stmt.executeUpdate(sql); conn.close(); stmt.close(); } catch(SQLException ex){ System.out.println("sql.executeUpdate:"+ex.getMessage()); } } // さーち public ResultSet executeQuery(String sql)throws Exception{ rs=null; try{ sql=new String(sql.getBytes("GBK"),"uf-8");// conn=DriverManager.getConnection(sConnStr);// Statement stmt=conn.createStatement();// rs=stmt.executeQuery(sql);//sql conn.close();// close link stmt.close();// close class } catch(SQLException ex){ System.out.println("sql.executeQuery:"+ex.getMessage()); } return rs; } } test.jspの結果を表示する 2、Pagination.java--------マルチページを実現するimport java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import java.math.*; public class Pagination{ private String strPage = null;// pageの変数 private int curPages;// private int m_rows; // マイページのすう private int pages;// 全部のページ数 // public String strPage(HttpServletRequest request, String page){ try{ strPage = request.getParameter(page);// } catch(Exception e){ System.out.println("delcolumn"+e.getMessage()); } return strPage;// } // public int curPages(String strPage){ try{ if(strPage == null){// curPages = 1; } else{ curPages = Integer.parseInt(strPage);// if(curPages < 1)// curPages = 1; } } catch(Exception e){ System.out.print("curPages"); } return curPages;// } // public void setRows(int rows){ m_rows=rows; } public int getPages(int rowcounts){ int test; test=rowcounts%m_rows; if(test==0) pages = rowcounts/m_rows; else pages=rowcounts/m_rows+1; return pages; } public ResultSet getPageSet(ResultSet rs,int curPages){ if(curPages==1){ return rs; } else{ int i=1; try{ while(rs.next()){ i=i+1; if(i>((curPages-1)*m_rows)) break; } return rs; } catch(Exception e){ System.out.print(e.getMessage()); } } return rs; } } 3.test.jsp --------<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <jsp:useBean id="m_pages" scope="page" class="Pagination"/> <jsp:useBean id="sql" scope="page" class="DBConnect"/> <% int curPages = Pagination.curPages(Pagination.strPage(request,"page")); Pagination.setRows(10); %> <% ResultSet rs_count=sql.executeQuery("select count(*) as t from test"); rs_count.next(); int resultconts=rs_count.getInt("t"); int totalPages = Pagination.getPages(resultconts);/ ResultSet rs=m_pages.getPageSet(sql.executeQuery("select * from test"),curPages); <p>分类表</p> <table border="1"> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <%int i=1;%> <%while (rt.next()){%> <tr> <td><%=rt.getString("id")%> </td> <td><%=rt.getString("name")%> </td> </tr> <% i=i+1; if(i>10) break; } %> </table> <p align="center"><%if(curPages>1){%><a href="testBean.jsp?page=<%=curPages-1%>">上一页</a><%}%><%if(curPages<totalPages){%><a href="testBean.jsp?page=<%=curPages+1%>">下一页</a><%}%></p> |
2010年11月27日土曜日
jspとjavabeanマルチページを実現する
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿