servlet分頁程式碼範例

來源:互聯網
上載者:User

 本文介紹了servlet分頁代碼實現,採用Oracle資料庫,擷取SCOTT使用者EMP表中的資料,分頁實現步驟看下面代碼

1.首先建立一個對象 UserData,用以儲存從資料庫中擷取的資料。  代碼如下:package com.tool; import java.math.BigDecimal;import java.util.Date; /** * Created by lx_sunwei on 14-1-6. */public class UserData {     /**     * EMP表中的資料屬性     */    private String ename;    private String job;    private BigDecimal empno;    private BigDecimal mgr;    private Date hireDate;    private BigDecimal sal;    private BigDecimal comm;    private BigDecimal deptno;     public BigDecimal getEmpno() {        return empno;    }     public void setEmpno(BigDecimal empno) {        this.empno = empno;    }     public BigDecimal getMgr() {        return mgr;    }     public void setMgr(BigDecimal mgr) {        this.mgr = mgr;    }     public Date getHireDate() {        return hireDate;    }     public void setHireDate(Date hireDate) {        this.hireDate = hireDate;    }     public BigDecimal getSal() {        return sal;    }     public void setSal(BigDecimal sal) {        this.sal = sal;    }     public BigDecimal getComm() {        return comm;    }     public void setComm(BigDecimal comm) {        this.comm = comm;    }     public BigDecimal getDeptno() {        return deptno;    }     public void setDeptno(BigDecimal deptno) {        this.deptno = deptno;    }     public String getEname() {        return ename;    }     public void setEname(String ename) {        this.ename = ename;    }     public String getJob() {        return job;    }     public void setJob(String job) {        this.job = job;    }}   2.建立一個 DBHelper 對象用以與資料庫進行互動 代碼如下:package com.dao; import com.tool.UserData; import java.math.BigDecimal;import java.sql.*;import java.util.*;import java.util.Date; /** * Created by lx_sunwei on 14-1-6. */public class DBHelper {     Connection conn;  //資料庫連接對象    PreparedStatement pt;  //SQL語句預先處理對象    ResultSet rs;  //結果集對象     public  DBHelper(){        try {            Class.forName("oracle.jdbc.driver.OracleDriver");  //裝載驅動        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }     /**     * 擷取當前頁的資料     * @param curPage     * @param rowsPerPage     * @return     */    public List<UserData> getData(int curPage, int rowsPerPage) {         List<UserData> dataList = new ArrayList<>();        String url = "jdbc:oracle:thin:@localhost:1521:orcl";        try {            conn = DriverManager.getConnection(url,"scott","tiger");            String sql = "select * from emp where rownum <= ((? - 1) * "+rowsPerPage+" + "+rowsPerPage+") minus " +                    " select * from emp where rownum <= (? - 1) * "+rowsPerPage+" ";            pt = conn.prepareStatement(sql);            pt.setInt(1,curPage);            pt.setInt(2,curPage);            rs = pt.executeQuery();            while (rs.next()){                /**                 * 從結果集中取得資料                 */                UserData userData = new UserData();                BigDecimal empno = rs.getBigDecimal("empno");                String ename = rs.getString("ename");                String job = rs.getString("job");                BigDecimal mgr = rs.getBigDecimal("mgr");                Date hireDate = rs.getDate("hiredate");                BigDecimal sal = rs.getBigDecimal("sal");                BigDecimal comm = rs.getBigDecimal("comm");                BigDecimal deptno = rs.getBigDecimal("deptno");                /**                 * 設定對象屬性                 */                userData.setEmpno(empno);                userData.setEname(ename);                userData.setJob(job);                userData.setMgr(mgr);                userData.setHireDate(hireDate);                userData.setSal(sal);                userData.setComm(comm);                userData.setDeptno(deptno);                dataList.add(userData);  //把對象添加集合中            }            rs.close();            pt.close();            conn.close();        } catch (SQLException e) {            e.printStackTrace();        }        return dataList;    }     /**     * 返回總頁數     * @return     */    public int getMaxPage(int rowsPerPage) {        int maxPage;        int maxRowCount = 0;        String url = "jdbc:oracle:thin:@localhost:1521:orcl";        try {            conn = DriverManager.getConnection(url,"scott","tiger");  //建立資料庫連接            String sql = "select count(*) from emp";            pt = conn.prepareStatement(sql);            rs = pt.executeQuery();            if (rs.next()){                maxRowCount = rs.getInt(1);  //總行數            }        } catch (SQLException e) {            e.printStackTrace();        }        maxPage = (maxRowCount + rowsPerPage - 1) / rowsPerPage;  //總頁數        return maxPage;    }}   3.建立 Servlet 對顯示頁面進行控制  代碼如下:package com.servlet; import com.dao.DBHelper;import com.tool.UserData; import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.*; /** * Created by lx_sunwei on 14-1-6. */public class Servlet extends HttpServlet {     public int rowsPerPage;  //每頁顯示的行數    public int curPage;  //當前頁頁碼    public int maxPage;  //總共頁數    DBHelper db = new DBHelper();    public Servlet(){        rowsPerPage = 5;    }     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        String curPage1 = request.getParameter("page");  //擷取當前頁頁碼        if (curPage1 == null){            curPage = 1;            request.setAttribute("curPage",curPage);  //設定curPage對象        }else {            curPage = Integer.parseInt(curPage1);            if (curPage < 1){                curPage = 1;            }            request.setAttribute("curPage",curPage);        }         List<UserData> dataList;        dataList = db.getData(curPage,rowsPerPage);  //擷取當前頁的資料        maxPage = db.getMaxPage(rowsPerPage);  //擷取總頁數        request.setAttribute("dataList",dataList);        request.setAttribute("maxPage", maxPage);         RequestDispatcher rd = request.getRequestDispatcher("pagemain.jsp");  //將請求轉寄到pagemain.jsp頁面        rd.forward(request,response);    }     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doPost(request,response);    }}   4.建立 JSP 頁面,顯示資料。 代碼如下:<%@ page import="java.util.List" %><%@ page import="com.tool.UserData" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>servlet資料分頁</title>    <link rel="stylesheet" type="text/css" href="css.css"></head><body><div style="margin-top: 15%; margin-left: 25%">    <table>        <caption>SCOTT使用者,EMP表中的資料</caption>        <%! int curPage,maxPage; %>        <% curPage =Integer.parseInt(request.getAttribute("curPage").toString()); %> <!--取得當前頁-->        <% maxPage =Integer.parseInt((String)request.getAttribute("maxPage").toString()); %> <!--取得總頁數-->        <%if (request.getAttribute("dataList") == null){        %>        <tr>            <td colspan="8">沒有資料</td>        </tr>        <%        }else {        %>        <tr>            <!--表頭-->            <th>EMPNO</th>            <th>ENAME</th>            <th>JOB</th>            <th>MGR</th>            <th>HIREDATE</th>            <th>SAL</th>            <th>COMM</th>            <th>DEPTNO</th>        </tr>        <%            List list = (List) request.getAttribute("dataList");            for (Object aList : list) {                UserData userData = (UserData) aList;        %>        <tr>            <!--取得表中資料-->            <td><%= userData.getEmpno() %></td>            <td><%= userData.getEname() %></td>            <td><%= userData.getJob() %></td>            <td><%= userData.getMgr() %></td>            <td><%= userData.getHireDate() %></td>            <td><%= userData.getSal() %></td>            <td><%= userData.getComm() %></td>            <td><%= userData.getDeptno() %></td>        </tr>        <%                }            }        %>    </table></div><div style="margin-top: 8%; margin-left: 29%">    第<%= curPage %>頁,共<%= maxPage %>頁      <%if (curPage > 1){    %>    <a href="Servlet?page=1">首頁</a>    <a href="Servlet?page=<%=curPage - 1%>">上一頁</a>    <%    }else {    %>    首頁 上一頁    <%        }%>    <%if (curPage < maxPage){    %>      <a href="Servlet?page=<%=curPage + 1%>">下一頁</a>    <a href="Servlet?page=<%=maxPage %>">尾頁</a>    <%    }else {    %>    下一頁 尾頁    <%        }%>      轉至第 <form name="form1" action="Servlet" method="get">    <label>        <select name="page" onchange="document.form1.submit()">            <%for ( int i = 1; i <= maxPage; i++){                if (i == curPage){            %>            <!--當前頁頁碼預設選中-->            <option selected value="<%= i%>"><%= i %></option>            <%            }else {            %>            <option value="<%= i %>"><%= i %></option>            <%                    }                }%>        </select>    </label></form> 頁</div></body></html>  web.xml 中的設定檔為: 代碼如下:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"           version="3.0">     <servlet>        <servlet-name>Servlet</servlet-name>        <servlet-class>com.servlet.Servlet</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>Servlet</servlet-name>        <url-pattern>/Servlet</url-pattern>    </servlet-mapping> </web-app>   把項目部署到 Tomcat 伺服器上,輸入地址:http://localhost:8080/Servlet   這樣就可以看到效果 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.