程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP之分頁

JSP之分頁

編輯:關於JSP

JSP分頁

//實體類
package entity;

public class note {
    PRivate int id;
    private String title;
    private String author;
    private String content;
   
    public note(){}
    public note(String title,String author,String content)
    {
     this.title=title;
     this.author=author;
     this.content=content;
    }
    public note(int id,String title,String author,String content)
    {
     this.id=id;
     this.title=title;
     this.author=author;
     this.content=content;
    }
public String getAuthor() {
  return author;
}
public void setAuthor(String author) {
  this.author = author;
}
public String getContent() {
  return content;
}
public void setContent(String content) {
  this.content = content;
}
public int getId() {
  return id;
}
public void setId(int id) {
  this.id = id;
}
public String getTitle() {
  return title;
}
public void setTitle(String title) {
  this.title = title;
}
   
}
//連接數據庫的基類
package dao;
import java.sql.*;

public abstract class BaseJdbcDao {
    private static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String DBURL = "jdbc:sqlserver://localhost:1433;DataBaseName=notetest";
    private static final String DBUSER="sa";
    private static final String DBPASS="sa";
   
    protected Connection conn=null;
    protected Statement stmt=null;
    protected PreparedStatement pstmt=null;
    protected ResultSet rst=null;
   
    public Connection getConn()
    {
        try{
         Class.forName(DBDRIVER);
         conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
        // System.out.println("連接成功");
        }catch(ClassNotFoundException e)
        {
         System.out.println("沒有找到驅動");
         e.getMessage();
        }catch(SQLException e)
        {
         System.out.println("數據庫聯接失敗");
         e.getMessage();
        }finally
        {
         return conn;
        }
    }
   
    public void CloseAll()
    {
     if(rst!=null)
     {
      try{
       rst.close();
      }catch(SQLException e)
      {
       e.toString();
      }
     }
     if(pstmt!=null)
     {
      try{
       pstmt.close();
      }catch(SQLException e)
      {
       e.toString();
      }
     }
     if(stmt!=null)
     {
      try{
       stmt.close();
      }catch(SQLException e)
      {
       e.toString();
      }
     }
     if(conn!=null)
     {
      try{
       conn.close();
      }catch(SQLException e)
      {
       e.toString();
      }
     }
    }
}

//業務類
package dao;

import java.sql.*;
import java.util.*;
import entity.note;

public class noteDao extends BaseJdbcDao{
int count=0;
    //得到所有記錄數
    public int getNoteCount()
    {
     String sql1="select count(*) from note";
     int pageCount=0;
     conn=super.getConn();
     try{
   pstmt=conn.prepareStatement(sql1);
   rst=pstmt.executeQuery();
   rst.next();
   count=rst.getInt(1);
        
     }catch(SQLException e)
  {
   e.toString();
  }finally
  {
   super.CloseAll();
  }
  return count;
    }
    //分頁顯示
    public List ShowNotesByPage(int page,int pageSize)
    {
     List listnote=new ArrayList();
     note nn=null;
     int preCount = pageSize*(page-1);
     int pageCount=0;
     String sql="select top "+pageSize+" * from note where id not in (select top "+preCount+" id from note order by id desc) order by id desc";
     conn=super.getConn();
     try{
   if(count%pageSize==0){
    pageCount=count/pageSize;
   }
   else
   {
    pageCount=count/pageSize+1;
   }
   pstmt=conn.prepareStatement(sql);
   rst=pstmt.executeQuery();
   while(rst.next())
   {
       nn=new note();
       nn.setId(rst.getInt("id"));
       nn.setTitle(rst.getString("title"));
       nn.setAuthor(rst.getString("author"));
       nn.setContent(rst.getString("content"));
       listnote.add(nn);
   }
     }catch(SQLException e)
  {
   e.toString();
  }finally
  {
   super.CloseAll();
  }
  return listnote;
    }
}

//頁面中的代碼
<%@ page language="java" import="java.util.*,entity.*,dao.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My jsp 'showListNotes.jsp' starting page</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keyWords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/CSS" href="styles.css">
-->

  </head>
 
  <body>
  <h1>所有留言</h1>
  <%
  
    List list=new ArrayList();
    note nn=null;
    noteDao notedao=new noteDao();
    int count=notedao.getNoteCount();
    int pageSize =5;
int currentPage = 1;
int pagecount;

//得到總共的頁數。
if(count%pageSize==0)
{
    pagecount=count/pageSize;
}
else{
    pagecount=count/pageSize+1;
}
String pager = request.getParameter("page");
if(pager!=null)
{
  currentPage = Integer.parseInt(pager);
}

//給上一頁(prepage),下一頁(nextpage)賦值。保障傳遞的page不是-1,-2,等等不符合條件的值。
int prepage=currentPage;
int nextpage=currentPage;
if(currentPage>1)
{
     prepage=currentPage-1;
}
    if(currentPage<pagecount)
    {
        nextpage=currentPage+1;
    }
    list=notedao.ShowNotesByPage(currentPage,pageSize);
   %>
    <table border="1">
     <tr>
       <td>標題</td>
       <td>作者</td>
       <td>內容</td>
     </tr>
    <%
      for(int i=0;i<list.size();i++)
      {
      nn=(note)list.get(i);
     %>
     <tr>
       <td><%=nn.getTitle() %></td>
       <td><%=nn.getAuthor() %></td>
       <td><%=nn.getContent() %></td>
     </tr>
     <%
     }
      %>
    </table>
   //傳遞page參數
    <a href="showListNotes.jsp?page=<%=prepage %>">上一頁</a>
     <a href="showListNotes.jsp?page=<%=nextpage %>">下一頁</a>
  </body>
</html>

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved