JSP分页实例
网络整理 - 07-26
//实体类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>