В этом примере разделяет конкретный код для сервлета, чтобы реализовать эффект страниц для вашей ссылки. Конкретный контент заключается в следующем
Алгоритм страниц:
Четыре переменных должны быть определены, они имеют свое использование
int pageSize: сколько записей отображается на страницу
int pagenow: какая страница я надеюсь отобразить
int pagecount: сколько страниц в общей сложности
int rowcount: сколько записей в общей сложности
иллюстрировать:
Указан PageSize, Pagenow относится к выбору пользователя.
RowCount получен из таблицы.
выдумка рассчитывается, а формула расчета:
if (rowcount%pagesize == 0) {pagecount = rowCount/pageSize; } else {pagecount = rowcount/pagesize+1; } При использовании оператора: Выберите список поля по имени таблицы, где идентификатор между? и ?
Это утверждение SQL действительно быстрее, но есть проблема, то есть, если идентификатор таблицы удален, то на определенной странице может быть пропущена одна запись.
Поэтому окончательным методом является следующее утверждение:
Выберите список поля Top PageSize из имени таблицы, где идентификатор, где идентификатор, выберите Top PageSize*(Pagenow-1) Идентификатор из имени таблицы)
Код реализации:
Импорт javax.servlet.http.*; импортировать java.io.*; Импорт java.sql.*; открытый класс Fenye Extens httpservlet {public void doget (httpservletrequest req, httpservletresponse res) {connection ct = null; Подготовленное предприятие PS = NULL; Результат RS = NULL; int pageSize = 3; // Я надеюсь, что количество записей будет отображаться для каждой страницы int pagenow = 1; // Инициализировать текущую страницу на первую страницу int pagecount = 0; // Общее количество страниц, вам нужно знать int через расчет rowCount = 0; // Запишите общее число и посмотрите на таблицу, чтобы узнать String spagenow = req.getParameter ("pagenow"); // Получить пройденную текущую страницу if (spagenow! = Null) // Если получено не нулевое значение, преобразуйте ее в целое число {pagenow = integer.parseint (spagenow); } try {printWriter pw = res.getWriter (); Class.forname ("com.microsoft.sqlserver.jdbc.sqlserverdriver"); ct = DriverManager.getConnection ("JDBC: SQLServer: //127.0.0.1: 1433; DatabaseName = студенты", "SA", "пароль"); ps = ct.prepareStatement ("select count (*) от [студентов]. [dbo]. [Студенты]"); // Получить общее количество записей в таблице rs = ps.executequery (); while (rs.next ()) {rowcount = rs.getint (1); // Получить общее количество записей в таблице} if (rowcount%pagesize == 0) // Рассчитайте общее количество страниц {pagecount = rowcount/pagesize; } else {pagecount = rowcount/pagesize+1; } ps = ct.prepareStatement ("select top"+pagesize+" * from [студенты]. rs = ps.executequery (); pw.println ("<body> <center>"); // Покажите результаты запроса в форме таблицы pw.println ("<таблица границы = 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) // Гиперссылка на предыдущей странице, когда она уже прыгнула на первую страницу, страница больше не будет изменяться {pw.println ("<a href = fenye? pagenow ="+pagenow+">"+"вперед"+"</a>"); } else // Когда он не перепрыгнут на первую страницу, каждый раз, когда гиперссылка нажимается, страница будет прыгать вперед {pw.println ("<a href = fenye? pagenow ="+(pagenow-1)+">"+"вперед"+"</a>"); } if (pagecount <= 5) // контролировать количество страниц, отображаемых в количестве гиперссылок {for (int i = 1; i <= pagecount; i ++) {pw.println ("<a href = fenye? Pagenow ="+i+">"+i+"</a>"); }} else if (pagecount-pagenow <= 5) {for (int i = pagenow; i <= pagecount; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); } else // Когда слишком много страниц, для прекрасной страницы вам нужно контролировать количество отображаемых гиперссылок {for (int i = pagenow; i <= pagenow+5; i ++) pw.println ("<a href = fenye? pagenow ="+i+"+i+" </a> "); } if (pagenow == pagecount) // Когда это уже последняя страница, нажатие на следующую страницу больше не будет прыгать {pw.println ("<a href = fenye? pagenow ="+pagenow+">"+"назад"+"</a>"); } else {pw.println ("<a href = fenye? pagenow ="+(pagenow+1)+">"+"назад"+"</a>"); } pw.println ("</center> </body>"); } catch (Exception ex) {ex.printstackTrace (); }} public void dopost (httpservletrequest req, httpservletresponse res) {this.doget (req, res); }}Результаты исполнения:
Когда количество записей, отображаемых на страницу, составляет 3:
Нажмите на соответствующее соединение, чтобы успешно прыгнуть.
Последняя страница отображается как:
Соответствующий код:
if (pagecount <= 5) {for (int i = 1; i <= pagecount; i ++) {pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }}Нажмите назад, чтобы больше не прыгать.
Чтобы показать, насколько эффективна программа контролирует количество страниц гиперссылок, измените количество записей, отображаемых на страницу на 1.
На первой странице отображается эффект:
Соответствующий код:
else {for (int i = pagenow; i <= pagenow+5; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }Эффект отображения, когда текущий номер страницы постепенно увеличивается:
Соответствующий код:
else if (pagecount-pagenow <= 5) {for (int i = pagenow; i <= pagecount; i ++) pw.println ("<a href = fenye? pagenow ="+i+">"+i+"</a>"); }Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.