Contoh ini membagikan kode spesifik untuk Servlet untuk mewujudkan efek pagination untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Algoritma Pagination:
Empat variabel perlu didefinisikan, mereka memiliki kegunaannya sendiri
Int Pagesze: Berapa banyak catatan yang ditampilkan per halaman
int pagenow: halaman mana yang ingin saya tampilkan
int pageCount: berapa banyak halaman yang ada
int rowcount: berapa banyak catatan yang ada secara total
menjelaskan:
Halaman -halaman ditentukan, Pagenow mengacu pada pilihan pengguna.
Rowcount diperoleh dari meja.
PageCount dihitung, dan rumus perhitungannya adalah:
if (rowcount%pageSize == 0) {pagecount = rowcount/pageSize; } else {pagecount = rowcount/pageSize+1; } Jika menggunakan Pernyataan: Pilih Daftar Nama Bidang dari Tabel Nama Tabel Di Mana ID? Dan ?
Pernyataan SQL ini memang lebih cepat, tetapi ada masalah, yaitu, jika ID tabel dihapus, maka halaman tertentu mungkin memiliki satu catatan yang hilang.
Oleh karena itu, metode terakhir adalah pernyataan berikut:
Pilih Daftar Nama Bidang Halaman Teratas Dari Nama Tabel Di mana Id Tidak di (Pilih Halaman Teratas*(Pagenow-1) ID dari nama tabel)
Kode implementasinya adalah:
impor javax.servlet.http.*; impor java.io.*; impor java.sql.*; kelas publik fenye memperluas httpservlet {public void doGet (httpservletRequest req, httpservletResponse res) {connection ct = null; Disiapkan ps = null; Hasil rs = null; int pageSize = 3; // Saya berharap jumlah catatan akan ditampilkan untuk setiap halaman int pagenow = 1; // Inisialisasi halaman saat ini ke halaman pertama int pagecount = 0; // Jumlah total halaman, Anda perlu mengetahui int melalui perhitungan rowcount = 0; // Catat jumlah total dan cari tabel untuk mengetahui string spagenow = req.getParameter ("pagenow"); // Terima halaman saat ini yang diteruskan jika (spagenow! = Null) // Jika nilai non-nol diterima, ubah menjadi integer {pagenow = integer.parseint (spagenow); } coba {printwriter pw = res.getWriter (); Class.forname ("com.microsoft.sqlserver.jdbc.sqlServerDriver"); ct = driverManager.getConnection ("jdbc: sqlserver: //127.0.0.1: 1433; databaseName = siswa", "SA", "kata sandi"); ps = ct.prepareStatement ("pilih Count (*) dari [Siswa]. [DBO]. [Siswa]"); // Dapatkan jumlah total catatan dalam tabel RS = pS.ExecuteQuery (); while (rs.next ()) {rowcount = rs.getint (1); // Dapatkan jumlah total catatan dalam tabel} if (rowcount%halamanzize == 0) // Hitung jumlah total halaman {pagecount = rowcount/pagesze; } else {pagecount = rowcount/pageSize+1; } ps = ct.prepareStatement ("pilih atas"+halaman+" * dari [Siswa]. [DBO]. [Siswa] di mana ID tidak masuk (pilih Top"+halaman * (pagenow-1)+"id dari [siswa]. [DBO]. [Siswa])"); rs = ps.executeQuery (); pw.println ("<body> <usen>"); // Tunjukkan hasil kueri dalam bentuk tabel pw.println ("<tabel perbatasan = 1"); pw.println ("<tr> <t th> id </t> <t th> </t> <t th> grade </th> </tr>"); while (rs.next ()) {pw.println ("<tr>"); pw.println ("<td>"+rs.getint (1)+"</td>"); pw.println ("<td>"+rs.getString (2)+"</td>"); pw.println ("<td>"+rs.getString (3)+"</td>"); pw.println ("</tr>"); } pw.println ("</boable>"); if (pagenow == 1) // hyperlink pada halaman sebelumnya, ketika sudah melompat ke halaman pertama, halaman tidak akan lagi mengubah {pw.println ("<a href = fenye? pagenow ="+pagenow+">"+"maju"+"</a>"); } else // Ketika tidak melompat ke halaman pertama, setiap kali hyperlink diklik, halaman akan melompat maju {pw.println ("<a href = fenye? pagenow ="+(pagenow-1)+">"+"maju"+"</a>"); } if (pagecount <= 5) // Kontrol jumlah halaman yang ditampilkan dalam jumlah hyperlink {for (int i = 1; i <= pagecount; i ++) {pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>); }} lain jika (pagecount-pagenow <= 5) {for (int i = pagenow; i <= pagecount; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); } else // Ketika ada terlalu banyak halaman, untuk halaman yang indah, Anda perlu mengontrol jumlah hyperlink yang ditampilkan {for (int i = pagenow; i <= pagenow+5; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); } if (pagenow == pagecount) // Ketika sudah halaman terakhir, mengklik halaman berikutnya tidak akan lagi melompat {pw.println ("<a href = fenye? pagenow ="+pagenow+">"+"mundur"+"</a>"); } else {pw.println ("<a href = fenye? pagenow ="+(pagenow+1)+">"+"mundur"+"</a>"); } pw.println ("</center> </body>"); } catch (exception ex) {ex.printstacktrace (); }} public void dopost (httpservletrequest req, httpservletResponse res) {this.doget (req, res); }}Hasil Eksekusi:
Ketika jumlah catatan yang ditampilkan per halaman adalah 3:
Klik koneksi yang sesuai untuk berhasil melompat.
Halaman terakhir ditampilkan sebagai:
Kode yang sesuai:
if (pagecount <= 5) {for (int i = 1; i <= pagecount; i ++) {pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }}Klik ke belakang untuk tidak lagi melompat.
Untuk menunjukkan seberapa efektif program mengontrol jumlah halaman hyperlink, ubah jumlah catatan yang ditampilkan per halaman menjadi 1.
Halaman pertama menampilkan efeknya:
Kode yang sesuai:
else {for (int i = pagenow; i <= pagenow+5; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }Efek tampilan saat nomor halaman saat ini meningkat secara bertahap:
Kode yang sesuai:
lain jika (pagecount-pagenow <= 5) {for (int i = pagenow; i <= pagecount; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.