В этой статье используются два метода: (1) для расчета общего количества страниц. (2) Запросите указанные данные страницы для достижения простого эффекта пейджинга.
Идея: Во -первых, вы должны предоставить метод запроса на страницы в объекте DAO. Вызовите этот метод на уровне управления, чтобы найти данные указанной страницы, и отобразите данные страницы через EL Expressions и JSTL на уровне презентации.
Позвольте мне сначала показать вам визуализации:
Вне темы: этот дисплей страницы реализован с использованием дизайнерской идеи «презентационного уровня-уровня-слоя-датабазы слоя». Если у вас есть какие -либо улучшения, пожалуйста, предложите это, изучите и продвигайте вместе. Без лишних слов начните входить в тему. Подробные шаги следующие:
1. Датабаза слоя
Класс jdbcutils используется для открытия и закрытия базы данных, а код основного база заключается в следующем:
Импорт java.sql.connection; import java.sql.drivermanager; import java.sql.preparedStatement; import java.sql.resultset; import java.sql.sqlexception; public jdbcutils {private connect conn = nul. /*** Подключитесь к базе данных* @return*/public connect connect () {string user = "root"; string passwer = "1234"; string driverclass = "com.mysql.jdbc.driver"; string jdbcurl = "jdbc: mysql: // localhost: 3306/book"; try {class.fornam DriverManager.getConnection (jdbcurl, пользователь, пароль);} catch (Exception e) {// todo автоматически сгенерированный catch blocke.printstacktrace ();} return conn;}/*** Закрыть закройте базу данных* @param conn* @param pstmt* @param resu*/public void connectement pstmt steplieet pstmt, if streceet stepmet stepmet, if streceet pstmet, if strescapetmet optmeet pstmt ! = null) {try {conn.close ();} catch (sqlexception e) {// todo автоматически сгенерированный блок}} if (pstmt! = null) {try {pstmt.close ();} catch (sqlexception e) {// todo autogerated blocke null) {try {result.close ();} catch (sqlexception e) {// todo, сгенерированный автоматическим catch blocke.printstacktrace ();}}}}Методы getPage () и Method ListUser () в классе userDao используются для расчета общего количества страниц и запроса данных указанной страницы соответственно. Основной код заключается в следующем:
Импорт java.sql.connection; import java.sql.preparedStatement; import java.sql.resultset; import java.sql.sqlexception; импорт java.util.arraylist; import java.util.list; импорт com.db.jdbcutils; @return*/public int getPage () {int recordCount = 0, t1 = 0, t2 = 0; подготовлено pstmt = null; resultSet result = null; jdbcutils jdbc = new jdbcutils (); connection conn = jdbc.connect (); строка sql = "select count (*) {pstmt = conn.prepareStatement (sql); result = pstmt.executequery (); result.next (); recordcount = result.getint (1); t1 = recordcount%5; t2 = recordCount/5;} Catch (Exception e) {// toDo AutoGenceted Blocke.printcktrace () {// todo Auto Generated Blocke.printcktrace (););) {// todo autogenerated chater.printcktrace ();););););); Наконец {jdbc.close (conn, pstmt, result);} if (t1! = 0) {t2 = t2+1;} return t2;}/*** Запрос данных указанной страницы* @param pageno* @return*/public <пользователь> listroser (int pageno) {подготовленный stratement = null; ArrayList <user> (); int pageSize = 5; int page = (pageno-1) * 5; jdbcutils jdbc = new jdbcutils (); соединение conn = jdbc.connect (); string sql = "select * from order by-light?,? Page); PSTMT.SetInt (2, PageSize); Result = PSTMT.ExecUteQuery (); while (result.next ()) {user user = new user (); user.setid (result.getint (1)); user.setname (result.getString (2)); user.setnumb {// TODO Auto Generated Catch Blocke.printstackTrace ();} наконец {jdbc.close (conn, pstmt, result);} return List;}}Пользовательский класс используется для хранения запросов данных, а код основного ядра заключается в следующем:
открытый класс пользователь {private int id; private String name; Private String Number; 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 getNumb число;}} 2. Управляющий слой
Класс ListUser вызывает объект userDao для запроса данных и назначает страницу отображать данные. Основной код заключается в следующем:
Импорт java.io.ioexception; import java.io.printwriter; import java.util.arraylist; импорт java.util.list; import javax.servlet.servletexception; импорт javax.servlet.http.httpservlet; import javax.servlet.http.httplequestrevlet; javax.servlet.http.httpservletresponse; import com.dao.user; import com.dao.userdao; public class listuser расширяет httpservlet {public listuser () {super ();} public void destress () {super.destroy (); // просто ставит «Уничтожить» строку в log // Поместить свой код здесь} public void Doget (httpservletrequest, httpservletrespons {response.setcharacterencoding ("utf-8"); int pageno = 1; userdao userdao = new userdao (); list <user> lists = new Arraylist <user> (); String pageno = request.getParameter ("pagenos"); if (pageno! null) {pageno = integer.parseint (pageno);} lists = userdao.listuser (pageno); int recordcount = userDao.getPage (); request.setattribut pageno); request.getRequestDispatcher ("userlist.jsp"). Forward (request, response);} public void init () Throws ServletException {// Поместите свой код здесь}} 3. выражение слой
Пользовательская страница userlist.jsp используется для вывода результатов запроса с использованием EL и JSTL. Основной код заключается в следующем:
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri = "http://java.sun.comsmp/jsp. 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 transitional // en"> <html> <shabe> <base html 4.01. 'userlist.jsp' Начальная страница </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "истекает" content = "0"> <meta http-equiv = "equiv =" experisties "0"> <meta http-equiv = "equiv =" experired "0"> <meta http-equiv = "equiv =". Content = "Keyword1, Keyword2, Keyword3"> <Meta Http-equiv = "description" Content = "Это моя страница"> <!-<link rel = "stylesship" type = "text/css" href = "styles.css">-> <стиль типа = "text/css"> th, td {wilth: 150px; Center;} Body {Text-Align: Center;} a {Text-Decoration: None;} Таблица {Border-Collapse: Collapsse;} </style> </head> <body> <h2 align = "center"> Информация о книге </h2> <table align = "center"> <td>. title </td> <td> Inventory </td> </tr> </table> <table align = "center"> <c: foreach epest } </td> </tr> </c: foreach> </table> <br> <c: if test = "$ {pagenos> 1}"> <a href = "listuser? pagenos = 1"> Home </a> <a href = "listuser? Pagenos = $ {pagenos-1}"> предыдущая страница </a> <fagenos = $ {pagenos-1} " test = "$ {pagenos <recordCount}"> <a href = "listUser? pagenos = $ {pagenos+1}"> следующая страница </a> </c: if> <form action = "listUser"> <H4 align = "center"> $ {recordCount} page <input = "text" value = "$ {pagen" namos} "$" $ "{pagen}" $ "{pagen}" $ "{pagen}" $ "{pagen}" $ "{pagen}" $ "{pagen}" $ "{pages}" $ "{pagen"} " size = "1"> page <input type = "отправить" value = "grrival"> </h4> </form> </body> </html>Выше приведенное примером простых примеров литрахнологий кода java web, представленный вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!