程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> servlet分頁代碼示例

servlet分頁代碼示例

編輯:關於JSP

     本文介紹了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   這樣就可以看到效果  
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved