JSP 中分页DEMO 例附数据库

JSP 中页面分页操作 附源码实现 和数据库 可部署在TOMCAT中运行


部分代码 index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
<%@page import="bo.MessageBO"%>
<%@page import="entity.Message"%>
<html>
<head>
<title>留言板实例</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<style type="text/css">
#messDiv{
border:1px solid #227788;
margin-left:150px;
height:150px;
width:670px;
margin-bottom:5px;
display:block;
}

#replyDiv{
margin:10px;
border:1px solid #fffeee;
width:670px;
margin-left:150px;
display:block;
}
#nameDiv{
width:100%;
padding:10px;
background-color: #fffffe;
display:block;
}

#timeDiv{
width:100%;
padding:5px;
background-color: #ccFADD;
text-align: right;
display:block;
}

#pageDiv{
padding:5px;
background-color: #ffaaDD;
text-align: left;
margin-left:150px;
width:670px;
display:block;
}

#noteDiv{
width:100%;
padding:10px;
margin:2px;
word-break:break-all;
height:98px;
background-color:#cfffa3;
display:block;
}
</style>
<script language="javascript">
function checkMess(){
var objName = document.forms[0].name;
var objContent = document.forms[0].content;

if(objName.value==""){
alert("姓名不能为空!");
objName.focus();
return false;
}

if(objContent.value==""){
alert("内容不能为空!");
objContent.focus();
return false;
}

return true;
}

function showorhide(notediv){
var objDiv = document.getElementById(notediv);
if(objDiv.style.display=='block'){
objDiv.style.display='none';
}else{
objDiv.style.display='block';
}
}

</script>
</head>
<body>
<%
MessageBO bo = new MessageBO(); //业务逻辑对象
int totalMessageCounts = bo.getTotalMessageCounts(); //得到总消息条数

int pageno = 1; //假定当前页
//表示的是第一次请求 参数page并不存在
if(request.getParameter("page")!=null){
//不是第一次请求 就一定有 page 参数 即使是自己提交给自己的页面
pageno = Integer.parseInt(request.getParameter("page")); //获得请求的参数 page 的值
}

int nextPage = pageno+1 ; //假定下一页
int beforePage = pageno-1 ;//假定上一页
int last=totalMessageCounts/10+1; //总页数


//如果已经到达最小值
if(beforePage<=0){
beforePage =1;
}
//如果已经到达最大值
if(nextPage>last){
nextPage = last;
}

//得到当前page 参数要求查询出来的页面消息 pageno
ArrayList<Message> list = bo.getMessagesByPage(pageno);

%>
<div id="mainDiv">
<h3 align="center">留言板</h3>
<hr>
<div id="pageDiv">
共有 <%=totalMessageCounts%> 条留言       
<a href="index.jsp?page=1">One</a>   
<a href="index.jsp?page=<%=beforePage %>">Back</a> -
<%
for(int i=0;i<(totalMessageCounts/10)+1;i++){

%>
 <a href="index.jsp?page=<%=i+1%>"><%=i+1%></a>.
<%

}
%>
-<a href="index.jsp?page=<%=nextPage %>">Next</a>
   <a href="index.jsp?page=<%=last%>">Last</a>
<a name="top"></a>
       <a href="#write">BOTTOM</a>
</div>

<%
//循环输入消息
for(int i=0;i<list.size();i++){
Message message = list.get(i);

%>
<div id="messDiv">
<div id="nameDiv">
<a name="<%= message.getAuthor()%>"></a>
第 <%= (pageno-1)*10+i+1%> 楼 -- <%=message.getAuthor() %>
         
<a href="javascript:showorhide('noteDiv<%=message.getId()%>')">o(∩_∩)o</a>
<a href="#write" >Write</a>
</div>
<div id="noteDiv<%=message.getId()%>">
<div id="noteDiv">
<%=message.getMessage() %>
</div>
<div id="timeDiv">
发表于-(<%=message.getPostTime() %>) ID: <%=message.getId()%>
</div>
</div>
</div>
<%
}
%>

<div id="pageDiv">
<a href="index.jsp?page=1">One</a>   
<a href="index.jsp?page=<%=beforePage %>">Back</a> -
<%
for(int i=0;i<(totalMessageCounts/10)+1;i++){
%>
 <a href="index.jsp?page=<%=i+1%>"><%=i+1%></a>.
<%
}
%>
-<a href="index.jsp?page=<%=nextPage %>">Next</a>
   <a href="index.jsp?page=<%=last%>">Last</a>
</div>
<div id="replyDiv">
<a name="write" ></a>       <a href="#top">GO TO TOP</a>
<form action="dopage.jsp?page=<%=last%>" method="post" onsubmit="return checkMess()">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" class="normalTxt" name="name" ></td>
</tr>
<tr>
<td>内容</td>
<td>
<textarea rows="5" cols="83" name="content" ></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="提 交" class="normalBtn"> 
<input type="reset" value="重 置" class="normalBtn">
</td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>



MessageBo.java

package bo;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import dao.MessageDao;

import entity.Message;

/**
* 消息业务逻辑处理对象
* @author Simon Lv
*
*/
public class MessageBO {

//消息数据访问对象
MessageDao dao = new MessageDao();
/**
* 得到含有所有消息实体类集合
* @page 页码
* @return 实体类集合对象
*/
public ArrayList<Message> getMessagesByPage(int page){
//如果页码为负或0
if(page<=0){
page = 0;
}else{//页码乘以条数
page = (page-1)*10;
}
//SQL 查询子语句
String sql ="select top 10 * from tbl_message where id not in (select top "+page+" id from tbl_message)";
return dao.getAllMessages(sql, null);
}

/**
* 得到消息的条数
* @return 消息的总条数
*/
public int getTotalMessageCounts(){
return dao.getAllMessages("select * from tbl_message ", null).size();
}

/**
* 添加一条记录
* @param name 用户姓名
* @param content 文本内容
* @return 是否成功 0 不成功 大于0 成功
*/
public int insertMessage(String name,String content){
String sql = "insert into tbl_message values(?,?,?)";
String param[] =new String[]{content,name,new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date())};
return dao.executeSql(sql, param);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值