JSP网站开发基础总结《八》

JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页。就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一下。

 1、分页数据获取方法:

  获得数据总数:

public int getSize() {int num = 0;Connection conn = null;Statement st = null;ResultSet rs = null;conn = DBO.getConnection();String sql = "select count(*) from students";try {st = conn.createStatement();rs = st.executeQuery(sql);rs.next();num=rs.getInt(1);} catch (SQLException e) {e.printStackTrace();}return num;}

  计算一共分几页:

public int getPageCnt(int pageRec) {int page = 0;int size = this.getSize();if(size>0){page = (size-1)/pageRec+1;}return page;}

  获得在该页需要显示的数据:

public List<Student> getSome(int pageNo, int pageRec) {List<Student> list = new ArrayList<Student>();Connection conn = null;Statement st = null;ResultSet rs = null;try {conn=DBO.getConnection();String sql="select * from students limit ";int num = this.getSize()-pageNo*pageRec;int a = this.getSize()-(pageNo-1)*pageRec;if(num<0){num=0;}sql+=(num)+","+ a;st=conn.createStatement();rs=st.executeQuery(sql);while(rs.next()){Student stu = new Student();stu.setId(rs.getInt("id"));stu.setName(rs.getString("username"));stu.setSex(rs.getInt("sex"));stu.setYear(rs.getInt("age"));stu.setFrom(rs.getString("form"));stu.setSchool(rs.getString("school"));list.add(stu);}} catch (SQLException e) {e.printStackTrace();}finally{DBO.close(rs, st, conn);}return list;}

 2、实现页面效果代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%><%@page import="com.mysql.jsp.student.Student"%><%@page import="com.mysql.jsp.sever.StudentMaImp"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head><base href="<%=basePath%>"><title>百度分页效果</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"> </head><body> <%int pageNo=1;if(request.getParameter("p") !=null){pageNo=Integer.parseInt(request.getParameter("p"));}int pageRec=5;//每页显示的数据条数 StudentMaImp smi = new StudentMaImp();List<Student> list = smi.getSome(pageNo, pageRec);pageCnt=smi.getPageCnt(pageRec);//得到总页数 %><center><h1>百度分页效果</h1><hr/><table border="1" width="80%"><TR><td>编号</td><TD>ID</TD><td>姓名</td><td>性别</td><td>年龄</td><td>家乡</td><td>学校</td></TR><%if(list.size()!=0 && pageNo>1 ){for(int i=list.size()-1,j=1; i>=0; i–,j++){Student student = list.get(i);%><tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr><%}}else{for(int i=list.size()-1,j=1; i>=0&&list.size()!=0; i–,j++){Student student = list.get(i);%><tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr><%}}%><tr><td colspan="7" align="center"><% if(pageNo!=1){ %><a href="All_BaiDu.jsp?p=1"><span>首页</span></a><%} %><% if(pageNo>1){ %><a href="All_BaiDu.jsp?p=<%=pageNo-1 %>"><span>上一页</span></a><%} %><%for(int i=1;i<=pageCnt;i++){if(i!=pageNo){%><a href="All_BaiDu.jsp?p=<%=i %>"><span><%=i%></span></a><%}else{ %><span><%=i%></span></a><%}}%><% if(pageNo!=pageCnt){ %><a href="All_BaiDu.jsp?p=<%=pageNo+1 %>"><span>下一页</span></a><%} %><% if(pageNo!=pageCnt){ %><a href="All_BaiDu.jsp?p=<%=pageCnt %>"><span>尾页</span></a><%} %></td></tr></table></center> </body></html>

  效果图:

  

  好了,,到这里我们最简单的百度分页效果就实现了,具体的美化工作,就需要我们的css+div+javascript知识了,大家可以学习一下,对做网页帮助很大。

  关于JSP的基础知识总结,到今天就为大家总结完毕,共计8篇博客,由于文字描述的局限,所以大家有什么疑问可以留言,我会一一为大家解答。

肯承认错误则错已改了一半

JSP网站开发基础总结《八》

相关文章:

你感兴趣的文章:

标签云: