多种分页学习案例

案例1:index.jsp  ---mysql8.0版本

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2022/6/2
  Time: 15:52
  To change this template use File | Settings | File Templates.
--%>
<%@page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>

<body>


  <table border="1">
      <tr>
          <th>编号</th>
          <th>用户姓名</th>
          <th>用户编号</th>
          <th>角色</th>
          <th>是否启用</th>
      </tr>
      <%
     String curpage=request.getParameter("pageNow");

          //分页
          int pagesize=5;
          int lineCount;//一共多少行
          int pageCount=0;//一共多少页
          int pageNow=1;//当前第几页
          if(!"".equals(curpage)&& null!=curpage){
              pageNow=Integer.parseInt(curpage);
          }

          String username="";
          try {
              Class.forName("com.mysql.cj.jdbc.Driver");
              String url="jdbc:mysql://localhost:3306/swt3_sanxia?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF8&useOldAliasMetadataBehavior=true&&zeroDateTimeBehavior=convertToNull";
              Connection conn=DriverManager.getConnection(url,"root","123123");
              String sql1="select count(1) from sysusertb ";
              PreparedStatement ps1=conn.prepareStatement(sql1);
              ResultSet rs1=ps1.executeQuery();
              rs1.next();
              lineCount=rs1.getInt(1);
              pageCount=lineCount%pagesize==0?lineCount/pagesize : lineCount/pagesize+1;


              String sql="select * from sysusertb limit ?,?";
              PreparedStatement ps=conn.prepareStatement(sql);
              ps.setInt(1,pagesize*(pageNow-1));
              ps.setInt(2,pagesize);
              ResultSet rs=ps.executeQuery();

              String username1="";
              int i=0;
              while(rs.next()){

                  username=(String)rs.getString("username");
                  System.out.println(rs.getString("username"));
                  i=i+1;

        %>
      <tr>
          <td><%=i%></td>
          <td><%=rs.getString("usercode")%></td>
          <td><%=rs.getString("username")%></td>
          <td><%=rs.getString("rolecode")%></td>
          <td><%=rs.getString("userstat")%></td>
      </tr>
      <%
              }
              ps.close();
              conn.close();
          } catch (Exception e) {
              out.print("图书信息添加失败!");
              e.printStackTrace();

          }
      %>
  </table>
  <div>
  <%
  for (int i=1;i<=pageCount;i++){
      %>
          <a href="/test1.jsp?pageNow=<%=i%>">[<%=i%>]</a>

  <%
  }
  %>

</div>
<div>

</div>

</body>
</html>

案例2:

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2022/6/2
  Time: 15:52
  To change this template use File | Settings | File Templates.
--%>
<%@page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>

<body>


  <table border="1">
      <tr>
          <th>编号</th>
          <th>用户姓名</th>
          <th>用户编号</th>
          <th>角色</th>
          <th>是否启用</th>
      </tr>
      <%
     String curpage=request.getParameter("pageNow");

          //分页
          int pagesize=5;
          int lineCount;//一共多少行
          int pageCount=0;//一共多少页
          int pageNow=1;//当前第几页
          if(!"".equals(curpage)&& null!=curpage){
              pageNow=Integer.parseInt(curpage);
          }

          String username="";
          try {
              Class.forName("com.mysql.cj.jdbc.Driver");
              String url="jdbc:mysql://localhost:3306/swt3_sanxia?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF8&useOldAliasMetadataBehavior=true&&zeroDateTimeBehavior=convertToNull";
              Connection conn=DriverManager.getConnection(url,"root","123123");
              String sql1="select count(1) from sysusertb ";
              PreparedStatement ps1=conn.prepareStatement(sql1);
              ResultSet rs1=ps1.executeQuery();
              rs1.next();
              lineCount=rs1.getInt(1);
              pageCount=lineCount%pagesize==0?lineCount/pagesize : lineCount/pagesize+1;
             if(pageNow<=0){
                 pageNow=1;
             }
             if(pageNow>=pageCount){
                 pageNow=pageCount;
             }

              String sql="select * from sysusertb limit ?,?";
              PreparedStatement ps=conn.prepareStatement(sql);
              ps.setInt(1,pagesize*(pageNow-1));
              ps.setInt(2,pagesize);
              ResultSet rs=ps.executeQuery();

              String username1="";
              int i=0;
              while(rs.next()){

                  username=(String)rs.getString("username");
                  System.out.println(rs.getString("username"));
                  i=i+1;

        %>
      <tr>
          <td><%=i%></td>
          <td><%=rs.getString("usercode")%></td>
          <td><%=rs.getString("username")%></td>
          <td><%=rs.getString("rolecode")%></td>
          <td><%=rs.getString("userstat")%></td>
      </tr>
      <%
              }
              ps.close();
              conn.close();
          } catch (Exception e) {
              out.print("图书信息添加失败!");
              e.printStackTrace();

          }
      %>
  </table>
  <div>
  <%

      %>
      <a href="/test2.jsp?pageNow=1">首页</a>
      <a href="/test2.jsp?pageNow=<%=pageNow-1%>">上一页</a>
      <a href="/test2.jsp?pageNow=<%=pageNow+1%>">下一页</a>
      <a href="/test2.jsp?pageNow=<%=pageCount%>">末页</a>
      <br>一共分了<%=pageCount%>页,当前在<%=pageNow%>页

  <%

  %>

