Dieses Beispiel teilt den spezifischen Code für Servlet mit, um den Paginationseffekt für Ihre Referenz zu realisieren. Der spezifische Inhalt ist wie folgt
Paginierungsalgorithmus:
Vier Variablen müssen definiert werden, sie haben ihre eigenen Verwendung
Int PageSize: Wie viele Datensätze werden pro Seite angezeigt
Int Pagenow: Welche Seite hoffe ich anzeigen
Int PageCount: Wie viele Seiten gibt es insgesamt
Int RowCount: Wie viele Datensätze gibt es insgesamt
veranschaulichen:
PageSize ist angegeben, Pagenow bezieht sich auf die Wahl des Benutzers.
RowCount wird aus der Tabelle erhalten.
PageCount wird berechnet und die Berechnungsformel lautet:
if (rowCount%pageSize == 0) {pageCount = rowCount/pageSize; } else {pageCount = rowCount/pageSize+1; } Wenn Sie Anweisung verwenden: Wählen Sie die Liste der Feldnamenliste aus Tabellenname, wo die ID zwischen ID? Und ?
Diese SQL -Anweisung ist in der Tat schneller, aber es gibt ein Problem, dh wenn die ID der Tabelle gelöscht wird, kann eine bestimmte Seite möglicherweise einen Datensatz fehlen.
Daher ist die endgültige Methode die folgende Aussage:
Wählen Sie die Liste der Top-PageSize-Feldname aus Tabellenname, wobei ID nicht in (Top PageSize*(Pagenow-1) ID aus dem Tabellennamen auswählen).
Der Implementierungscode ist:
importieren javax.servlet.http.*; import Java.io.*; Java.sql.*importieren; Öffentliche Klasse Fenye erweitert HttpServlet {public void dodget (httpServletRequest req, httpServletResponse res) {Verbindung ct = null; PrepedStatement ps = null; ResultSet rs = null; int pageSize = 3; // Ich hoffe, dass die Anzahl der Datensätze für jede Seite int pagenow = 1 angezeigt wird; // Initialisieren Sie die aktuelle Seite mit der ersten Seite int pagecount = 0; // Gesamtzahl der Seiten, Sie müssen int durch Berechnung von RowCount = 0 wissen; // Notieren Sie die Gesamtzahl und suchen Sie die Tabelle nach, um String spagenow = req.getParameter ("pagenow") zu finden. // die übergebene aktuelle Seite erhalten if (Spagenow! } try {printwriter pw = res.getWriter (); Class.forname ("com.microsoft.sqlserver.jdbc.sqlserverdriver"); ct = driverManager.getConnection ("JDBC: SQLSERVER: //127.0.0.1: 1433; Databasename = Studenten", "SA", "Passwort"); ps = ct.preparestatement ("Wählen Sie Count (*) von [Studenten]. [DBO]. [Schüler]"); // Erhalten Sie die Gesamtzahl der Datensätze in der Tabelle rs = ps.executeQuery (); while (rs.Next ()) {rowCount = rs.getint (1); // Erhalten Sie die Gesamtzahl der Datensätze in der Tabelle} if (rowCount%pageSize == 0) // Berechnen Sie die Gesamtzahl der Seiten {pageCount = rowCount/pagessize; } else {pageCount = rowCount/pageSize+1; } ps = ct.preparestatement ("Top"+pageSize+" * von [Studenten]. [DBO]. [Schüler] wob rs = ps.executeQuery (); pw.println ("<body> <center>"); // Zeigen Sie die Abfrageergebnisse in der Form einer Tabelle pw.println ("<Table Border = 1"); pw.println ("<tr> <th> id </th> <th> Name </th> <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 ("</table>"); if (pagenow == 1) // Der Hyperlink auf der vorherigen Seite, wenn es bereits zur ersten Seite gesprungen ist, ändert sich die Seite nicht mehr {pw.println ("<a href = fenye? } else // Wenn es nicht auf die erste Seite gesprungen ist, wird die Seite jedes Mal, wenn der Hyperlink klickt, nach vorne springt {pw.println ("<a href = fenye? pagenow ="+(pagenow-1)+">"+"Forward"+"</a>"); } if (pageCount <= 5) // Kontrolle der Anzahl der Seiten, die in der Anzahl der Hyperlinks angezeigt werden {für (int i = 1; i <= pageCount; i ++) {pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }} else if (pageCount-pagenow <= 5) {für (int i = pagenow; i <= pageCount; i ++) pw.println ("<a href = fenye? pageneow ="+i+">"+i+"</a>"); } sonst // Wenn es zu viele Seiten gibt, müssen Sie für die schöne Seite die Anzahl der angezeigten Hyperlinks steuern. } if (pagenow == pageCount) // Wenn es bereits die letzte Seite ist, springt auf die nächste Seite nicht mehr {pw.println ("<a href = fenye? pageneow ="+pagenow+">"+"rückwärts"+"</a>"); } else {pw.println ("<a href = fenye? pagenow ="+(pagenow+1)+">"+"rückwärts"+"</a>"); } pw.println ("</center> </body>"); } catch (Ausnahme ex) {ex.printstacktrace (); }} public void dopost (httpServletRequest req, httpServletResponse res) {this.doget (req, res); }}Ausführungsergebnisse:
Wenn die Anzahl der pro Seite angezeigten Datensätze 3 beträgt:
Klicken Sie auf die entsprechende Verbindung, um erfolgreich zu springen.
Die letzte Seite wird als:
Entsprechender Code:
if (pageCount <= 5) {für (int i = 1; i <= pageCount; i ++) {pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }}Klicken Sie nach rückwärts, um nicht mehr zu springen.
Um anzuzeigen, wie effektiv das Programm die Anzahl der Seiten Hyperlinks steuert, ändern Sie die Anzahl der pro Seite angezeigten Datensätze auf 1.
Auf der ersten Seite wird der Effekt angezeigt:
Entsprechender Code:
sonst {für (int i = pagenow; i <= pagenow+5; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }Der Anzeigeeffekt, wenn die aktuelle Seitenzahl allmählich zunimmt:
Entsprechender Code:
else if (pagecount pagenow <= 5) {für (int i = pagenow; i <= pageCount; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.