最近遇到了分页的问题,以前说真的没仔细研究过了,这几天仔细高了一下,基本原理高清楚了,首先是我的页面代码如下:
<%@ page language="java" import="java.util.*,java.sql.*"
pageEncoding="gb2312"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
</head>
<body>
<form action="#">
<c:forEach items="${news1}" var="news2" varStatus="status">
<tr><td>${news2.newsTitle}</td>
</tr>
</c:forEach>
<c:if test="${showpage>1}">
<a href="pageservlet?topage=<%=1%>">首页</a>
<a href="pageservlet?topage=${showpage-1}">上一页</a>
</c:if>
<c:if test="${showpage<pagecount}">
<a href="pageservlet?topage=${showpage+1}">下一页</a>
<a href="pageservlet?topage=${pagecount}">最后一页</a>
</c:if>
第${showpage}页
一共${pagecount}页
</form> <br>
</body>
</html>
servlet代码如下:
package org.servlet;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.util.ContactBean;
import org.util.PageBean;
public class PageServlet extends javax.servlet.http.HttpServlet {
public void doGet(HttpServletRequest
request, HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
response.setContentType("text/html");
try {
PageBean pagebean = new PageBean();
ContactBean contact = new ContactBean();
int pagecount = pagebean.countPage();//获取总共的页数
String topage = request.getParameter("topage");//获取当前的页码
if (Integer.parseInt(topage) > pagecount) { //判断当前的页码是否越界,如果是的话就进行处理
topage =String.valueOf(pagecount);
} else if (Integer.parseInt(topage) <= 0) {
topage = "1";
}
ArrayList news = contact.getData(topage, pagecount);
request.getSession().setAttribute("pagecount", pagecount);
request.getSession().setAttribute("showpage", topage);//将当前的页码返回给页面,这样进行计算
request.getSession().setAttribute("news1", news);
response.sendRedirect("test1.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
doGet(request, response);
}
}
javabean代码如下
package org.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Vector;
import org.bean.NewsBean;
public class ContactBean {
private Connection conn;
public Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager
.getConnection(
"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gbk",
"root", "123456");
} catch (SQLException ex) {
System.out.println(ex.getMessage() + "路径错误");
} catch (ClassNotFoundException ex) {
System.out.println(ex.getMessage() + "驱动错误");
}
return conn;
}
/** *返回要查询的记录数 */
public int getAvailableCount() throws Exception {
int ret = 0;
String strSql = "select count(*) from news";
Connection conn = this.getConnection();
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(strSql);
while (rset.next()) {
ret = rset.getInt(1);
}
return ret;
}
/*获取查寻的记录数*/
public ArrayList getData(String topage, int pagecount)
throws NumberFormatException, SQLException {
String sql = "select * from news";
Statement state = null;
ResultSet rs = null;
int pagesize = 3;
int showpage = 1;
ArrayList list = new ArrayList();
int j = 0;
try {
Connection conn = this.getConnection();
state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = state.executeQuery(sql);
} catch (Exception e) {
System.out.println("exception");
}
if (!rs.next()) {
System.out.println("no records!");
} else {
rs.last();
if (topage != null) {
showpage = Integer.parseInt(topage);
if (showpage > pagecount) {
showpage = pagecount;
} else if (showpage <= 0) {
showpage = 1;
}
}
rs.absolute((showpage - 1) * pagesize + 1);
for (int i = 1; i <= pagesize; i++) {
NewsBean news = new NewsBean();
news.setNewsContent(rs.getString(2));
news.setNewsTitle(rs.getString(3));
list.add(j, news);
++j;
if (!rs.next())
break;
}
}
return list;
}
}
package org.util;
public class PageBean {
public int maxPage; // 一共有多少页
public int maxRowCount; // 一共有多少行
public int pagesize = 3; // 每页多少行
public PageBean() {
}
public int countPage() throws Exception {
int maxRowCount=this.MaxCount();
if (maxRowCount % this.pagesize == 0) {
maxPage = maxRowCount / this.pagesize;
} else {
maxPage =maxRowCount/ this.pagesize + 1;
}
return maxPage;
}
public int MaxCount() throws Exception {
ContactBean contact=new ContactBean();
this.maxRowCount = contact.getAvailableCount(); // 得到总行数
return maxRowCount;
}
}
分享到:
相关推荐
本文将深入探讨`JSP(JavaServer Pages)、Servlet、JavaBean`以及`Ajax`如何在MVC架构下实现数据的增删改查与分页显示,并涉及`SmartUpload`组件用于文件和图片的上传。 首先,`MVC`模式是一种软件设计模式,它将...
**简单的jsp+servlet+javaBean实现MVC** 在Web开发中,MVC(Model-View-Controller)模式是一种广泛使用的架构模式,它将应用程序的逻辑分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。...
9. **MVC模式**:本项目遵循Model-View-Controller(MVC)设计模式,其中,Model(JavaBean)负责数据管理,View(JSP)负责展示,Controller(Servlet)负责处理用户请求和控制流程。 10. **部署与运行**:完成...
《基于JSP、Servlet和JavaBean的网上商城项目详解》 网上商城项目是现代电子商务的重要组成部分,本项目采用经典的JSP、Servlet和JavaBean技术进行实现,提供了完整的源码,旨在帮助开发者理解和学习如何构建一个...
它涵盖了Web开发中的常见技术,如HTTP请求响应、JSP页面动态渲染、Servlet处理业务逻辑、JavaBean封装对象、数据库连接池的使用、MVC设计模式等。通过分析和实践这个项目,可以深入理解Web应用的生命周期,以及前后...
"JSP+Servlet+JavaBean查询分页"的主题涵盖了如何在处理大量数据时,有效地展示信息并允许用户进行分页浏览。在这个主题中,我们将深入探讨这三个关键组件在分页查询中的应用。 首先,JSP是Java的一个标准视图技术...
2.新闻搜索:(可以选择分类)以新闻标题模糊搜索,有分页功能 3.热点新闻:按新闻点击率高低显示前10条左右的新闻(显示点击率) 4.最新新闻:显示最新添加的新闻(显示日期) 5.公告栏:显示公告信息 6.登录:...
在Java Web开发中,"jsp+servlet+javabean"是一种常见的MVC(Model-View-Controller)架构模式,也被称为Model2。这种模式在处理动态网页内容时,提供了清晰的职责划分,提高了代码的可维护性和可扩展性。下面我们将...
基于Jsp+JavaBean+Servlet实现MVC模式的分页模板 分页没有css,但分页功能齐全 对初学者应该有帮助 分三层编写dao层 service层 web层 数据库可以用ms server2005 或者 mysql5.0 脚本为ms2005.sql 、mysql.sql 切换...
jsp+javabean+servlet使用简单的MVC模式实现登录注册、留言板、分页的功能。model(javabean)层实现读写数据库,数据库名为webapp,没有密码;view(JSP)实现展示信息;controller(servlet)层联系model和view,...
【JSP成绩管理系统】是一个基于Java Web技术的典型应用,主要采用了MVC(Model-View-Controller)设计模式,结合了JSP、Servlet和JavaBean组件。本系统旨在实现对学生成绩的有效管理,包括成绩录入、查询、统计等...
通过这个案例,开发者可以学习到如何在实际项目中整合JSP、Servlet和JavaBean,理解MVC(Model-View-Controller)设计模式的应用,以及如何实现数据持久化、事务管理和错误处理等核心Web开发技能。对于初学者来说,...
总结,本手册详细介绍了基于JSP、Servlet和JavaBean的Web框架搭建过程,从基础架构搭建到逐步优化,最后实现分页功能。通过这个过程,开发者可以深入理解Web应用程序的开发流程和最佳实践,为后续更复杂的项目开发...
总的来说,`jsp+Servlet+javabean`的分页实现方式是:`jsp`负责视图展示,`Servlet`作为控制器处理请求并协调业务逻辑,`javabean`封装数据和业务操作。这种三层架构让代码结构清晰,职责明确,易于维护。在实际项目...
在IT行业中,Web开发是一项核心技能,而JSP(JavaServer Pages)、Servlet和MySQL是构建动态网站时常用的技术栈。本项目"JSP+SERVLET+MYSQL实现的增删改查javaweb小例子"提供了一个基础的实战示例,帮助开发者了解...
在这个名为"分页servlet+jsp+javabean+sqlserver"的项目中,开发者构建了一个基于JavaWeb的人才储备系统。系统的核心功能是实现数据的分页展示,利用Servlet进行服务器端处理,JSP作为视图层进行前端展示,而...
在这个"基于servlet+javabean+jsp(MVC)的分页显示"项目中,我们将会探讨如何使用这些技术实现一个具有分页功能的Web应用。 首先,Servlet是Java提供的一种服务器端编程接口,用于处理HTTP请求并生成响应。在这个...
Jave EE 基础入门注释版--JSP+JavaBean+Servlet(MVC)模式 适合初学者,实现基本的增添改查(包括分页)注释明确 内含数据库脚本
总的来说,JSP+JavaBean+Servlet的分页实现是一个典型的MVC(Model-View-Controller)架构示例,其中JSP作为视图展示数据,JavaBean作为模型存储和处理数据,而Servlet作为控制器协调模型和视图之间的交互。...