1.创建数据库,插入多条数据

2.java连接DB

3.Person类:

package com.phome.po;

public class Person {
private int id;
private int age;
private String name;
private String sex; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
  //...Setter() And Getter();
}

4.Dao操作类:

public class PersonDao {
/**
* ADD
* @param person
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public boolean add(Person person) throws ClassNotFoundException, SQLException {
String sql = "Insert into Persons(name,age,sex) values(?,?,?)";
Connection conn = null;
PreparedStatement ps = null;
boolean success = false;
try {
conn = DbUtil.getConnection();
ps = conn.prepareStatement(sql);
//设置参数
ps.setString(1, person.getName());
ps.setInt(2, person.getAge());
ps.setString(3, person.getSex());
//执行sql语句
success = (ps.executeUpdate() > 0);
} catch (SQLException e) {
System.out.println("【PersonDao -> add()发生异常】\n【异常信息】" + e.getErrorCode());
throw e;
} finally {
DbUtil.close(ps);
DbUtil.close(conn);
}
return success;
}
/**
* Page List
* @param pageIndex
* @param pageSize
* @param condition
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public List<Person> findByPaging(int pageIndex,int pageSize,String condition) throws ClassNotFoundException, SQLException{
String sql = "Select * From Persons";
if(condition != null){
sql += " Where " + condition;
}
sql += " limit " + ((pageIndex - 1) * pageSize) + "," + pageSize ;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<Person> persons = new ArrayList<Person>();
try {
conn = DbUtil.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
persons.add(rs2Person(rs));
}
} catch (SQLException e) {
System.out.println("【PersonDao -> findByPaging()发生异常】" + "\n【异常信息】"
+ e.getMessage());
throw e;
} finally {
DbUtil.close(rs);
DbUtil.close(ps);
DbUtil.close(conn);
}
return persons;
}
/**
* 得到总数
* @param condition
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public int getCount(String condition) throws ClassNotFoundException, SQLException{
String sql = "Select count(*) From Persons";
if(condition != null){
sql += " Where " + condition;
}
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
int count = 0;
try {
conn = DbUtil.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
System.out.println("【PersonDao ->getCount()发生异常】" + "\n【异常信息】"
+ e.getMessage());
throw e;
} finally {
DbUtil.close(rs);
DbUtil.close(ps);
DbUtil.close(conn);
}
return count;
}
/**
* 查询Person的结果集
* @param rs
* @return
* @throws SQLException
*/
private Person rs2Person(ResultSet rs) throws SQLException {
Person person = null;
try {
person = new Person();
person.setId(rs.getInt("Id"));
person.setName(rs.getString("Name"));
person.setAge(rs.getInt("Age"));
person.setSex(rs.getString("Sex"));
} catch (SQLException e) {
System.out.println("【PersonDao -> rs2Person()发生异常】" + "\n【异常信息】"
+ e.getMessage());
throw e;
}
return person;
}
}

5.Servlet类:

public class ShowPageServlet extends HttpServlet {

    @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException { int pageIndex = 1;
int count = 0;
int pageSize = 10;
PersonDao dao = new PersonDao();
List<Person> list= new ArrayList<Person>(); if(req.getParameter("pageIndex") != null){
pageIndex = Integer.parseInt(req.getParameter("pageIndex"));;
}
try {
count = dao.getCount(null);
list = dao.findByPaging(pageIndex, pageSize, null);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
int pageCount = count/10; req.setAttribute("pageCount", pageCount);//共 页
req.setAttribute("list", list);
req.setAttribute("pageIndex", pageIndex);//第 页
req.setAttribute("count", count);
req.getRequestDispatcher("showpage.jsp").forward(req, resp);
} }

6.xml文件配置

<servlet>
<servlet-name>page</servlet-name>
<servlet-class>com.phome.servlet.ShowPageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>page</servlet-name>
<url-pattern>/page</url-pattern>
</servlet-mapping>

7.Jsp

Index.jsp

<form action="${pageContext.request.contextPath}/page" method="post" >
<input type="submit" value="分页显示" />
</form>

showpage.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>分页管理页面</title>
<style>
*{
font-size:12px;
}
table{
width:100%;
height:100%;
border-collapse:collapse;
border:1px solid #78C0D4;
}
td,th{
border:1px solid #78C0D4;
}
.first-line{
height:20px;
background-color:#A5D5E2;
}
</style>
</head> <body>
<div style="width:600px;height:400px;margin-left:300px;">
<table align="center" width="300px">
<tr class="first-line">
<th>
Id
</th>
<th>
姓名
</th>
<th>
年龄
</th>
<th>
性别
</th>
</tr> <c:forEach var="person" items="${list}" varStatus="s">
<tr <c:if test="${s.index mod 2 != 0}">style="background-color:#eee"</c:if> >
<td>
${person.id}
</td>
<td>
${person.name}
</td>
<td>
${person.age}
</td>
<td>
${person.sex}
</td>
</tr>
</c:forEach>
</table>
</div>
<div style="width:600px;height:400px;margin-left:500px;">
<a href="page?pageIndex=1">首页</a>&nbsp;
<a href="page?pageIndex=${pageIndex<=1 ? 1:pageIndex-1 }">上页</a>&nbsp;
<a style="color:red;">第${pageIndex }页</a>&nbsp;/&nbsp;
<a style="color:red;">共${pageCount+1 }页</a>&nbsp;
<a href="page?pageIndex=${pageIndex>=pageCount+1 ? pageCount+1:pageIndex+1 }">下页</a>&nbsp;
<a href="page?pageIndex=${pageCount+1 }">尾页</a>&nbsp;
<form action="${pageContext.request.contextPath}/page">
跳转至<input type="text" name="pageIndex" style="width:25px;"/>页
<input type="submit" value="跳转" />
</form>
</div>
</body>
</html>

效果图:

Java——分页 Servlet + Jsp+Jdbc 有点瑕疵的更多相关文章

