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. ubuntu安装steam

    增加第三方自由库的软件支持 sudo add-apt-repository multiverse 增加更新支持包 sudo add-apt-repository multiverse 安装steam ...

  2. FICO模块

  3. 基于C#.NET的高端智能化网络爬虫(一)(反爬虫哥必看)

    前两天朋友发给我了一篇文章,是携程网反爬虫组的技术经理写的,大概讲的是如何用他的超高智商通过(挑衅.怜悯.嘲讽.猥琐)的方式来完美碾压爬虫开发者.今天我就先带大家开发一个最简单低端的爬虫,突破携程网超 ...

  4. Lodop强制分页LODOP.NewPage()和LODOP.NewPageA()

    使用Lodop打印控件打印时,有自动分页,有手动强制分页,也可以两者结合使用,在使用两者结合的时候注意LODOP.NewPage()和LODOP.NewPageA()的区别,如果前面打印项自动分页不止 ...

  5. 使用vscode 编写Markdown文件

    markdown简单语法参考下面简单事例: # 一级标题 1. 有序列表1 >1. 有序列表1 >>- *test1* >>- **test2** >>- * ...

  6. pgm11

    这里简要的讨论 hybrid network 与一些时序数据的分析. hybrid network 指网络中存在离散随机变量与连续随机变量,这种情况下一般非常麻烦,这主要是因为连续型随机变量需要使用某 ...

  7. hdu5521(Meeting)spfa 层次网络最短路

    题意:给出几个集合,每个集合中有Si个点 且任意两个点的距离为ti,现在要求两个人分别从1和n出发,问最短多长时间才能遇到,且给出这些可能的相遇点; 取两个人到达某点时所用时间大的值 然后取最小的   ...

  8. 对STM32库函数中 assert 函数的认知

    > 本段代码取自 <stm32f4xx_gpio.c> > 可以看出进入函数第一件事就是做 assert 输入参数检查,参数合法后,根据参数做相应操作 /** * @brief ...

  9. bzoj3277 串 (后缀数组+二分答案+ST表)

    常见操作:先把所有串都连到一起,但中间加上一个特殊的符号(不能在原串中/出现过)作为分割 由于全部的子串就等于所有后缀的所有前缀,那我们对于每一个后缀,去求一个最长的前缀,来满足这个前缀在至少K个原串 ...

  10. POJ3287(BFS水题)

    Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...