小脚本实现的分页实例代码(JSP)

来源:互联网 发布:osx解压软件 编辑:程序博客网 时间:2024/06/11 10:53
1:首先创建数据库链接类,我的博客前面有源码
2:创建封装你要分页的那个数据库表的Bean
3:封装实现分页功能的功能Bean 具体代码见下:
import java.util.ArrayList;import java.sql.*;public class PageBean {    private int curPage = 1; //当前是第几页    private int maxPage; //一共有多少页    private int maxRowCount; //一共有多少行    public int rowsPerPage = 10; //每页多少行    Connection conn;    public ArrayList data;    public PageBean() throws Exception {        this.setPageBean();    }    public int getCurPage() {        return curPage;    }    public int getMaxPage() {        return maxPage;    }    public int getMaxRowCount() {        return maxRowCount;    }    public int getRowsPerPage() {        return rowsPerPage;    }    public void setCurPage(int curPage) {        this.curPage = curPage;    }    public void setMaxPage(int maxPage) {        this.maxPage = maxPage;    }    public void setMaxRowCount(int maxRowCount) {        this.maxRowCount = maxRowCount;    }    public void setRowsPerPage(int rowsPerPage) {        this.rowsPerPage = rowsPerPage;    }    //得到要显示于本页的数据    public PageBean getResult(String page) throws Exception {        try {            PageBean pageBean = new PageBean();            ArrayList list = new ArrayList();            int pageNum = Integer.parseInt(page);            Statement stmt = conn.createStatement();            String strSql = "select top " + pageNum * pageBean.rowsPerPage +                            " * from employee";//改成你的表            ResultSet rset = stmt.executeQuery(strSql);            int i = 0;            while (rset.next()) {                    //这里要和表的字段对应起来!!!!                    Employee item=new Employee();                    item.setEmp_id(rset.getString("emp_id"));                    item.setFname(rset.getString("fname"));                    item.setMinit(rset.getString("minit"));                    item.setLname(rset.getString("lname"));                    item.setJob_id(rset.getInt("job_id"));                    item.setJob_lvl(rset.getInt("job_lvl"));                    item.setPub_id(rset.getString("pub_id"));                    item.setHire_date(rset.getString("hire_date"));                    list.add(item);                i++;            }            ConnectionManager.closeResultSet(rset);            ConnectionManager.closeStatement(stmt);            pageBean.setCurPage(pageNum);            pageBean.data = list;            return pageBean;        } catch (Exception e) {            e.printStackTrace();            throw e;        }    }    //获取总行数    public int getAvailableCount() throws Exception {        int ret = 0;        conn = ConnectionManager.getConnection();        Statement stmt = conn.createStatement();        String strSql = "select * from employee";//改成你的表        ResultSet rset = stmt.executeQuery(strSql);        while (rset.next()) {            ret++;        }        return ret;    }    //初始化时对PageBean进行设置    public void setPageBean() throws Exception {        //得到总行数        this.setMaxRowCount(this.getAvailableCount());        if (this.maxRowCount % this.rowsPerPage == 0) { //根据总行数计算总页数            this.maxPage = this.maxRowCount / this.rowsPerPage;        } else {            this.maxPage = this.maxRowCount / this.rowsPerPage + 1;        }    }}

4:建立中间中转的Servlet  PageServlet: 代码如下:
public void init() throws ServletException {  }  //Process the HTTP Get request  public void doGet(HttpServletRequest request, HttpServletResponse response) throws      ServletException, IOException {    try      {            PageBean page1=new PageBean();            PageBean page2=page1.getResult((String)request.getParameter("jumpPage"));              //把PageBean保存到request对象中。注意:viewpage.jsp里jsp:useBean id必须为才可以"page2"!!!              request.setAttribute("page2",page2);      }      catch(Exception e)      {              e.printStackTrace();      }          /**       *把视图派发到viewForum.jsp       */      javax.servlet.RequestDispatcher dis=request.getRequestDispatcher("viewpage.jsp");      dis.forward(request,response); }

5:现在建立现实JSP页面 viewpage.jsp:
<%@ page contentType="text/html; charset=GBK" import="java.util.*,pagetest.Employee" %><jsp:useBean id="page2" scope="request" class="pagetest.PageBean"/><script language="JavaScript" type="text/JavaScript">function Jumping(){  document.PageForm.submit();  return ;}function gotoPage(pagenum){  document.PageForm.jumpPage.value = pagenum;  document.PageForm.submit();  return ;}</script><html><head><title>分页功能</title></head><body bgcolor="#ffffff"><table border="1"><%String s=String.valueOf(page2.getCurPage());try{ArrayList list=page2.getResult(s).data;for(int i=0;i<list.size();i++){  Employee emp=(Employee)list.get(i);%><tr><td><%=emp.getEmp_id()%></td><td><%=emp.getFname()%></td><td><%=emp.getHire_date()%></td><td><%=emp.getJob_id()%></td><td><%=emp.getJob_lvl()%></td><td><%=emp.getLname()%></td><td><%=emp.getMinit()%></td><td><%=emp.getPub_id()%></td></tr><% }}catch(Exception e){}%></table><%if(page2.getMaxPage()!=1){ %><form name="PageForm" action="pageservlet" method="post">每页<%=page2.rowsPerPage%>行共<%=page2.getMaxRowCount()%>行第<%=page2.getCurPage()%>页共<%=page2.getMaxPage()%>页<BR><%  if (page2.getCurPage() == 1) {    out.print(" 首页 上一页");  }  else {%><a HREF="javascript:gotoPage(1)">首页</A><a HREF="javascript:gotoPage(<%=page2.getCurPage()-1%>)">上一页</A><%}%><%  if (page2.getCurPage() == page2.getMaxPage()) {    out.print("下一页 尾页");  }  else {%><a HREF="javascript:gotoPage(<%=page2.getCurPage()+1%>)">下一页</A><a HREF="javascript:gotoPage(<%=page2.getMaxPage()%>)">尾页</A><%}%>转到第<SELECT name="jumpPage" onchange="Jumping()"><%  for (int i = 1; i <= page2.getMaxPage(); i++) {    if (i == page2.getCurPage()) {%>  <OPTION selected value="<%=i%>"><%=i%> </OPTION><%} else {%>  <OPTION value="<%=i%>"><%=i%> </OPTION><%}  }%></SELECT>页</form><%}%></body></html>


0 0
原创粉丝点击