  1. Servlet+JSP+JDBC设计实现图书系统——管理功能实现

    写在前面,之前由于种种原因博客好久没有更新.最近打算重拾JavaWeb,所以从头开始,先用servlet+jdbc+bootstrap最基础的代码实现一个图书系统.考虑有管理员端+用户端,项目完成后会 ...

  2. Servlet+JSP+JDBC综合案例

    层级关系: 一.Util包 包里面写一个JDBCTools.java文件 功能:实现数据库连接返回一个Connection对象,并且可以实现数据库相应资源的关闭! 注意事项: 1.定义成员变量 1 p ...

  3. 天坑 之 java web servlet+jsp项目 配置后 404 (MyEclipse转eclipse)

    最近搞一个自己的博客系统玩,用了servlet+jsp,结果发现了两个大问题: 1.无法 Export 出 WAR文件: 2.生成WAR,放置到TOMCAT的 webapps目录后,http://lo ...

  4. servlet jsp jdbc bootstrarp mvc分层模式实现的第一个项目

    登录注册界面 这是一个注册和登录的界面 用到了前端页面中自带的一点H5的标签和属性---巩固下 邮箱格式 :type="email"  不能为空:  required=" ...

  5. servlet+jsp+jdbc实现从数据库查询用户信息到页面

    工程创建这里就不在累述了,直接从显示User信息列表开始. 备注:我用的是servlet3的注解功能实现的,所以不需要配置web.xml 这是我的工程目录: 首先我们创建实体类: public cla ...

  6. java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)

    转自:https://zhangkunnan.iteye.com/blog/2040462 前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet. ...

  7. javabean+servlet+jsp实现分页

    前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分 ...

  8. JDBC+Servlet+jsp(增删查改)

    先在mysql新增数据库和表先,把下面的几句代码复制去到mysql运行就可以创建成功了!  创建数据库 create database jdbc01 character set utf8 collat ...

  9. MySQL+Service+Servlet+Jsp实现Table表格分页展示数据

    下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...

随机推荐

  1. 剑指offer:滑动窗口的最大值

    滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值 ...

  2. github使用指南(2015年3月23日更新了本地创建仓库再推送到remote仓库的使用方法)

    我是通过这个来学习的.个人愚笨,琢磨了半天,终于搞通了,醉了醉了,以前一直使用svn,用git确实有点水土不服.本文以如何使用git为主来展开,不涉及太多理论. git是分布式的版本管理.什么叫分布式 ...

  3. 使用DataContext和ItemsSource将数据源绑定到ListView上的区别

    在最近的一个项目中,将DataView类型的数据源绑定到ListView控件时,发现当DataView的内容发生变化时,前台的ListView控件的内容并没有发生改变,在这里我先贴出前台要绑定数据源的 ...

  4. Delphi的关键字

    Constructor;构造器,定义构造函数使用Constructor关键字

  5. python之pygal:掷两个不同的骰子并统计大小出现次数

    代码示例: # 掷两个不同的骰子并统计大小出现次数 import pygal from die_class import Die die = Die(6) # 实例化一个六面的骰子对象 die_10 ...

  6. Layui_2.x_上传插件使用

    一.上传类 package com.ebd.application.common.utils; import java.awt.geom.AffineTransform; import java.aw ...

  7. MT【52】空间法向量理解直线条数

    [从最简单的做起.]--波利亚 评:线面角转化成线与线的角,这道题还有类似的这类题是学生的难点.

  8. BZOJ 400题纪念

    应该是最后一次纪念了吧! 想当年,我可是发过"BZOJ 10题纪念"的人--那时候(一年前?)的自己真的好菜啊,只能说掌握了c++的基础语法的样子.当时觉得省选级别的BZOJ题是世 ...

  9. [算法进阶0x10]基本数据结构A作业总结

    在线题目\(oj\)评测地址:https://xoj.red/contests/show/1237 T1-Editor(hdu4699) 题目描述 维护一个整数序列的编辑器,有以下5种操作,操作总数不 ...

  10. 最长上升子序列LIS(51nod1134)

    1134 最长递增子序列 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递 ...