1. 程式人生 > >###Jsp+Servlet購物商城day02.3:分頁顯示商品

###Jsp+Servlet購物商城day02.3:分頁顯示商品

功能入口:head.jsp導航欄。分類查詢商品連結。===Ajax  js程式碼DOM拼接的

處理Servlet:ProductServlet

功能出口:productList.jsp

 功能入口:head.jsp導航欄。分類查詢商品連結

<script type="text/javascript">
	//===頁面載入完成,觸發一個函式
	 $(function(){
		$.post(
			"${pageContext.request.contextPath}/CategoryServlet",//請求路徑
			{"method":"findAll"},//提交的資料
			function(v){
				//alert(v);
				//將資料設定進導航條 
				//<li><a href="#">電腦辦公</a></li>
				for(var i = 0; i < v.length; i++){
					var cat = v[i];//{"cid":xxx,"cname":"yyyy"}
					$("#showCat").append("<li><a href='${pageContext.request.contextPath}/ProductServlet?method=findByCid&cid=" + cat.cid + "'>" + cat.cname + "</a></li>");
				}
			},//回撥函式
			"json"//資料型別
		);
	});
	 
</script>

處理Servlet:ProductServlet

實現步驟:

首先是資料庫:mysql

select * from product where cid=?  limit start, size;

頁面顯示不僅僅是商品資訊,還有當前頁號,pageSize。所以封裝了PageBean。

這裡給了一個工具類PageBean。===當然可以自己寫,很簡單。

package cn.itcast.domain;

import java.io.Serializable;
import java.util.List;

public class PageBean<T> implements Serializable{

	private int pageNumber;//當前頁 ---前臺傳遞
	
	private int pageSize;//一頁顯示多少條資料 ---後臺自定義
	
	private int startIndex;//起始索引下標 --- 計算出來
	
	private int totalRecord;//總記錄數---  查詢出來
	
	private int totalPage; //總頁數  ---  計算出來
	
	private List<T> result;//每一頁的資料

	public PageBean() {
		super();
		// TODO Auto-generated constructor stub
	}

	public int getPageNumber() {
		return pageNumber;
	}

	public void setPageNumber(int pageNumber) {
		this.pageNumber = pageNumber;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getStartIndex() {
		return startIndex=(this.getPageNumber()-1)*this.getPageSize();
	}

	public void setStartIndex(int startIndex) {
		this.startIndex = startIndex;
	}

	public int getTotalRecord() {
		return totalRecord;
	}

	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
	}

