Java——分页 Servlet + Jsp+Jdbc 有点瑕疵

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>
<a href="page?pageIndex=${pageIndex<=1 ? 1:pageIndex-1 }">上页</a>
<a style="color:red;">第${pageIndex }页</a> /
<a style="color:red;">共${pageCount+1 }页</a>
<a href="page?pageIndex=${pageIndex>=pageCount+1 ? pageCount+1:pageIndex+1 }">下页</a>
<a href="page?pageIndex=${pageCount+1 }">尾页</a>
<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 有点瑕疵的更多相关文章
- Servlet+JSP+JDBC设计实现图书系统——管理功能实现
写在前面,之前由于种种原因博客好久没有更新.最近打算重拾JavaWeb,所以从头开始,先用servlet+jdbc+bootstrap最基础的代码实现一个图书系统.考虑有管理员端+用户端,项目完成后会 ...
- Servlet+JSP+JDBC综合案例
层级关系: 一.Util包 包里面写一个JDBCTools.java文件 功能:实现数据库连接返回一个Connection对象,并且可以实现数据库相应资源的关闭! 注意事项: 1.定义成员变量 1 p ...
- 天坑 之 java web servlet+jsp项目 配置后 404 (MyEclipse转eclipse)
最近搞一个自己的博客系统玩,用了servlet+jsp,结果发现了两个大问题: 1.无法 Export 出 WAR文件: 2.生成WAR,放置到TOMCAT的 webapps目录后,http://lo ...
- servlet jsp jdbc bootstrarp mvc分层模式实现的第一个项目
登录注册界面 这是一个注册和登录的界面 用到了前端页面中自带的一点H5的标签和属性---巩固下 邮箱格式 :type="email" 不能为空: required=" ...
- servlet+jsp+jdbc实现从数据库查询用户信息到页面
工程创建这里就不在累述了,直接从显示User信息列表开始. 备注:我用的是servlet3的注解功能实现的,所以不需要配置web.xml 这是我的工程目录: 首先我们创建实体类: public cla ...
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
转自:https://zhangkunnan.iteye.com/blog/2040462 前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet. ...
- javabean+servlet+jsp实现分页
前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分 ...
- JDBC+Servlet+jsp(增删查改)
先在mysql新增数据库和表先,把下面的几句代码复制去到mysql运行就可以创建成功了! 创建数据库 create database jdbc01 character set utf8 collat ...
- MySQL+Service+Servlet+Jsp实现Table表格分页展示数据
下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...
随机推荐
- Flutter & Dart
Flutter & Dart https://www.dartlang.org/install https://flutter.dev/ https://flutter.dev/docs/ge ...
- Django-website 程序案例系列-17 forms表单验证的字段解释
1.Django内置字段如下: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial ...
- 12 Zabbix Item类型之Zabbix JMX类型
点击返回:自学Zabbix之路 12 Zabbix Item类型之Zabbix JMX类型 JMX 全称是Java Management Extensions,即Java管理扩展.Java程序会开放一 ...
- 【BZOJ2245】[SDOI2011]工作安排(费用流)
[BZOJ2245][SDOI2011]工作安排(费用流) 题面 BZOJ 洛谷 题解 裸的费用流吧. 不需要拆点,只需要连边就好了,保证了\(W_j<W_{j+1}\). #include&l ...
- luogu1541 乌龟棋 (dp)
dp..dp的时候不能设f[N][x1][x2][x3][x4],会T,要把N省略,然后通过1/2/3/4牌的数量来算已经走到哪一个了 #include<bits/stdc++.h> #d ...
- 关于程序设计中经常出现的INF和MOD值的设定
摘自:https://www.cnblogs.com/gfvod/p/5548313.html 在取模操作中,我们常把MOD设置为1000000007,模一个大数和模一个质数可以减少冲突,而1e9+7 ...
- Matlab 沿三维任意方向切割CT图的仿真计算
一.数据来源 头部组织的数据.此处直接引用了matlab自带的mri数据.实际场景中,可以通过CT得到的数据进行转换得到 插入异物的数据.此处我假设插入异物为一根细铁丝.模拟为空间中的一条曲线.这个曲 ...
- poco logging
http://pocoproject.org/slides/110-Logging.pdf
- 中南大学2018年ACM暑期集训前期训练题集(入门题) J : A Simple Problem
毒瘤哇!为什么要用long long 啊!!!这个题没有加法操作啊,为什么会爆int啊!!!! 思路: http://www.cnblogs.com/buerdepepeqi/p/9048130.ht ...
- mysql 多表管理修改
update t_res_ys,cms_article_data,cms_article set cms_article_data.jsdata=t_res_ys.jsdata ,cms_articl ...