JSP+Servlet分页
2016-12-26 21:45
162 查看
1首先创建PageBean
public class PageBean<T> {
private int pc ; //当前页 page current
private int tp ; //总页数 totalpage
private int tr ; //总记录数tatal record
private int ps ; //每页记录数 page size
private List<T> user ;//当前页的记录
public int getPc() {
return pc;
}
public void setPc(int pc) {
this.pc = pc;
}
public int getTp() {
//获得总页数
int tp = tr/ps ;
return tr%ps==0?tp:tp+1;
}
/* public void setTp(int tp) {
this.tp = tp;
}*/
public int getTr() {
return tr;
}
public void setTr(int tr) {
this.tr = tr;
}
public int getPs() {
return ps;
}
public void setPs(int ps) {
this.ps = ps;
}
public List<T> getUser() {
return user;
}
public void setUser(List<T> user) {
this.user = user;
}
2 Servlet处理
//获取页面传递的pc
public int getPc(HttpServletRequest request ){
String value =request.getParameter("pc");
if(value==null||value.trim().isEmpty()){
return 1 ;
}
return Integer.parseInt(value) ;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//首先我们要获得页面传递pc/pagecurrent
,因为可能是第一页 也可能不是第一个页
int pc = getPc(request);
//设置每页显示多少条数据
int ps =2 ;
PageBean<User> listuser;
try {
listuser = userDao.findAll(pc,ps);
request.setAttribute("listuser", listuser);
request.getRequestDispatcher("mylist.jsp").forward(request, response);
} catch (SysException e) {
e.printStackTrace();
}
3实现
public class UserDaoImpl implements UserDao {
DBUtil db = new DBUtil();
@Override
public PageBean<User> findAll(int pc, int ps) throws SysException {
PageBean<User> pagebean = new PageBean<User>();
pagebean.setPc(pc);
pagebean.setPs(ps);
// 得到 总记录 tr
String sql = "select count(*) record from user ";
Object obj[] = null;
List<Map<String, String>> list = db.executeQuery(sql, obj);
for (int i = 0; i < list.size(); i++) {
Map<String, String> map = list.get(i);
int tr = Integer.parseInt(map.get("record"));
pagebean.setTr(tr);
}
String sql2 = "select * from user limit ?,?";
Object obj2[] = { (pc - 1) * ps, ps };
List<User> luser = new ArrayList<>();
List<Map<String, String>> list2 = db.executeQuery(sql2, obj2);
for (int i = 0; i < list2.size(); i++) {
Map<String, String> map = list2.get(i);
int id = Integer.parseInt(map.get("id"));
String username = map.get("username");
String password = map.get("password");
User user = new User();
user.setId(id);
user.setUsername(username);
user.setPassword(password);
luser.add(user);
pagebean.setUser(luser);
}
return pagebean;
}
}
public class PageBean<T> {
private int pc ; //当前页 page current
private int tp ; //总页数 totalpage
private int tr ; //总记录数tatal record
private int ps ; //每页记录数 page size
private List<T> user ;//当前页的记录
public int getPc() {
return pc;
}
public void setPc(int pc) {
this.pc = pc;
}
public int getTp() {
//获得总页数
int tp = tr/ps ;
return tr%ps==0?tp:tp+1;
}
/* public void setTp(int tp) {
this.tp = tp;
}*/
public int getTr() {
return tr;
}
public void setTr(int tr) {
this.tr = tr;
}
public int getPs() {
return ps;
}
public void setPs(int ps) {
this.ps = ps;
}
public List<T> getUser() {
return user;
}
public void setUser(List<T> user) {
this.user = user;
}
2 Servlet处理
//获取页面传递的pc
public int getPc(HttpServletRequest request ){
String value =request.getParameter("pc");
if(value==null||value.trim().isEmpty()){
return 1 ;
}
return Integer.parseInt(value) ;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//首先我们要获得页面传递pc/pagecurrent
,因为可能是第一页 也可能不是第一个页
int pc = getPc(request);
//设置每页显示多少条数据
int ps =2 ;
PageBean<User> listuser;
try {
listuser = userDao.findAll(pc,ps);
request.setAttribute("listuser", listuser);
request.getRequestDispatcher("mylist.jsp").forward(request, response);
} catch (SysException e) {
e.printStackTrace();
}
3实现
public class UserDaoImpl implements UserDao {
DBUtil db = new DBUtil();
@Override
public PageBean<User> findAll(int pc, int ps) throws SysException {
PageBean<User> pagebean = new PageBean<User>();
pagebean.setPc(pc);
pagebean.setPs(ps);
// 得到 总记录 tr
String sql = "select count(*) record from user ";
Object obj[] = null;
List<Map<String, String>> list = db.executeQuery(sql, obj);
for (int i = 0; i < list.size(); i++) {
Map<String, String> map = list.get(i);
int tr = Integer.parseInt(map.get("record"));
pagebean.setTr(tr);
}
String sql2 = "select * from user limit ?,?";
Object obj2[] = { (pc - 1) * ps, ps };
List<User> luser = new ArrayList<>();
List<Map<String, String>> list2 = db.executeQuery(sql2, obj2);
for (int i = 0; i < list2.size(); i++) {
Map<String, String> map = list2.get(i);
int id = Integer.parseInt(map.get("id"));
String username = map.get("username");
String password = map.get("password");
User user = new User();
user.setId(id);
user.setUsername(username);
user.setPassword(password);
luser.add(user);
pagebean.setUser(luser);
}
return pagebean;
}
}
相关文章推荐
- javascript——this指向
- jstl 1.2.5报空指针异常
- javascript——事件
- HTML5+CSS3+JS学习笔记-10-CSS3之2D转换的用法
- JavaScript实现9*9乘法表+隔行换色
- 【js】将1-100之间的奇数存入数组
- 用JSP做计算器(一)
- javascript将字符串中的多个空格替换为一个空格的正则实例
- js数组中的注意
- javascript replace()第二个参数为函数时的参数用法
- BZOJ1031 [JSOI2007]字符加密Cipher 后缀数组
- JavaScript '=='和'==='
- javascript prototype原型详解(比较基础)
- js禁用后退
- ECMAScript6(ES6)标准之class类的定义、继承及静态方法
- Web Worker javascript多线程编程(二)
- JavaScript创建对象的三种方式
- JSP
- Json串与List<Bean>、Bean之间的转换,处理类中List<Bean>属性的序列化问题
- 通过JS动态改变table中<td>的内容