</div>
<div>

</div>

</body>
</html>

案例3

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2022/6/2
  Time: 15:52
  To change this template use File | Settings | File Templates.
--%>
<%@page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>

<body>


  <table border="1">
      <tr>
          <th>编号</th>
          <th>用户姓名</th>
          <th>用户编号</th>
          <th>角色</th>
          <th>是否启用</th>
      </tr>
      <%
     String curpage=request.getParameter("pageNow");

          //分页
          int pagesize=5;
          int lineCount;//一共多少行
          int pageCount=0;//一共多少页
          int pageNow=1;//当前第几页
          if(!"".equals(curpage)&& null!=curpage){
              pageNow=Integer.parseInt(curpage);
          }

          String username="";
          try {
              Class.forName("com.mysql.cj.jdbc.Driver");
              String url="jdbc:mysql://localhost:3306/swt3_sanxia?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF8&useOldAliasMetadataBehavior=true&&zeroDateTimeBehavior=convertToNull";
              Connection conn=DriverManager.getConnection(url,"root","123123");
              String sql1="select count(1) from sysusertb ";
              PreparedStatement ps1=conn.prepareStatement(sql1);
              ResultSet rs1=ps1.executeQuery();
              rs1.next();
              lineCount=rs1.getInt(1);
              pageCount=lineCount%pagesize==0?lineCount/pagesize : lineCount/pagesize+1;
             if(pageNow<=0){
                 pageNow=1;
             }
             if(pageNow>=pageCount){
                 pageNow=pageCount;
             }

              String sql="select * from sysusertb limit ?,?";
              PreparedStatement ps=conn.prepareStatement(sql);
              ps.setInt(1,pagesize*(pageNow-1));
              ps.setInt(2,pagesize);
              ResultSet rs=ps.executeQuery();

              String username1="";
              int i=0;
              while(rs.next()){

                  username=(String)rs.getString("username");
                  System.out.println(rs.getString("username"));
                  i=i+1;

        %>
      <tr>
          <td><%=i%></td>
          <td><%=rs.getString("usercode")%></td>
          <td><%=rs.getString("username")%></td>
          <td><%=rs.getString("rolecode")%></td>
          <td><%=rs.getString("userstat")%></td>
      </tr>
      <%
              }
              ps.close();
              conn.close();
          } catch (Exception e) {
              out.print("图书信息添加失败!");
              e.printStackTrace();

          }
      %>
  </table>
  <div>
     <select  onchange="location.href='/test3.jsp?pageNow='+this.value">
         <%
           for (int i=1;i<=pageCount;i++){
         %>
         <%
          if (pageNow==i) {


         %>
         <option value="<%=i%>" selected><%=i%></option>
         <%
         }else{
          %>
         <option value="<%=i%>" ><%=i%></option>
         <%
                 }
           }
         %>
     </select>
      <br>一共分了<%=pageCount%>页,当前在<%=pageNow%>页



</div>
<div>

</div>

</body>
</html>

案例4:

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2022/6/2
  Time: 15:52
  To change this template use File | Settings | File Templates.
--%>
<%@page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>

    <title>Title</title>
</head>

<body>


  <table border="1">
      <tr>
          <th>编号</th>
          <th>用户姓名</th>
          <th>用户编号</th>
          <th>角色</th>
          <th>是否启用</th>
      </tr>
      <%
     String curpage=request.getParameter("pageNow");

          //分页
          int pagesize=5;
          int lineCount;//一共多少行
          int pageCount=0;//一共多少页
          int pageNow=1;//当前第几页
          if(!"".equals(curpage)&& null!=curpage){
              pageNow=Integer.parseInt(curpage);
          }

          String username="";
          try {
              Class.forName("com.mysql.cj.jdbc.Driver");
              String url="jdbc:mysql://localhost:3306/swt3_sanxia?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF8&useOldAliasMetadataBehavior=true&&zeroDateTimeBehavior=convertToNull";
              Connection conn=DriverManager.getConnection(url,"root","123123");
              String sql1="select count(1) from sysusertb ";
              PreparedStatement ps1=conn.prepareStatement(sql1);
              ResultSet rs1=ps1.executeQuery();
              rs1.next();
              lineCount=rs1.getInt(1);
              pageCount=lineCount%pagesize==0?lineCount/pagesize : lineCount/pagesize+1;
             if(pageNow<=0){
                 pageNow=1;
             }
             if(pageNow>=pageCount){
                 pageNow=pageCount;
             }

              String sql="select * from sysusertb limit ?,?";
              PreparedStatement ps=conn.prepareStatement(sql);
              ps.setInt(1,pagesize*(pageNow-1));
              ps.setInt(2,pagesize);
              ResultSet rs=ps.executeQuery();

              String username1="";
              int i=0;
              while(rs.next()){

                  username=(String)rs.getString("username");
                  System.out.println(rs.getString("username"));
                  i=i+1;

        %>
      <tr>
          <td><%=i%></td>
          <td><%=rs.getString("usercode")%></td>
          <td><%=rs.getString("username")%></td>
          <td><%=rs.getString("rolecode")%></td>
          <td><%=rs.getString("userstat")%></td>
      </tr>
      <%
              }
              ps.close();
              conn.close();
          } catch (Exception e) {
              out.print("图书信息添加失败!");
              e.printStackTrace();

          }
      %>
  </table>
  <div>
     <select  onchange="location.href='/myfirst?' +
      'pageNow='+this.value">
         <%
           for (int i=1;i<=pageCount;i++){
         %>
         <%
          if (pageNow==i) {


         %>
         <option value="<%=i%>" selected><%=i%></option>
         <%
         }else{
          %>
         <option value="<%=i%>" ><%=i%></option>
         <%
                 }
           }
         %>
     </select>
      <br>一共分了<%=pageCount%>页,当前在<%=pageNow%>页



</div>
<div>

</div>

</body>
</html>

5请求转发和重定向的区别

1请求转发地址不变,request,response共享,可以获取

2重定向,会重新发送到新的请求地址,之前的请求路径的request,response不能共享,由于不是同一个请求。是客户端重新发送请求。

3请求顺序 ,请求转发 客户端login.jsp--》访问服务端-服务端访问客户端--》访问index.jsp==》服务端---》服务端-login.jsp (全程是同一个请求)

重定向,客户端

1.login.jsp--》访问服务端---》login.jsp

2.login.jsp --》访问index.jsp (全程是2个请求)

package com.test;
        import java.io.IOException;
        import java.io.PrintWriter;

        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import javax.servlet.http.*;

public class MyFirstServlet extends HttpServlet{

    protected void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
        System.out.println("这是doPost方法");
        //PrintWriter out = response.getWriter();
       // out.println("<strong>Hello Servlet!</strong><br/>");
     System.out.println("username=1="+request.getParameter("username"));

        HttpSession session = request.getSession(true);
        session.setAttribute("username",request.getParameter("username"));
        System.out.println("username=2="+session.getAttribute("username"));

        String  addr= request.getRemoteAddr();
        System.out.println("addr=2="+addr);
        String  host=  request.getRemoteHost();
        System.out.println("host=2="+host);
        int  ports=request.getRemotePort();
        System.out.println("ports=2="+ports);
        String  user=   request.getRemoteUser();
        System.out.println("user=2="+user);
       // String path1="/index.jsp";
        String path1="/test2.jsp";

        /**
         * (1)重定向
         * 两次请求,两次响应
         * 重定向不携带数据
         * 重定向地址栏发生改变
         * (2)转发
         * 一次请求,一次响应
         * 转发需要携带数据,请求域中数据不会丢失
         * 转发地址栏不会发生变化
         */
        //重定向
        request.getRequestDispatcher(path1).forward(request, response);
      //  response.sendRedirect(path1);
    }

    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
        System.out.println("这是doGet方法");
        //指定request请求时的字符编码格式
        request.setCharacterEncoding("UTF-8");
//设置response响应的字符编码格式
        response.setCharacterEncoding("UTF-8");
//设置响应内容类型为 text/html(文本/超文本标记语言);文本编码为UTF-8
        response.setContentType("text/html'charset=UTF-8");

        PrintWriter out = response.getWriter();
        out.println("<strong>Hello Servlet!</strong>");
        String path1="/test4.jsp";

        /**
         * (1)重定向
         * 两次请求,两次响应
         * 重定向不携带数据
         * 重定向地址栏发生改变
         * (2)转发
         * 一次请求,一次响应
         * 转发需要携带数据,请求域中数据不会丢失
         * 转发地址栏不会发生变化
         */
        //重定向
        HttpSession session = request.getSession(true);
        session.setAttribute("username",request.getParameter("username"));
        System.out.println("username=1="+request.getParameter("username"));
        System.out.println("username1=1="+request.getParameter("username1"));
      //  response.sendRedirect(path1);

        request.getRequestDispatcher(path1).forward(request, response);
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>



    <servlet>
        <servlet-name>first</servlet-name>
        <servlet-class> com.test.MyFirstServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>first</servlet-name>
        <url-pattern>/myfirst</url-pattern>
    </servlet-mapping>

</web-app>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值