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. SQL ROUND函数的使用

    SQL ROUND函数的使用   SQL ROUND函数是对数据进行制定精度的取值. 第一个参数是取值的数据,第二个参数是精度,第三个参数是数据取值模式(四舍五入还是截断),其中第三个参数是可选参数, ...

  2. Mysql 乐观锁

    转载:http://chenzhou123520.iteye.com/blog/1863407 乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般 ...

  3. 【Mysql】—— 索引的分类

    注意:索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引.MyISAM和InnoDB存储引擎:只支持BTREE索引,也就是说默认使用BTREE,不能够更换.MEMORY/HEAP存储引 ...

  4. BZOJ3160 万径人踪灭(FFT+manacher)

    容易想到先统计回文串数量,这样就去掉了不连续的限制,变为统计回文序列数量. 显然以某个位置为对称轴的回文序列数量就是2其两边(包括自身)对称相等的位置数量-1.对称有啥性质?位置和相等.这不就是卷积嘛 ...

  5. Uva10474-STL水题-白书

    白书的一道水题.话说好久没认真做难题了.今天出了排名,所有队伍里倒数第一啊! 代码没什么可说的了. #include <algorithm> #include <cstring> ...

  6. Educational Codeforces Round 4 C. Replace To Make Regular Bracket Sequence

    题目链接:http://codeforces.com/contest/612/problem/C 解题思路: 题意就是要求判断这个序列是否为RBS,每个开都要有一个和它对应的关,如:<()> ...

  7. 【BZOJ4000】【LOJ2104】【TJOI2015】棋盘 (状压dp + 矩阵快速幂)

    Description ​ 有一个\(~n~\)行\(~m~\)列的棋盘,棋盘上可以放很多棋子,每个棋子的攻击范围有\(~3~\)行\(~p~\)列.用一个\(~3 \times p~\)的矩阵给出了 ...

  8. 总结那些有默认margin,padding值的html标签

    一.h1~h6标签:有默认margin(top,bottom且相同)值,没有默认padding值. 在chrome中:16,15,14,16,17,19; 在firefox中:16,15,14,16, ...

  9. Python(四)——PyCharm的安装和使用

    python开发IDE: #专业版 #不要汉化 快捷键:Ctrl + ? = 整体注释

  10. word中批量修改图片大小的两个方法

    前言: 对于把ppt的内容拷贝到word中: 对ppt的一页进行复制,然后粘贴到word中 如果要的是ppt运行过程中的内容,在qq运行的情况下,按Ctrl+Alt+A截屏,按勾,然后可以直接粘贴到w ...