이 글에서는 Java 웹 단순 페이징 표시 예제 코드에 대한 관련 정보를 주로 소개합니다. 이 글은 총 페이지 수를 계산하고 지정된 페이지 데이터를 쿼리하여 페이징 효과를 구현하는 데 매우 유용합니다. 필요한 친구는
을 참조할 수 있습니다. 이 기사에서는 두 가지 방법을 사용합니다. (1) 총 페이지 수를 계산합니다. (2) 지정된 페이지 데이터를 쿼리하여 간단한 페이징 효과를 얻습니다.
아이디어: 먼저 DAO 객체에 페이징 쿼리 메서드를 제공해야 합니다. 컨트롤 레이어에서 이 메서드를 호출하면 지정된 페이지의 데이터를 찾을 수 있습니다. , EL 표현식과 JSTL을 사용하여 데이터를 쿼리합니다.
먼저 렌더링을 보여드리겠습니다:
주제 외: 이 페이지는 다음을 보여줍니다. "프레젠테이션 레이어-제어 레이어-DAO 레이어-데이터베이스"라는 설계 개념을 사용하여 구현됩니다. 개선이 필요한 영역이 있으면 모두가 이를 제시하고 함께 배우고 발전할 것입니다. 더 이상 고민하지 말고 자세한 단계를 살펴보겠습니다.
1. DAO 레이어 - 데이터베이스
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDBCUtils { private Connection conn=null; private PreparedStatement pstmt=null; /** * connect 连接数据库 * @return */ public Connection connect(){ String user="root"; String password="1234"; String driverClass = "com.mysql.jdbc.Driver"; String jdbcUrl = "jdbc:mysql://localhost:3306/book"; try { Class.forName(driverClass); conn = DriverManager.getConnection(jdbcUrl, user, password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } /** * close 关闭数据库 * @param conn * @param pstmt * @param resu */ public void close(Connection conn,PreparedStatement pstmt,ResultSet result){ if(conn != 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 block e.printStackTrace(); } } if(result != null){ try { result.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }getPage() 메소드와 listUser( )를 사용하여 각각 계산합니다. 총 페이지 수와 지정된 페이지의 데이터를 쿼리합니다. 핵심 코드는 다음과 같습니다.
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.db.JDBCUtils; public class UserDao { /** * 计算总的页数 * @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 Auto-generated catch block e.printStackTrace(); }finally{ jdbc.close(conn, pstmt, result); } if(t1 != 0){ t2=t2+1; } return t2; } /** * 查询指定页的数据 * @param pageNo * @return */ public List<User> listUser(int pageNo){ PreparedStatement pstmt=null; ResultSet result=null; List<User> list=new ArrayList<User>(); int pageSize=5; int page=(pageNo-1)*5; JDBCUtils jdbc=new JDBCUtils(); Connection conn=jdbc.connect(); String sql="select * from books order by id limit ?,?"; try { pstmt=conn.prepareStatement(sql); pstmt.setInt(1, 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.setNumber(result.getString(3)); list.add(user); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ jdbc.close(conn, pstmt, result); } return list; } }
User 클래스는 쿼리된 데이터를 저장하는 데 사용됩니다. 핵심 코드는 다음과 같습니다.
public class User { 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 getNumber() { return number; } public void setNumber(String number) { this.number = number; } }
2. 컨트롤 레이어
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dao.User; import com.dao.UserDao; public class ListUser extends HttpServlet { public ListUser() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 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.setAttribute("recordCount", userdao.getPage()); request.setAttribute("listss", lists); request.setAttribute("pageNos", pageNo); request.getRequestDispatcher("userlist.jsp").forward(request, response); } public void init() throws ServletException { // Put your code here } }
3. 프리젠테이션 계층
<%@ 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.com/jsp/jstl/fmt" 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> <head> <base href="<%=basePath%>"> <title>My JSP '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" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <style type="text/css"> th,td{width: 150px;border: 2px solid gray;text-align: center;} body{text-align: center;} a{text-decoration: none;} table {border-collapse: collapse;} </style> </head> <body> <h2 id="图书信息">图书信息</h2> <table align="center"> <tr><td>书号</td><td>书名</td><td>库存量</td></tr> </table> <table align="center"> <c:forEach items="${listss}" var="person"> <tr> <td class="hidden-480">${person.id}</td> <td class="hidden-480">${person.name }</td> <td class="hidden-480">${person.number }</td> </tr> </c:forEach> </table> <br> <c:if test="${pageNos>1 }"> <a href="ListUser?pageNos=1" >首页</a> <a href="ListUser?pageNos=${pageNos-1 }">上一页</a> </c:if> <c:if test="${pageNos <recordCount }"> <a href="ListUser?pageNos=${pageNos+1 }">下一页</a> <a href="ListUser?pageNos=${recordCount }">末页</a> </c:if> <form action="ListUser"> <h4 align="center">共${recordCount}页   <input type="text" value="${pageNos}" name="pageNos" size="1">页 <input type="submit" value="到达"> </h4> </form> </body> </html>위 다음은 편집기에서 소개한 간단한 Java 웹 페이징 표시 예제 코드입니다. 질문이 있으신 경우, 메시지를 남겨주시면 편집자가 시간 내에 답변해 드리겠습니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
