本文实例为大家分享了javaweb分页原理的具体实现代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
|
public class Page { private int currentPage; private int totalPage; private int count; private int PageSize; private List<Product> list; private String category; } |
servlet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
package com.learning.web.servlet; import java.io.IOException; import java.util.List; import javax.enterprise.inject.New; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.learning.domain.Page; import com.learning.domain.Product; import com.learning.service.ProductService; @WebServlet ( "/showProductByPage" ) public class ShowProductByPage extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int currentPage= 1 ; int pageSize= 4 ; //第一次取为空 String currentPageString=request.getParameter( "currentPage" ); if (currentPageString!= null ) { currentPage=Integer.parseInt(currentPageString); } String category = request.getParameter( "category" ); if ( "" .equals(category)) { category= null ; } ProductService productService= new ProductService(); Page page=productService.showProductByPage(currentPage,pageSize,category); request.setAttribute( "page" , page); request.getRequestDispatcher( "/product_list.jsp" ).forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } |
service:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public Page showProductByPage( int currentPage, int pageSize, String category) { try { Page page= new Page(); int count=productDao.count(category); page.setCount(count); page.setList(productDao.findProductsByPage(currentPage,pageSize,category)); int totalPage=( int ) Math.ceil( 1.0 *count/pageSize); page.setPageSize(pageSize); page.setCurrentPage(currentPage); page.setTotalPage(totalPage); page.setCategory(category); return page; } catch (SQLException e) { e.printStackTrace(); } return null ; } |
Dao:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public int count(String category) throws SQLException { QueryRunner queryRunner= new QueryRunner(C3P0Util.getDataSource()); String sql= " select count(*) from products " ; if (category!= null ) { sql+= " where category='" +category+ "'" ; } long l= (Long)queryRunner.query(sql, new ScalarHandler( 1 )); return ( int ) l; } public List<Product> findProductsByPage( int currentPage, int pageSize, String category) throws SQLException { QueryRunner queryRunner= new QueryRunner(C3P0Util.getDataSource()); String sql= " select * from products " ; if (category!= null ) { sql+= " where category='" +category+ "'" ; } sql+= " limit ?,?" ; return queryRunner.query(sql, new BeanListHandler<Product>(Product. class ),(currentPage- 1 )*pageSize,pageSize); } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。