亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pageaction.java

?? 本系統實現了從五個網站上搜索的圖書進行整合后
?? JAVA
字號:
package com.booksearch.action;
/************************************************************
FileName: PageAction.java
Author: fengguang 
Date:11/16/08
Description: 對內存中的結果鏈表進行處理,獲得分頁工具欄,以便顯示
Class List: PageAction
***********************************************************/
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.booksearch.dao.BookLoadDao;
import com.booksearch.dao.BookSaveDao;
import com.booksearch.dao.DailyLoadDao;
import com.booksearch.dao.DailySaveDao;
import com.booksearch.orm.Book;
import com.booksearch.service.process.PageService;
import com.booksearch.service.process.ProcessService;
import com.booksearch.util.SessionBean;
/**
 * Class:PageAction
 * Description: 對內存中的結果鏈表進行處理,獲得分頁工具欄,以便顯示
 * extens:Action
 * @author  feng guang
 * @since   11/16/08
 */
public class PageAction extends Action {

	/*總記錄數*/
	private long totalRecords = 0;
	/*當前頁數*/
	private int currPage;
	/*本頁的起始記錄索引*/
	private long startPos = 0;		
	/*本頁的結束記錄索引*/
	private long endPos = 0;
	
	private ArrayList<Book> arrayDis = new ArrayList<Book>();
	
	private ProcessService processService;
	
	private PageService pageService;
	
	private SessionBean sessionBean;
		
	private BookLoadDao bookLoadDao;
    
	public void setProcessService(ProcessService processService) {
		this.processService = processService;
	}
	public void setPageService(PageService pageService) {
		this.pageService = pageService;
	}
	public void setSessionBean(SessionBean sessionBean) {
		this.sessionBean = sessionBean;
	}
	public void setBookLoadDao(BookLoadDao bookLoadDao) {
		this.bookLoadDao = bookLoadDao;
	}
	/**
	* Function:  execute
	* Description:  對內存中的結果鏈表進行處理,獲得分頁工具欄,以便顯示
	* Calls:  processService.startMultithread(),pageService:setCurrentPageNo(),
	*         setPageCount(),getCurrentPageEndRecord(),setLastPage(),getPageToolBar()
	* Called By:  no
	* @param mapping as ActionMapping,form as ActionForm request as HttpServletRequest,response as HttpServletResponse
	* @return ActionForward
	* @throws no
	*/
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		/*取得當前頁數參數*/
		String currPageStr = request.getParameter("page");
		/*取得排序方式參數*/
		String rankKind = request.getParameter("rankkind");
		if(null != rankKind&&!"".equals(rankKind))
			this.sessionBean.setRankKind(rankKind);
		/*本頁開始時間*/
		long currpageStartTime = System.currentTimeMillis();

		/*設置當前頁*/
		if (currPageStr != null && !currPageStr.equals("")) {			
			currPage = Integer.parseInt(currPageStr);
		}else {
			// 如果不存在 傳入的參數 則置為第一頁
			currPage = 1;
		}
		