	public int getTotalPage() {
		return totalPage=(this.getTotalRecord()%this.getPageSize()==0?(this.getTotalRecord()/this.getPageSize()):(this.getTotalRecord()/this.getPageSize()+1));
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public List<T> getResult() {
		return result;
	}

	public void setResult(List<T> result) {
		this.result = result;
	}
	
	
}
ProductServlet:
public String findByCid(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		ProductService ps = new ProductServiceImpl();
		String cid = request.getParameter("cid");
		String pagenum = request.getParameter("pageNum");
		if (pagenum == null) {
			pagenum="1";
		}
		try {
			PageBean pb = ps.findByPage(cid,pagenum );
			request.setAttribute("pb", pb);
		} catch (SQLException e) {
			e.printStackTrace();
		}
			return "/product_list.jsp";
	}
service:
@Override
	public PageBean findByPage(String cid, String pagenum) throws SQLException {
		ProductDao pd  = new ProductDaoImpl();
		PageBean pbean = new PageBean();
		
		 pbean.setPageNumber(Integer.parseInt(pagenum));
		 pbean.setPageSize(12);
		 pbean.setStartIndex((Integer.parseInt(pagenum)-1)*12);
		 int totalRecord = pd.getCountByCid(cid);
		 pbean.setTotalRecord(totalRecord);
		 //int totalPage = totalRecord/5==0?totalRecord/5:totalRecord/5+1;
		 //pbean.setTotalPage(totalPage );//===計算來的,不用set
		 List<Product> list = pd.findByPage( cid, pbean);
		 pbean.setResult(list);
		
		return pbean ;
	}

dao
@Override
	public List<Product> findByPage(String cid, PageBean pb) throws SQLException {
		QueryRunner qr = new QueryRunner(C3p0Utils.getDataSource());
		String sql = "select * from product  where cid = ? limit ?,?";
		/*
		 SQLException:  near ''0','5'' at line 1 Query: 
		 select * from product  where cid = ? limit ?,? Parameters: [1, 0, 5]
	//		String[]  params ={cid,  pb.getStartIndex()+"",  pb.getPageSize()+""};//
		 * */
		Object[]  params ={cid,  pb.getStartIndex(),  pb.getPageSize()};
		List<Product> list = qr.query(sql , new BeanListHandler<Product>(Product.class),params );
		return list;
	}




相關推薦

###Jsp+Servlet購物商城day02.3顯示商品

功能入口:head.jsp導航欄。分類查詢商品連結。===Ajax  js程式碼DOM拼接的 處理Servlet:ProductServlet 功能出口:productList.jsp  功能入口:head.jsp導航欄。分類查詢商品連結 <script type=

網上購物系統(Task007)——自定義DateList控制元件顯示商品資訊

原始碼:13033480群共享 一、資料集Model新增商品資訊類ItemInfo.cs。 using System; namespace WestGarden.Model { public class ItemInfo { privat

jsp入門教程7個步驟實現JSP顯示

本期的jsp入門學習內容:實現JSP分頁顯示的方法。今天給大家帶來實現jsp分頁顯示的程式碼,簡單的7個步驟就可以實現JSP的分頁顯示,有需要的朋友可以參考一下,學習些jsp開發的知識。 正式開始此次的jsp入門教程的學習: 1、MySQL的limit關鍵字 (DAO

淘淘商城項目技術點-6工具PageHelper

lmap actor div and nvi bubuko ase ges val 使用PageHelper有引入jar包和maven兩種方式,推薦使用maven方式。 在mybatis的sqlMapConfig.xml文件中配置PageHelper:

JSP實現 留言板 顯示,新留言顯示在第一個~

date() sdf style string hid pre || lan pat 頁面效果圖: 留言Servlet-----MessageServlet package cn.MuJH.newsManager.servlet; import java.io.

例項建立一個表格,顯示資料(MongoDB資料庫儲存),功能實現增刪改查

需求:建立一個表格,分頁顯示資料,功能:實現增刪改查 效果圖: 自動建立一個專案 命令列: express mongodb-demo --view=ejs cd mongodb-demo npm install npm install mongodb --save npm sta

工具類二Model

/** * 分頁Model類 * @author * */ public class PageBean { private int page; // 第幾頁 private int pageSize; // 每頁記錄數 private int start;

Spring boot入門(三)SpringBoot整合結合AdminLTE(Freemarker),利用generate自動生成程式碼,利用DataTable和PageHelper進行顯示

  關於SpringBoot和PageHelper,前篇部落格已經介紹過Spring boot入門(二):Spring boot整合MySql,Mybatis和PageHelper外掛,前篇部落格大致講述了SpringBoot如何整合Mybatis和Pagehelper,但是沒有做出實際的範例,本篇部落格是連

手把手教你如何玩轉外掛外掛(Pagehelper)

情景引入:小白:起床起床,,,快起床!!!我:怎麼怎麼了,小白你到底又怎麼了。。小白:我發現在Web系統中,分頁是一種很常見的功能,可是,我之前寫的方法都比較麻煩,移植性不是很高,有沒有什麼好辦法可以快速實現分頁的呢?我:確實是的,分頁功能幾乎在每個系統中都是存在的,它的實現

Oracle

SQL:  Select ename from emp where ename like '_M%'第二個字母 Select to_char(sysdate, 'yyyy') a from dual //2018 select deptno, job, avg(sal) from

Sql Server

示例: https://www.cnblogs.com/fengxiaojiu/p/7994124.html SQL: select astart,avg(aid) a from air group by astart select dateadd(yy,1, '2008-9-10'

資料庫面試查詢的SQL寫法

    分頁是很多網站應用或管理系統比較常見的需要實現的需求,是相關開發同學常碰到的需要寫的查詢。開發面試中會不會被問到用SQL寫分頁,因為個人不是開發,就不得而知了。在之前自己參加的資料庫崗位的面試中,被問到用SQL寫分頁,所以這裡記錄一下。 SELECT t.`colu

Android官方架構元件Paging庫的設計美學

前言 本文已授權 微信公眾號 玉剛說 (@任玉剛)獨家釋出。 我是一個崇尚 開源 的Android開發者,在過去的一段時間裡,我研究了Github上的一些優秀的開源庫,這些庫原始碼中那些 天馬行空 的 設計 和 思想 令我沉醉其中。 在我職

Flask Mega-Tutorial 中文教程 V2.0 第9章

最近在Flask Web Development作者部落格看到第二版Flask Mega-Tutorial已在2017年底更新,現翻譯給大家參考,希望幫助大家學習flask。 這是Flask Mega-Tutorial系列的第九章,其中我將告訴您如何對資料庫列表進行分頁

JSP頁面顯示資料

一、原始碼(這裡以一個Java web的留言板專案為例): 1.Dao層操作資料庫的方法(MessageDao.java) 設定每頁顯示的最大留言條數: private final int MAX_SIZE = 2; // 每頁顯示的最大留言數 從資料庫讀取留言的總

jsp實現顯示資訊(資料庫、EL表示式、連線池)

一、準備工作 1.1在mysql資料庫中你建立學生的表 1.2細節: 1.2.0. 先匯入musql的jar包 1.2.1. 性別一般用列舉型 1.2.2. 要將錶轉儲sql檔案,放在web專案額web-info下面

前臺jsp獲取後臺查詢的結果集資料並實現顯示

前臺獲取後臺查詢的結果並分頁顯示。 1、使用ajax非同步請求,傳送post請求到url,獲取結果引數data(data被dao層處理成json物件返回) 2、返回的結果: 在dao處理後(根據userId查詢結果集)向service返回的結果,是一個json物件:re

作業系統核心原理-5.記憶體管理(中)記憶體管理

  在上一篇介紹的幾種多道程式設計的記憶體管理模式中,以交換記憶體管理最為靈活和先進。但是這種策略也存在很多重大問題,而其中最重要的兩個問題就是空間浪費和程式大小受限。那麼有什麼辦法可以解決交換記憶體存在的這些問題呢?答案是分頁,它是我們解決交換缺陷的“不二法門”。 一、分頁記憶體管理 1.1 解決問題之

servlet+mvc實現顯示列表

實現分頁顯示有好多種方法,有客戶端顯示的用JS,有服務端分頁的。在此我對服務端的分頁功能進行敘述 先展示下我的專案的目錄結構: 標準的MVC模式,現在我的分頁步驟是從jsp呼叫servlet,通過servlet呼叫對應的service類,service類

JSP顯示的程式碼和詳細步驟

首先要定義四個變數: int pageSize:每頁顯示多少條記錄 int pageNow:希望顯示第幾頁 int pageCount:一共有多少頁 int rowCount:一共有多少條記錄 說明: pageSize是指定的 pageNow是使用者選擇的 rowCount