`

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%> 条留言&nbsp;&nbsp;	&nbsp;&nbsp;&nbsp;&nbsp;
   		<a href="index.jsp?page=1">One</a>&nbsp;&nbsp;&nbsp;
				<a href="index.jsp?page=<%=beforePage %>">Back</a> -
				<%
					for(int i=0;i<(totalMessageCounts/10)+1;i++){
							
					%>
							&nbsp;<a href="index.jsp?page=<%=i+1%>"><%=i+1%></a>.
				<%		
							
					}
				 %>
				-<a href="index.jsp?page=<%=nextPage %>">Next</a>
				&nbsp;&nbsp;&nbsp;<a href="index.jsp?page=<%=last%>">Last</a>	
					<a name="top"></a>
					&nbsp;&nbsp;&nbsp;	&nbsp;&nbsp;&nbsp;<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() %>  
   			&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   				<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>&nbsp;&nbsp;&nbsp;
				<a href="index.jsp?page=<%=beforePage %>">Back</a> -
				<%
					for(int i=0;i<(totalMessageCounts/10)+1;i++){
				%>
					&nbsp;<a href="index.jsp?page=<%=i+1%>"><%=i+1%></a>.
				<%
					}
				 %>
				-<a href="index.jsp?page=<%=nextPage %>">Next</a>
				&nbsp;&nbsp;&nbsp;<a href="index.jsp?page=<%=last%>">Last</a>	
   		</div>
   		<div id="replyDiv">
   		<a name="write" ></a>&nbsp;&nbsp;&nbsp;	&nbsp;&nbsp;&nbsp;<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">&nbsp;
   								<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);
	}
}

分享到:
评论

相关推荐

    分页工具-jsp中分页集成jar包

    本资源包“分页工具-jsp中分页集成jar包”提供了在JSP(JavaServer Pages)环境中进行分页操作的解决方案。下面将详细解释这个包中的核心组件和使用方法。 1. **pager-taglib.jar**: 这是一个包含自定义标签库的...

    JSP 中实现行内编辑效果 DEMO 附数据库

    提供的DEMO可能包含了以上所有这些步骤的实现,尤其是数据库部分,它可能使用了诸如JDBC这样的Java数据库连接技术。通过分析DEMO的源码,我们可以更深入地了解如何在实际项目中集成这个功能。 总之,行内编辑效果的...

    jsp中分页显示(含有模糊查询)[归纳].pdf

    jsp中分页显示(含有模糊查询)[归纳].pdf

    jsp中分页显示(含有模糊查询)归纳.pdf

    jsp中分页显示(含有模糊查询)归纳.pdf

    JSP上传与下载Demo_带数据库

    【JSP上传与下载Demo_带数据库】是一个典型的Java服务器页面(JSP)示例,它涵盖了文件上传和下载的功能,并结合了数据库操作。在这个项目中,开发者可能使用了Servlet和JSP技术来处理HTTP请求,同时利用了数据库...

    jsp注册页面(附数据库页面)

    【jsp注册页面(附数据库页面)】是一个基于JavaServer Pages (JSP) 技术和MySQL数据库实现的用户注册功能的示例项目。这个项目旨在帮助开发者了解如何将用户输入的数据存储到数据库中,以及如何设计一个简单的前端...

    jsp中分页显示的bean

    本知识点将详细讲解如何在JSP中利用Bean实现分页显示,以及与数据库的交互。 首先,理解Bean的概念。Bean在Java Web中是一种可重用的Java对象,它封装了业务逻辑或数据,可以被JSP页面通过Java表达式(JSTL)或者EL...

    jsp论坛源代码(附数据库文件)(原创)

    【标题】"jsp论坛源代码(附数据库文件)(原创)"揭示了这是一个基于Java Server Pages(JSP)技术开发的论坛系统,并且包含了数据库文件。这个系统是原创的,意味着它是由开发者独立设计和实现的,可能具有独特的...

    基于Java的Jsp中分页

    2. **分页逻辑**:在Java后端,我们需要编写一个服务方法,该方法接收当前页码和每页显示条数作为参数,根据这些信息从数据库中查询对应的数据。可以使用SQL的LIMIT和OFFSET子句来实现分页,或者使用ORM框架如...

    JSP中分页组件

    完全解决JSP中的分页问题。

    JSP的连接数据库并修改数据库代码

    接着,通过`Class.forName()`加载特定的数据库驱动,例如在本例中,使用的是SQL Server的JDBC驱动: ```java Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 然后,通过`DriverManager.get...

    jsp+jspsmartupload控件上传图片至数据库

    在本文中,我们将深入探讨如何使用JSP与jspsmartupload控件将图片上传到数据库。jspsmartupload是一款强大的JSP文件上传组件,能够帮助开发者处理用户通过表单提交的多个文件。以下是对这个技术栈的详细解析: 1. *...

    链接access数据库的jsp代码页面

    这是链接access数据库的jsp代码页面,这只是项目中的其中的一部分,用的是jdbc写在jsp页面上的。链接代码是完整的在上面,其中的有没有用自己删改一下就行了

    JSP实现登录注册连接MySql数据库-初学

    总的来说,这个初学者项目是一个很好的起点,它涵盖了JSP基本语法、数据库连接、表单处理和简单的用户管理。实践中,你将学习如何组织代码,处理用户输入,以及与数据库交互。随着技能的提高,你还可以探索更复杂的...

    jsp 上传图片并保存到数据库里的servlet代码和jsp代码

    本主题将深入探讨如何使用JSP和Servlet来实现一个图片上传功能,并将图片数据存储到Oracle数据库中。 首先,我们需要理解JSP和Servlet的角色。JSP是用于创建动态内容的视图层技术,而Servlet则是Java编写的应用程序...

    房产中介管理系统 JAVA JSP(内附数据库)

    可以从中了解如何使用JAVA编写服务器端逻辑,如何设计和使用JSP创建动态网页,以及如何通过JDBC与数据库进行交互。此外,还可以学习到数据库设计的基本概念,如表的创建、字段定义、以及SQL查询语言的使用。 在实际...

    JSPDemo2.zip

    【JSPDemo2.zip】是一个包含JSP...实际项目中,JSPDemo2.zip的具体内容可能会有所不同,包括但不限于数据库配置、用户认证机制、异常处理策略等。对于深入学习,建议解压文件并逐步分析每个组成部分的功能和作用。

    JSP连接数据库大全

    JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全

    netbeans demo -jsp页面插入mysql数据库-- jdbc(源代码+数据库)

    【标题】"netbeans demo -jsp页面插入mysql数据库-- jdbc(源代码+数据库)"是一个示例项目,展示了如何在NetBeans集成开发环境中使用JSP和Java Database Connectivity (JDBC)技术将数据从用户界面存入MySQL数据库。...

Global site tag (gtag.js) - Google Analytics