`
Java_大猫
  • 浏览: 173845 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Ajax分页--适合初学者学习

阅读更多
分页算法;
public class AjaxPage {
	//总记录数
	private int totalRows;
	//当前页
	private int currpage;
	//分页单位
	private int pagesize;
	//总页数
	private int totalPages;
	//每页数据的开始下标
	private int startRow;
	
	public AjaxPage(int totalRows,int currpage, int pagesize){
		this.totalRows =(totalRows);
		this.setCurrpage(currpage);
		this.setPagesize(pagesize);
	}
	
	
	public int getTotalRows() {
		return totalRows;
	}
	public void setTotalRows(int totalRows) {
		this.totalRows = totalRows;
	}
	public int getCurrpage() {
		return currpage;
	}
	public void setCurrpage(int currpage) {
		this.currpage = currpage;
	}
	public int getPagesize() {
		return pagesize;
	}
	public void setPagesize(int pagesize) {
		this.pagesize = pagesize;
	}
	public int getTotalPages() {
		//调用设置总页数方法
		this.setTotalPages();
		return totalPages;
	}
	//设置总页数
	public void setTotalPages() {
		
		this.totalPages = this.getTotalRows()/this.getPagesize();
	}
	public int getStartRow() {
		//调用设置行号方法
		this.setStartRow();
		return startRow;
	}
	//设置每页的起始行号
	public void setStartRow(){
		this.startRow = (this.getCurrpage()-1)*this.getPagesize();
	}
	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}

JSP页面采用ajax解析XML
<script type="text/javascript">
	var XMLHttpReq;
    function createXMLHttpRequest() {
		if(window.XMLHttpRequest) { //Mozilla 浏览器
			XMLHttpReq = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) { // IE浏览器
			try {
				XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
	}
	//主调函数,以当前页作为参数
	function AjaxTest(currpage){
		createXMLHttpRequest();
		XMLHttpReq.open("post","AjaxServlet.do?currpage="+currpage,true);
		XMLHttpReq.onreadystatechange= callback;
		XMLHttpReq.send(null);
		
	}
	//回调函数
		function callback(){
			if(XMLHttpReq.readyState!=4){
				//div.innerHTML = "<font color='red'>数据加载中...</font>"	;		
			}
			else{
				if(XMLHttpReq.status == 200){
					var xmlDOM = XMLHttpReq.responseXML; 
					parse(xmlDOM);
				}
			}
		}
		function parse(xmlDOM){
			var person=xmlDOM.getElementsByTagName("person");
			var page = xmlDOM.getElementsByTagName("page")[0];
			var currpage = page.getElementsByTagName("currpage")[0].firstChild.data;
			var pagecount = page.getElementsByTagName("pagecount")[0].firstChild.data;
			var prevpagehtml; 
			var nextpagehtml; 
		if((currpage-0)<=1){
				prevpagehtml = "<a>上一页</a>";
			}else{
				prevpagehtml = "<a onclick='AjaxTest("+(currpage-1)+");' href='javascript:void(0);'>上一页</a>";
			}
			if((currpage-0)<(pagecount-0)){
				nextpagehtml = "<a onclick='AjaxTest("+(currpage-0+1)+");' href='javascript:void(0);'>下一页</a>";
			}else{
				nextpagehtml = "<a>下一页</a>";
			}

			var html = "<table><tr><td width='80'>编号</td><td width='100'>姓名</td><td width='80'>年龄</td><td width='80'>班级</td></tr>";
  			
  			for(i=0;i<person.length;i++){
  					html = html+ "<tr><td>"+person[i].getElementsByTagName("sid")[0].firstChild.data+"</td><td>"+person[i].getElementsByTagName("sname")[0].firstChild.data+"</td><td>"+person[i].getElementsByTagName("sage")[0].firstChild.data+"</td><td>"+person[i].getElementsByTagName("sclass")[0].firstChild.data+"</td></tr>";
  			}
  			html = html + "<tr><td width='50'>"+prevpagehtml+"</td><td width='80'>当前第"+currpage+"页</td><td width='100'>共"+pagecount+"页</td><td width='80'>"+nextpagehtml+"</td></tr>";
  			html = html+"</table>";
  			document.getElementById("div").innerHTML=html;
		}
			
	</script>
  </head>
  
  <body onload="AjaxTest(1);">
 	 <div style="text-align: center">
 	 
	    <div id="div"> </div>
	    
    </div>

PS:虽然很古老,但是我个人觉得初学者 了解了解也是很有帮助的。

action内容:
public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		AjaxDao dao=new AjaxDaoImp();
		//当前页
		int currpage = Integer.parseInt(request.getParameter("currpage")==null?"1":request.getParameter("currpage"));
		//总的记录数
		int total =dao.getResultCount();
		int pagesize=1000;
		//Page类对象
		AjaxPage page=new AjaxPage(total, currpage, pagesize);
		//用于返回给前台页面的XML文档
		StringBuffer xmlDOM = new StringBuffer();
		//取出所有信息
//		System.out.println("开始1"+page.getCurrpage());
//		System.out.println("开始2"+(page.getCurrpage()-1));
//		
		System.out.println("开始3"+(page.getCurrpage()-1)*page.getPagesize());
System.out.println("当前第几页"+page.getCurrpage());
		List ajaxList=dao.findAll((page.getCurrpage()-1)*page.getPagesize(), page.getPagesize());
		//添加XML
		response.setContentType("text/xml; charset=UTF-8");
		response.setHeader("Cache-Control","no-cache");
		xmlDOM.append("<?xml version='1.0' encoding='UTF-8' standalone='no' ?>" );
		xmlDOM.append("<root>");
		//添加数据库查询出来的数据
		for(int i=0;i<ajaxList.size();i++){
			Pojo bean=(Pojo) ajaxList.get(i);
			xmlDOM.append("<person>");
			xmlDOM.append("<sid>"+bean.getSid()+"</sid>");
			xmlDOM.append("<sname>"+bean.getSname()+"</sname>");
			xmlDOM.append("<sage>"+bean.getSname()+"</sage>");
			xmlDOM.append("<sclass>"+bean.getSclass()+"</sclass>");
			xmlDOM.append("</person>");
		}
		//添加分页信息
		xmlDOM.append("<page>");
		xmlDOM.append("<currpage>"+page.getCurrpage()+"</currpage>");
		xmlDOM.append("<pagecount>"+page.getTotalPages()+"</pagecount>");
		xmlDOM.append("</page>");
		xmlDOM.append("</root>");
		//调用打印方法
		this.print(request, response, xmlDOM.toString());
	}
	private void print(HttpServletRequest request, HttpServletResponse response,String xmlDOM) throws IOException{
		response.setCharacterEncoding("gb2312");
		response.setContentType("text/xml");
		PrintWriter out = response.getWriter();
		out.print(xmlDOM);
		out.close();
	}

}


以上是一个 技术ajax的无刷新分页。希望对初学者有些帮助,在下也是个初学者,刚踏入工作不久,希望各位高手看到我的代码不要嘲讽。写法是参照网上的一个demo而写。
大家学习吧。
分享到:
评论

相关推荐

    Ajax分页-增删改查-Oracle数据库-默认Emp表

    在Java Web开发中,"Ajax分页-增删改查-Oracle数据库...这个项目是一个完整的Java Web学习案例,涵盖了从数据库操作到前端交互的多个层次,对于初学者来说,是一个很好的实践平台,可以帮助他们巩固和提升Web开发技能。

    Jquery Ajax分页(有实例)

    **jQuery AJAX分页技术详解** ...对于初学者,这个实例是学习和理解AJAX分页的宝贵资源,而对于经验丰富的开发者,它则提供了灵感和参考。在实践中不断探索和优化,将能创造出更多适应不同场景的分页解决方案。

    Ajax教程-帮助初学者更好的理解Ajax

    通过深入学习和实践Ajax,初学者可以提升网页开发技能,打造更加交互性和响应性的Web应用程序。同时,结合其他前端框架(如React、Vue或Angular),Ajax可以发挥更大的作用,为用户提供更优质的网络体验。

    ajax+.net小例子 ajax+C#示例 ajax+.net 示例 ajax分页

    功能基础,增,显,分页。适合初学者。 ajax+.net小例子 ajax+C#示例 ajax+.net 示例ajax+.net小例子 ajax+C#示例 ajax+.net 示例ajax+.net小例子 ajax+C#示例 ajax+.net 示例

    新手初学者的简单ajax分页

    总结,Ajax分页是Web开发中的常见功能,通过学习和实践,初学者可以轻松掌握这一技能,提升网页的交互性和性能。在实际项目中,可以结合前端框架如jQuery、Vue.js等进一步优化代码结构和用户体验。

    超强php分页打包 通用分页 万能分页 ajax分页 google分页

    在PHP开发中,分页是不可或缺的一个功能,特别是在处理大量数据时,为了提高用户体验和页面加载速度,分页显得尤为重要。本压缩包“超强php分页打包 通用分页 ...无论是初学者还是经验丰富的开发者,都可以从中受益。

    ajaxDEMO 适合ajax初学者

    本AjaxDEMO适合初学者学习,旨在提供一个基础的实践平台,帮助理解Ajax的工作原理及其在实际开发中的应用。** ### 1. Ajax基础知识 Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器端通信。当...

    ASPX自定义分页控件(适合初学者)

    对于初学者来说,理解并创建自定义分页控件是一项基础但重要的技能。 在ASP.NET中,我们通常使用ASP.NET内置的GridView、ListView等控件配合Paging属性来实现分页,但有时为了满足特定需求或优化性能,可能需要...

    Servlet+Jsp+Ajax分页增删改查

    使用Servlet+Jsp+JDBC实现增删改查,前台显示界面使用JavaScript、Ajax与后台交互进行登录验证,并对查询结果实现分页、局部刷新,以及复选框(全选、反选)操作,适合Web开发的初学者

    AJAX实现分页功能

    通过研究和学习这些代码,初学者可以深入理解如何结合AJAX和GridView来实现高效且用户友好的分页功能。 总的来说,AJAX实现的分页功能使得Web应用能够更加动态和响应式,提高了用户的浏览效率,降低了服务器的压力...

    ssh整合系统分页ajax

    对于初学者来说,研究这个示例可以帮助理解如何在实际项目中运用这些技术。 总的来说,SSH整合提供了强大的Web开发能力,分页和校验优化了用户体验和数据质量,而Ajax则让交互更加流畅。掌握这些知识点,对提升Java...

    Ajax分页小代码凯源代码

    Ajax分页小代码开源代码提供了实现这一功能的基础框架,非常适合初学者进行学习和实践。 在Ajax分页中,主要涉及以下几个核心概念和技术: 1. **Ajax(Asynchronous JavaScript and XML)**:Ajax并不是一种单一的...

    js+ajax动态分页.rar

    在这个"js+ajax动态分页.rar"压缩包中,包含了一个实现这一功能的实例,对于初学者来说非常有帮助,因为注释详尽,易于理解。 动态分页是网页设计中的一个重要组成部分,尤其是在数据量庞大的情况下,如新闻列表、...

    ajax、jquery各种很实用的分页写法

    在网页开发中,数据的展示往往需要分页处理,尤其是...对于初学者来说,这些基础知识足够构建起对分页的基本理解和应用。通过实践和深入学习,可以进一步优化分页性能,比如加入缓存机制、错误处理等,以提升用户体验。

    前端静态模板-黑灰分页-学生作业毕设实训素材.zip

    总的来说,这个压缩包为学习者提供了一个实践前端开发技能的实际项目,涵盖了前端开发的基本技术栈,适合初学者巩固理论知识并提升动手能力。通过分析和重构这个“黑灰分页”模板,可以深入理解前端开发的各个环节,...

    php中用ajax实现分页

    这些资源可以帮助开发者更深入地理解和应用Ajax分页技术,对于初学者和有经验的开发者来说都是有价值的参考材料。在实际项目中,可以根据具体需求对示例进行调整和优化,以适应不同的数据库结构和前端框架。

    掌握Ajax-初学者的帮手

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需...通过以上内容,初学者可以对Ajax有一个全面的认识,并逐步掌握其实现方式和应用场景。在实际项目中灵活运用Ajax,可以显著提升Web应用的性能和用户体验。

    tp小事例--对初学者有很好的帮助

    总结起来,这个学习资源主要是为了帮助初学者了解如何在ThinkPHP框架中实现AJAX分页功能,以及如何处理相关的前端交互。通过实际操作这些小实例,初学者可以更好地掌握ThinkPHP的基本架构和核心功能,从而提升自己的...

    ajax分页程序实例vs2005版

    这个压缩包文件中的"分页控件"可能包含了实现上述步骤的具体代码和资源,对于初学者和开发者来说,是一个很好的学习和参考素材。通过研究这些代码,你可以更好地理解Ajax分页的实现细节,提升你的Web开发技能。

    23款-分页-样式

    在IT行业中,分页是一种常见的用户界面设计技术,主要用于处理大量数据的展示,避免一次...无论是对于初学者还是经验丰富的开发者,这都是一个有价值的资源集合,可以帮助他们在项目中实现更加个性化和高效的分页功能。

Global site tag (gtag.js) - Google Analytics