jsp分页显示数据

16 篇文章 0 订阅
14 篇文章 0 订阅
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ page language="java" import="java.sql.*"%>
<script language="javascript">
	function newwin(url) {
		var

		newwin = window
				.open(
						url,
						"newwin",
						"toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=yes,width=600,height=450");
		newwin.focus();
		return false;
	}
</script>
<script LANGUAGE="javascript">
	function submit10() {
		self.location.replace("index.jsp")
	}
</script>
<%
	//变量声明 
	java.sql.Connection sqlCon; //数据库连接对象 
	java.sql.Statement sqlStmt; //SQL语句对象 
	java.sql.ResultSet sqlRst; //结果集对象 
	java.lang.String strCon; //数据库连接字符串 
	java.lang.String strSQL; //SQL语句 
	int intPageSize; //一页显示的记录数 
	int intRowCount; //记录总数 
	int intPageCount; //总页数 
	int intPage; //待显示页码 
	java.lang.String strPage;
	int i;
	//设置一页显示的记录数 
	intPageSize =10;
	//取得待显示页码 
	strPage = request.getParameter("page");
	if (strPage == null) {//表明在QueryString中没有page这一个参数,此时显示第一页数据 
		intPage = 1;
	} else {//将字符串转换成整型 
		intPage=java.lang.Integer.parseInt(strPage);
		if (intPage < 1)
			intPage = 1;
	}
	//装载JDBC驱动程序 
	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
	//设置数据库连接字符串 
	strCon = "jdbc:sqlserver://localhost:1433;DatabaseName=Library";
	//连接数据库 
	sqlCon = java.sql.DriverManager.getConnection(strCon, "root",
			"root");
	//创建一个可以滚动的只读的SQL语句对象 
	sqlStmt = sqlCon.createStatement(
			java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
			java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句 
	strSQL = "select * from TB_Reader";
	//执行SQL语句并获取结果集 
	sqlRst = sqlStmt.executeQuery(strSQL);
	//获取记录总数 
	sqlRst.last();//??光标在最后一行 
	intRowCount = sqlRst.getRow();//获得当前行号 
	//记算总页数 
	intPageCount = (intRowCount + intPageSize - 1) / intPageSize;
	//调整待显示的页码 
	if (intPage > intPageCount)
		intPage = intPageCount;
%>
<html>
  <head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
	<title>首页</title>
	<link rel="stylesheet" type="text/css" href="sdmenu/sdmenu.css" />
	<script type="text/javascript" src="sdmenu/sdmenu.js">
	</script>
	<script type="text/javascript">
	// <![CDATA[
	var myMenu;
	window.onload = function() {
		myMenu = new SDMenu("my_menu");
		myMenu.init();
		var myMenu = new SDMenu("main_menu"); 
	};
	// ]]>
	</script>

  </head>
  <body>

  <div id="top">
   <font id="cd" style="align:center;">图书管理系统</font>
  </div>
 <div style="float:left" id="my_menu" class="sdmenu">
      <div>
        <span>图书管理</span>
        <a href="book_add.jsp">新书入库</a>
        <a href="book_update.jsp">图书信息维护</a>
      </div>
      <div>
        <span>读者管理</span>
        <a href="add.jsp">办理借书证</a>
    		<a href="reader_update.jsp">信息变更</a>
    		<a href="reader_lost.jsp">挂失与解除</a>
    		<a href="reader_delete.jsp">注销</a>
    		<a href="reader_type.jsp">类型管理</a>
      </div>
      <div >
        <span>借阅管理</span>
        <a href="borrow.jsp">借书</a>
    		<a href="reborrow.jsp">借书</a>
    		<a href="return.jsp">借书</a>
      </div>
      <div>
        <span>用户管理</span>
        <a href="admin.jsp">管理员添加</a>
        <a href="admin_view.jsp">查看管理员</a>
        <a href="permission.jsp">权限管理</a>
        <a href="password_update.jsp">密码修改</a>
      </div>
      <div></div>
    </div> 
	<div style="padding-left:100px">	
	     <h2 style="align:center;">查询结果</h2>	
		<table border="1">
				<tr>
		          <td>ID</td>
		          <td>姓名</td>
		          <td>性别</td>
		          <td>类型</td>
		          <td>操作</td>
		        </tr>
			<%
				if (intPageCount > 0) {
					//将记录指针定位到待显示页的第一条记录上 
					sqlRst.absolute((intPage - 1) * intPageSize + 1);
					//显示数据 
					i = 0;
					int id;
					String rdname,rdtype,rddept;
					while (i < intPageSize && !sqlRst.isAfterLast()) {
						id = sqlRst.getInt(1);
						rdname = sqlRst.getString(2);
						rdtype= sqlRst.getString(3);
						rddept = sqlRst.getString(4);
			%>
			<tr>
				<td><%=id %></td>
				<td><%=rdname %></td>
				<td><%=rdtype %></td>
				<td><%=rddept %></td>
				<td>
					<a href="reader_details.jsp?rdid=<%=id%>">【简介】</a>
	               <a href="reader_update.jsp?rdid=<%=id%>">【编辑】</a>
	               <a href="reader_delete.jsp?rdid=<%=id%>">【删除】</a>
				</td>				
			  </tr>
			<%
				sqlRst.next();
						i++;
					}
				}
			%>
		</table>
		<form method="POST" action="">
			第<%=intPage%>页 共<%=intPageCount%>页

			<%
			if (intPage < intPageCount) {
		%>
			<a href="index.jsp?page=<%=intPage + 1%>">下一页</a>
			<%
				}
			%>
			<%
				if (intPage > 1) {
			%>
			<a href="index.jsp?page=<%=intPage - 1%>">上一页</a>
			<%
				}
			%>
			转到第:
			<input type="text" name="page" size="8">
			页
			<input type="submit" value="GO" name="cndok">
		</form>
	 </div>
	</body>
</html>
<%
	//关闭结果集 
	sqlRst.close();
	//关闭SQL语句对象 
	sqlStmt.close();
	//关闭数据库 
	sqlCon.close();
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP中实现分页显示数据的步骤如下: 1. 在JSP页面中使用JSTL标签库中的<c:forEach>标签或者JSP自带的<% %>标签,遍历数据集合并将数据显示在页面上。 2. 在页面上添加分页导航条,用于用户切换不同页面的数据。可以通过<a>标签或者<button>标签来实现。 3. 在后台代码中,根据用户请求的当前页码以及每页显示数据量,计算出要显示数据的起始位置和结束位置。 4. 从数据源中查询数据,并根据起始位置和结束位置来限制查询结果的数量。 5. 将查询结果封装成JavaBean对象,然后将JavaBean对象放入请求作用域(request)中,以便在JSP页面中遍历和显示。 6. 在JSP页面中根据分页导航条传递的参数,重新查询数据显示在页面上。 示例代码如下: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSP分页显示数据</title> </head> <body> <h1>用户列表</h1> <table> <tr> <th>ID</th> <th>用户名</th> <th>邮箱</th> </tr> <c:forEach var="user" items="${users}"> <tr> <td>${user.id}</td> <td>${user.username}</td> <td>${user.email}</td> </tr> </c:forEach> </table> <br> <div> <c:if test="${currentPage > 1}"> <a href="list.jsp?page=${currentPage - 1}">上一页</a> </c:if> <c:forEach begin="1" end="${totalPage}" varStatus="status"> <c:choose> <c:when test="${status.index == currentPage}"> <span>${status.index}</span> </c:when> <c:otherwise> <a href="list.jsp?page=${status.index}">${status.index}</a> </c:otherwise> </c:choose> </c:forEach> <c:if test="${currentPage < totalPage}"> <a href="list.jsp?page=${currentPage + 1}">下一页</a> </c:if> </div> </body> </html> ``` 在后台代码中,我们需要根据参数page和pageSize来计算出要查询的数据的起始位置和结束位置,然后从数据源中查询数据,并将查询结果封装成JavaBean对象放入请求作用域中。 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="com.example.User" %> <% int currentPage = Integer.parseInt(request.getParameter("page")); int pageSize = 10; int totalCount = 100; int totalPage = (totalCount + pageSize - 1) / pageSize; int startIndex = (currentPage - 1) * pageSize; int endIndex = startIndex + pageSize; List<User> users = new ArrayList<User>(); for (int i = startIndex; i < endIndex && i < totalCount; i++) { User user = new User(); user.setId(i + 1); user.setUsername("user" + (i + 1)); user.setEmail("user" + (i + 1) + "@example.com"); users.add(user); } request.setAttribute("users", users); request.setAttribute("currentPage", currentPage); request.setAttribute("totalPage", totalPage); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSP分页显示数据</title> </head> <body> <%@ include file="list.jsp" %> </body> </html> ``` 在JSP页面中,我们需要根据请求作用域中的数据来渲染分页导航条和数据列表。 注意:为了防止SQL注入等安全问题,我们在实际开发中应该使用PreparedStatement来查询数据,并对用户输入的参数进行过滤和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值