Artikel ini menggunakan dua metode: (1) untuk menghitung jumlah total halaman. (2) Permintaan data halaman yang ditentukan untuk mencapai efek paging sederhana.
Ide: Pertama, Anda harus memberikan metode kueri pagination di objek DAO. Panggil metode ini di lapisan kontrol untuk menemukan data dari halaman yang ditentukan, dan menampilkan data halaman melalui EL Expressions dan JSTL di lapisan presentasi.
Izinkan saya menunjukkan kepada Anda rendering terlebih dahulu:
Off Topic: Tampilan Halaman ini diimplementasikan menggunakan ide desain "presentasi lapisan-data-database lapisan-datao". Jika Anda memiliki perbaikan, silakan usulkan dan pelajari dan buat kemajuan bersama. Tanpa basa -basi lagi, mulailah untuk memasukkan topik. Langkah -langkah terperinci adalah sebagai berikut:
1. Dao Layer-Database
Kelas JDBCUTILS digunakan untuk membuka dan menutup database, dan kode inti adalah sebagai berikut:
Impor java.sql.connection; impor java.sql.driverManager; impor java.sql.preparedstatement; impor java.sql.resultset; impor java.sql.sqlexception; kelas publik jdbcutils {private connection conn conn = nol; nol; /*** Connect ke database* @return*/public connection connect () {string user = "root"; string password = "1234"; string driverclass = "com.mysql.jdbc.driver"; string jdbcurl = "jdbc: mysql: // localhost: 3306/book"; try "jdbc: mysql: // localhost: 3306/book"; try "jdbc: mysql:/localhost: 3306/book"; try "jdbc: mysql:/localhost: 3306/book"; try "{crough DriverManager.getConnection (jdbcurl, user, password);} catch (exception e) {// TODO TODO yang dihasilkan secara otomatis Blocke.printstacktrace ();} return conn;}/*** Tutup database* @param conn* @param pstmt* @param resu*/public void close {public connmt* @param pstmt* @param resu*/public void close* @param conn* @param pstmt* @param resu resu*/public void close public close != null){try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch block}}if(pstmt != null){try {pstmt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(result != null) {try {result.close ();} catch (sqlexception e) {// todo Auto-generated catch blocke.printstacktrace ();}}}}Metode getPage () dan metode listUser () di kelas Userdao digunakan untuk menghitung jumlah total halaman dan meminta data dari halaman yang ditentukan masing -masing. Kode inti adalah sebagai berikut:
Impor java.sql.connection; impor java.sql.preparedstatement; impor java.sql.resultset; impor java.sql.sqlexception; impor java.util.arraylist; publing public.util. @return*/public int getPage(){int recordCount=0,t1=0,t2=0;PreparedStatement pstmt=null;ResultSet result=null;JDBCUtils jdbc=new JDBCUtils();Connection conn=jdbc.connect();String sql="select count(*) from books";try {PSTMT = Conn.PrepareStateMent (SQL); result = PSTMT.ExecuteQuery (); result.next (); RecordCount = result.getint (1); t1 = RecordCount%5; T2 = RecordCount/5;} Catch (Exception E) {// TODO TODO Auto-Generated Bloke BLOCKEKE () () {// TODO TODO Auto-Generated bloke bloke neutoerated bloke neutoerated bloke neutoerated auto-generated bloceKeKeKeKeKe.) {// TODO TODO GENERATED BLOCKEKE. Akhirnya {jdbc.close (conn, pstmt, result);} if (t1! = 0) {t2 = t2+1;} return t2;}/*** kueri data halaman yang ditentukan* @param pageno* @return*/list publik <user> listuser (int pageno) {pageno> non -nancure = nol = nol (list> listuser (int pageno) {pageno list -n. ArrayList <User> (); int pageSize = 5; int page = (pageno-1) * 5; jdbcutils jdbc = new jdbcutils (); koneksi conn = jdbc.connect (); string sql = "pilih * dari buku dengan batasan id?,?"; Coba {pscar = connemt = connement; halaman); pstmt.setint (2, halaman); result = pstmt.exeCuteQuery (); while (result.next ()) {user user = new user (); user.setid (result.getint (1)); User.setname (hasil. {// TODO AUTO-AUTO-ACROYATED BLOCKE.PRINTSTACKTRACE ();} akhirnya {jdbc.close (conn, pstmt, hasil);} daftar kembali;}}Kelas pengguna digunakan untuk menyimpan data kueri, dan kode inti adalah sebagai berikut:
Pengguna kelas publik {private int id; name string pribadi; nomor string pribadi; public int getId () {return id;} public void setId (int id) {this.id = id;} public string getName () {return name;} public void setName (string name) {this.name = name; {public string getNumber () {name public; nomor;}} 2. Lapisan kontrol
Kelas ListUser memanggil objek userdao untuk meminta data dan menetapkan halaman untuk menampilkan data. Kode inti adalah sebagai berikut:
impor java.io.ioException; impor java.io.printwriter; impor java.util.arraylist; impor java.util.list; import javax.servlet.servletException; import javax.servlet.htp.httpservlet; impor javax.servlet javax.servlet.http.httpservletResponse; import com.dao.user; import com.dao.userdao; Public Class Listuser memperluas httpservlet {listroUser publik () {super ();} public void hancur () {super.destroy (); // Hanya menempatkan string "hancurkan" di log // letakkan kode Anda di sini} public void doGet (httpservletRequest, httpservletResponse response) melempar servletException, ioException {dopost, response);} public void dopost (httpservletexcepteRExceptePionsceptePionSceptePion (httpsepcepteCscepte) {response.setcharacterencoding ("UTF-8"); int pageno = 1; userdao userdao = Userdao baru (); Daftar <User> Daftar = ArrayList baru <user> (); string pageno = request.getParameter ("pagenos"); if (pageno! = null) {pageno = integer.parseint (pageno);} lists = userdao.listuser (pageno); int recordcount = userdao.getPage (); request.setattribute ("recordcount", userdao.getPage ()); request.setAttribute, "PendiGenoS", lists), listset (); request. pageno); request.getRequestDispatcher ("userlist.jsp"). Forward (request, response);} public void init () melempar servletException {// letakkan kode Anda di sini}} 3. Lapisan Ekspresi
Halaman output userlist.jsp digunakan untuk menghasilkan hasil kueri menggunakan EL dan JSTL. Kode inti adalah sebagai berikut:
<%@ page language = "java" import = "java.util.*" pageCoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri = "http:jtl/core"%> <%@ taglib uri = "http:jaV. prefix = "fmt"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn"%> <%string path = request.getContextPath (); string basePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/";%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <html> <"myp =" <"ence =" enc "> <html> <" myp = "<" pangkalan = "enc"> <html> <"myper =" <"pangkalan =" enc "> <html> <" myper = "<" pangkalan = "enc" 'userlist.jsp' starting page</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" konten = "kata kunci1, kata kunci2, kata kunci3"> <meta http-equiv = "deskripsi" konten = "ini halaman saya"> <!-<tautan rel = "stylesheet" type = "text/css" href = "styles.css">-> <style type = "text/css"> td {lidth "; center;} body {text-align: center;} a {text-decoration: none;} tabel {border-collapse: collapse;} </tyle> </head> <hody> <h2 align = "center"> Informasi buku </h2> <table align = "center"> <tr> <td> nomor buku </td> <tdable> Judul </td> <td> inventaris </td> </tr> </able> <table align = "center"> <c: foreach items = "$ {listss}" var = "person"> <tr> <td> $ {person.id} </td> <td> $ {person.name} </td> </td> <td> $ {person.name} </td> </td> <td> $ {person.name} </td> } </td> </tr> </c: foreach> </boable> <br> <c: if test = "$ {pagenos> 1}"> <a href = "listuser? pagenos = 1"> home </a> <a href = "listuser? pagenos = $ {pagenos-1} </" listuser? pagenos = $ {pagenos-1 test="${pageNos <recordCount }"><a href="ListUser?pageNos=${pageNos+1 }">Next page</a></c:if><form action="ListUser"><h4 align="center">Total ${recordCount} page <input type="text" value="${pageNos}" name="pageNos" size = "1"> halaman <input type = "kirim" value = "kedatangan"> </h4> </form> </body> </html>Di atas adalah kode contoh pagination sederhana dari java web yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!