		/*不是從數據庫中檢索出的數據的時候*/
        if(this.sessionBean.isFromDatabase() == false){
			/*如果不是第一頁,則要判斷結果鏈表中的數據是否夠下一頁顯示,如果不夠,則去源網站抽取下頁的內容*/
	        if(currPage!=1){
	        	if((this.sessionBean.getBookListSize() - (currPage * 10)) < 10&&this.sessionBean.getBookListSize()>(currPage - 1)*10){
	        		
		        	HashMap<String,String> tempMap = this.sessionBean.getNextUrl();
	
		            if(null != tempMap){
		                this.sessionBean.setHasupdate(true);
		                this.processService.startMultithread(tempMap, sessionBean);
		            }
	        	}else if(this.sessionBean.getBookListSize()<=(currPage - 1)*10){
	        		this.sessionBean.setHasupdate(true);
	        		
	        		do{
	        			if(this.sessionBean.getBookListSize() > (currPage-1) * 10
	        			   ||System.currentTimeMillis() - currpageStartTime > 60000)
	        				break;
	        			
			        	HashMap<String,String> tempMap = this.sessionBean.getNextUrl();
			        	
			            if(null != tempMap){    
			                this.processService.startMultithread(tempMap, sessionBean);
			                
			            }else
			            	Thread.currentThread().sleep(2000);
			            
	        		}while(true);
	        	    
	        	}
	        }
	        /*如果結果鏈表中的數據不夠當前頁顯示,則讓主線程sleep 100毫秒,
	         *直到夠顯示本頁,如果超過60秒中還不夠,則中止循環*/
	        while((this.sessionBean.getBookListSize() < currPage * 10)){
			    Thread.currentThread().sleep(500);
				if (System.currentTimeMillis() - currpageStartTime > 30000) {
				    break;
			    }
	        }
			// 取得總記錄數
			//totalRecords = this.sessionBean.getBookListSize();
		    totalRecords = this.sessionBean.getRecordNum();
	    /*如果是從數據庫檢索的結果,則去取當前頁的記錄*/    
        }else{
        	if(!"advanced".equals(this.sessionBean.getSearchKind())){
				String temKeyword = null;
				if(this.sessionBean.getKeyword().indexOf("/")!= -1)
					temKeyword = this.sessionBean.getKeyword().substring(0, this.sessionBean.getKeyword().indexOf("/"));
				else 
					temKeyword = this.sessionBean.getKeyword();
				/*從數據庫中取出當前頁的記錄*/
				this.arrayDis = this.bookLoadDao.loadBook(temKeyword,this.sessionBean.getSearchKind(), currPage,this.sessionBean.getRankKind());
        	}else 
        		this.arrayDis = this.bookLoadDao.loadAdvancedBook(this.sessionBean.getKeyword(), currPage,this.sessionBean.getRankKind());
			// 取得總記錄數
		    totalRecords = this.sessionBean.getRecordNum();
        }
	    System.out.println(">>"+totalRecords);
		/*算出最大頁數*/
		long pageCountIndex=0;
		
		if(totalRecords==0){
			pageCountIndex=1;
		}else{
			if(totalRecords%10!=0){
			    pageCountIndex =totalRecords/10+1; 
			}else{
				pageCountIndex=totalRecords/10;
			}  
		}

		/*調用頁數處理類成員函數,設置當前頁數*/
		this.pageService.setCurrentPageNo(currPage);
		/*調用頁數處理類成員函數,設置總共頁數*/
		this.pageService.setPageCount(pageCountIndex);

		/*每一頁的起始記錄索引*/
		startPos = this.pageService.getCurrentPageStartRecord();
		/*每一頁結束記錄索引的設置*/ 
		if(this.sessionBean.getBookListSize()>0){
			if (this.pageService.getCurrentPageEndRecord() >= (totalRecords - 1)
				||this.sessionBean.getBookListSize()<this.pageService.getCurrentPageEndRecord()) {
				
				this.pageService.setLastPage(true);
				endPos = this.sessionBean.getBookListSize() - 1;
			}else {
				endPos = this.pageService.getCurrentPageEndRecord();
			}
		}else{
			if (this.pageService.getCurrentPageEndRecord() >= (totalRecords - 1)) {
					
					this.pageService.setLastPage(true);
					endPos = this.sessionBean.getBookListSize() - 1;
				}else {
					endPos = this.pageService.getCurrentPageEndRecord();
				}
		}
        
		if(this.sessionBean.isFromDatabase() == false&&startPos<endPos){
			/*從靜態結果鏈中取出當前頁要顯示的記錄*/
			arrayDis = this.sessionBean.gettempList((int)startPos, (int)endPos);
		}	
//		for(int k = 0;k<arrayDis.size();k++){
//			Book temBook = arrayDis.get(k);
//			System.out.println(temBook.getBookAuthor() + ">>" + temBook.getBookFixPrice() + ">>"
//					          + temBook.getBookImage() + ">>" + temBook.getBookISBN() + ">>"
//					          + temBook.getBookName() + ">>" + temBook.getBookProspectus() + ">>"
//					          + temBook.getBookPublisher() + ">>" + temBook.getBookPublishTime());
//		}
		/*取得分頁工具欄*/
		String pagetool = this.pageService.getPageToolBar();
		/*如果有爬取線程在執行則去啟動添加數據線程*/
//        if(!this.sessionBean.isThreadShutDown()){
//        	
//        	new BookSaveThread(this.sessionBean, this.bookSaveDao, this.dailySaveDao).start();
//        }
		
		String temKeyword = "";
		if("advanced".equals(this.sessionBean.getSearchKind())){
			if(this.sessionBean.getKeyword().indexOf("null") != -1){
				temKeyword = this.sessionBean.getKeyword();
				temKeyword = temKeyword.replace("null+", "");
			    temKeyword = temKeyword.replace("+null", "");
			    temKeyword = temKeyword.replace("%20", "+");
			}else temKeyword = this.sessionBean.getKeyword().replace("%20", "+");
		}else{
			StringTokenizer st = new StringTokenizer(this.sessionBean.getKeyword(), "/");
			while(st.hasMoreElements()){
				temKeyword = st.nextToken();
				break;
			}	
		}
		if(this.currPage == 1){
			DecimalFormat df=(DecimalFormat)DecimalFormat.getInstance();
			df.setMaximumFractionDigits(2);
			String endTime = df.format((System.currentTimeMillis() - (Long)request.getSession().getAttribute("beginTime"))/1000.0);
            request.getSession().setAttribute("endTime", endTime);
			
		}
		request.setAttribute("currPage", currPage);
		request.setAttribute("rankKind", this.sessionBean.getRankKind());
		request.setAttribute("isFromDatabase", this.sessionBean.isFromDatabase());
        request.setAttribute("keyword",temKeyword);
        request.setAttribute("splitKeyword", this.sessionBean.getKeyword());
        request.setAttribute("searchKind", this.sessionBean.getSearchKind());
        request.setAttribute("recordNum", this.sessionBean.getRecordNum());
		request.setAttribute("listinfo", arrayDis);
		request.setAttribute("pagetool", pagetool);
        /*轉向結果顯示頁面*/
	    return mapping.findForward("display");
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91最新地址在线播放| 免费高清视频精品| 97久久精品人人爽人人爽蜜臀| 久久久国产一区二区三区四区小说| 国产在线精品一区二区夜色| 337p粉嫩大胆噜噜噜噜噜91av| 久久se这里有精品| 久久这里只有精品视频网| 大白屁股一区二区视频| 国产精品第一页第二页第三页| 91亚洲永久精品| 亚洲成人免费在线| 日韩欧美激情四射| 懂色一区二区三区免费观看| 综合久久给合久久狠狠狠97色| 在线观看视频一区二区欧美日韩| 天天综合网 天天综合色| 精品国产三级a在线观看| 成人午夜av影视| 亚洲高清久久久| 久久久激情视频| 精品视频123区在线观看| 精久久久久久久久久久| 中文字幕一区二区三区色视频| 在线日韩一区二区| 韩国女主播成人在线| 日韩一区欧美一区| 日韩欧美一级片| 99在线精品视频| 蜜桃av一区二区| 亚洲欧美视频在线观看视频| 日韩一区二区精品在线观看| 成人毛片在线观看| 午夜欧美大尺度福利影院在线看| 国产亚洲一二三区| 欧美性xxxxxxxx| 懂色av一区二区三区免费观看 | 日韩欧美中文字幕一区| 成人自拍视频在线观看| 午夜激情久久久| 国产精品午夜电影| 日韩一级高清毛片| 在线观看视频一区二区| 国产精品一区二区果冻传媒| 亚洲一区二区四区蜜桃| 欧美激情一区二区三区全黄| 日韩一区二区三区免费看| av资源站一区| 高清不卡在线观看av| 免费精品视频在线| 亚洲成人免费在线观看| 国产精品传媒在线| 国产亚洲1区2区3区| 91精品福利在线一区二区三区| 99国产精品99久久久久久| 国产在线精品不卡| 蜜臀a∨国产成人精品| 亚洲图片欧美视频| 1024成人网色www| 久久久亚洲精品一区二区三区 | 中文字幕一区二区三区av| 精品国产乱码久久久久久久| 欧美电影在线免费观看| 欧美午夜一区二区三区| 99re亚洲国产精品| 91一区二区三区在线播放| 成人福利在线看| 成人精品视频一区二区三区尤物| 久久疯狂做爰流白浆xx| 蜜臀av性久久久久蜜臀av麻豆| 日韩黄色免费网站| 亚洲成人www| 午夜a成v人精品| 亚洲一区二区三区国产| 亚洲永久精品国产| 一区二区三区国产精华| 亚洲人成精品久久久久| 亚洲免费资源在线播放| 一区二区三区不卡视频| 亚洲男人的天堂av| 亚洲综合小说图片| 天天影视涩香欲综合网| 午夜av区久久| 老司机精品视频一区二区三区| 美女视频一区在线观看| 激情成人综合网| 国产精品91xxx| 成人免费视频一区| av一二三不卡影片| 欧美怡红院视频| 欧美日韩国产美女| 精品久久久久久久久久久久久久久久久| 日韩视频在线永久播放| 久久久不卡网国产精品一区| 欧美国产乱子伦| 亚洲天堂av老司机| 亚洲国产视频一区二区| 免费观看一级特黄欧美大片| 国产一区二区毛片| aaa欧美色吧激情视频| 欧美日韩一区二区三区高清| 6080国产精品一区二区| 精品va天堂亚洲国产| 国产精品视频在线看| 亚洲人吸女人奶水| 免费高清在线一区| 成人午夜在线免费| 欧美色精品天天在线观看视频| 91精品婷婷国产综合久久| 精品999久久久| 最新中文字幕一区二区三区| 亚洲成人在线网站| 国产成人综合在线| 欧美日韩在线一区二区| 精品奇米国产一区二区三区| 国产精品电影一区二区三区| 日韩精品国产欧美| 粉嫩aⅴ一区二区三区四区五区 | 五月天丁香久久| 国产精品18久久久久久久久久久久| 91在线你懂得| 欧美一级日韩一级| 亚洲欧洲一区二区三区| 奇米在线7777在线精品| 不卡视频一二三四| 精品国精品国产尤物美女| 亚洲天堂网中文字| 国产精选一区二区三区| 欧美三级视频在线播放| 国产午夜亚洲精品理论片色戒 | 成人激情小说网站| 欧美日韩一区二区电影| 国产欧美1区2区3区| 日韩av中文字幕一区二区三区| av一区二区三区四区| 日韩视频免费直播| 一区二区三区中文在线| 国产成人免费在线| 欧美一级二级三级乱码| 亚洲一区二三区| 99免费精品视频| 国产午夜亚洲精品午夜鲁丝片| 天天综合网天天综合色| 色偷偷88欧美精品久久久| 国产日韩欧美a| 久久黄色级2电影| 欧美日韩国产综合一区二区三区| 国产精品福利av| 国产69精品久久久久毛片| 欧美一级日韩不卡播放免费| 又紧又大又爽精品一区二区| 成人av资源站| 国产色爱av资源综合区| 久久国产夜色精品鲁鲁99| 欧美无乱码久久久免费午夜一区 | 亚洲日本丝袜连裤袜办公室| 国产成人小视频| 久久精品一级爱片| 国产一区视频导航| 欧美mv和日韩mv国产网站| 日本aⅴ精品一区二区三区| 欧美影视一区在线| 亚洲成人黄色影院| 欧美日韩午夜在线视频| 亚洲国产成人高清精品| 91国内精品野花午夜精品| 一区二区三区四区av| 色综合色狠狠综合色| 亚洲欧美韩国综合色| 色悠久久久久综合欧美99| 亚洲激情在线播放| 在线视频观看一区| 香蕉久久夜色精品国产使用方法 | 日韩欧美一区在线| 青青草97国产精品免费观看 | 亚洲日本中文字幕区| 色一情一乱一乱一91av| 亚洲美女区一区| 欧美日韩一区二区电影| 日韩**一区毛片| 精品国产一区二区三区av性色| 国产美女视频一区| 日本一区免费视频| 色婷婷av一区二区三区大白胸| 亚洲欧洲精品一区二区三区不卡| 色屁屁一区二区| 日韩**一区毛片| 久久免费看少妇高潮| 99re亚洲国产精品| 性欧美疯狂xxxxbbbb| 久久午夜电影网| av在线免费不卡| 日韩电影网1区2区| 久久久久青草大香线综合精品| 99久久久久久| 天堂资源在线中文精品| 欧美精品一区二| 99久久精品一区二区| 婷婷六月综合网| 久久久精品黄色|