如何实现分页查询

如何实现分页查询本人今天在一次课堂小作业当中被要求完成一个查询页面并且要求实现分页设计思想,采用一个二维列表来储存数据,按固定长度截取数据pojo下的类packageorg.example.pojo;importlombok.AllArgsConstructor;importlombok.Data;

大家好,欢迎来到IT知识分享网。

本人今天在一次课堂小作业当中被要求完成一个查询页面并且要求实现分页

设计思想,采用一个二维列表来储存数据,按固定长度截取数据

如何实现分页查询

pojo下的类

package org.example.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Policy {
    private long id;
    private String name;
    private String type;
    private String category;
    private String range;
    private String document;
    private String form;
    private String organ;
    private Date viadata;
    private Date pubdata;
    private Date perdata;
    private String field;
    private String theme;
    private String  keyword;
    private String superior;
    private String precursor;
    private String succeed;
    private String state;
    private String text;
    private String pdf;
    private String redundancy;
    private String rank;
    private String policykey;
    private String newrank;
    private String year;
    private String newkey;
    private String secondtheme;
    private int allsum;
}

Utils下的类

package org.example.utils;


import javax.servlet.*;
import java.io.IOException;

public class AllFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("过滤器加载");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
       request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        chain.doFilter(request,response);
    }

    @Override
    public void destroy() {
        System.out.println("过滤器销毁");
    }
}
package org.example.utils;

import org.example.pojo.Policy;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.http.HttpRequest;
import java.util.List;

public class Last extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        int k=(int)req.getSession().getAttribute("k");
        if(k>0){
            req.getSession().setAttribute("k",--k);
        }
        resp.sendRedirect("/");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}
package org.example.utils;

import org.example.pojo.Policy;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class Next extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        int k=(int)req.getSession().getAttribute("k");
        List<Policy> policies= (List<Policy>) req.getSession().getAttribute("policies");
        if(k<policies.size()-1){
            req.getSession().setAttribute("k",++k);
        }
        resp.sendRedirect("/");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}
package org.example.utils;

import lombok.SneakyThrows;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import org.example.pojo.Policy;

public class PolicySelect {
    private Boolean check(Object o){
        return o==null||o.equals("");
    }
    @SneakyThrows
    private  Connection getConnection(){
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://localhost:3307/exam?useSSL=false";
        String username="root";
        String password="123456";
        return DriverManager.getConnection(url,username,password);
    }
    @SneakyThrows
    public  List<Policy> select(String name, String document, String organ, String text){
        name="%"+name+"%";
        document="%"+document+"%";
        organ="%"+organ+"%";
        text="%"+text+"%";
        System.out.println(name+" "+document+" "+organ+" "+text);
        String sql="select * from policy";
        int k=1;
        List<String> p=new ArrayList<>();
        if(!check(name)){
            if(k==1) sql+=" where ";
            else sql+=" and ";
            sql+="name like ?";
            p.add(name);
            k++;
        }
        if(!check(document)){
            if(k==1) sql+=" where ";
            else sql+=" and ";
            sql+="document like ?";
            p.add(document);
            k++;
        }
        if(!check(organ)){
            if(k==1) sql+=" where ";
            else sql+=" and ";
            sql+="organ like ?";
            p.add(organ);
            k++;
        }
        if(!check(text)){
            if(k==1) sql+=" where ";
            else sql+=" and ";
            sql+="text like ?";
            p.add(text);
            k++;
        }
        System.out.println(sql);
        PreparedStatement preparedStatement=getConnection().prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
        for(int i=0;i<p.size();i++){
            preparedStatement.setString(i+1,p.get(i));
        }
        ResultSet resultSet=preparedStatement.executeQuery();
        List<Policy> policies=new ArrayList<>();
        while (resultSet.next()){
            int u=1;
            policies.add(new Policy(
                    resultSet.getLong(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getDate(u++),
                    resultSet.getDate(u++),
                    resultSet.getDate(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getString(u++),
                    resultSet.getInt(u++)
            ));
        }
        preparedStatement.close();
        return policies;
    }
}
package org.example.utils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class See extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       String k=req.getParameter("k");
       int K=Integer.valueOf(k);
       if(K>0) K--;
        req.getSession().setAttribute("k",K);
        resp.sendRedirect("/");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doGet(req,resp);
    }
}
package org.example.utils;

import org.example.pojo.Policy;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class SelectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name=req.getParameter("name");
        String hyphen=req.getParameter("hyphen");
        String agency=req.getParameter("agency");
        String content=req.getParameter("content");
        PolicySelect select=new PolicySelect();
        List<Policy> Pol=select.select(name,hyphen,agency,content);
        List<List<Policy>> policies=new ArrayList<>();
        List<Policy> temp=new ArrayList<>();
        for(int i=0;i< Pol.size();i++){
            if(temp.size()<10){
                temp.add(Pol.get(i));
            }
            else{
                policies.add(temp);
                temp=new ArrayList<>();
                i--;
            }
        }
        if(Pol.size()%10>0) policies.add(temp);
        req.getSession().setAttribute("policies",policies);
        req.getSession().setAttribute("Num",Pol.size());
        resp.sendRedirect("/");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
         version="6.0">
    <servlet>
        <servlet-name>find</servlet-name>
        <servlet-class>org.example.utils.SelectServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>find</servlet-name>
        <url-pattern>/find</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>res</servlet-name>
        <jsp-file>/index.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>res</servlet-name>
        <url-pattern>/res</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>last</servlet-name>
        <servlet-class>org.example.utils.Last</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>last</servlet-name>
        <url-pattern>/last</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>next</servlet-name>
        <servlet-class>org.example.utils.Next</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>next</servlet-name>
        <url-pattern>/next</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>see</servlet-name>
        <servlet-class>org.example.utils.See</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>see</servlet-name>
        <url-pattern>/see</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>All</filter-name>
        <filter-class>org.example.utils.AllFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>All</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

jsp.xml

<%@ page import="java.util.List" %>
<%@ page import="org.example.pojo.Policy" %><%--
  Created by IntelliJ IDEA.
  User: 19505
  Date: 2023/4/10
  Time: 22:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
int k=Integer.valueOf(request.getParameter("k"));
int i=Integer.valueOf(request.getParameter("i"));
    List<List<Policy>> p= (List<List<Policy>>) session.getAttribute("policies");
%>
<%=p.get(k).get(i).getText()%>
</body>
</html>
<%@ page import="java.util.List" %>
<%@ page import="org.example.pojo.Policy" %>
<%@ page import="org.example.utils.SelectServlet" %>
<%@ page import="org.example.utils.PolicySelect" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: 19505
  Date: 2023/4/10
  Time: 15:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>查询界面</title>
  <meta charset="UTF-8">
  <style>
    label{
      margin: 20pt;
    }
    table
    {
      border-collapse: collapse;
      margin: 0 auto;
      text-align: center;
    }
    table td, table th
    {
      border: 1px solid #cad9ea;
      color: #666;
      height: 30px;
    }
    table thead th
    {
      background-color: #CCE8EB;
      width: 100px;
    }
    table tr:nth-child(odd)
    {
      background: #fff;
    }
    table tr:nth-child(even)
    {
      background: #F5FAFA;
    }
  </style>
</head>
<body>
<img src="LOGO.png" style="margin: 0">
<h1 style="text-align: center;color: deepskyblue;">科技政策查询系统</h1>
<form action="/find" method="post" style="text-align: center">
  <label>政策名称</label><input type="text" name="name" placeholder="请输入政策名称" style="color: orange">
  <label>发文字号</label><input type="text" name="hyphen" placeholder="请输入发文字号" style="color: orange">
  <label>发文机构</label><input type="text" name="agency">
  <label>全文检索</label><input type="text" name="content">
  <input type="submit" value="搜索" style="width: 40px;height: 30px;background: paleturquoise">
</form>
<%
  PolicySelect select=new PolicySelect();
  List<List<Policy>> policies= (List<List<Policy>>) session.getAttribute("policies");
  int k=0;
  System.out.println(session.getAttribute("k"));
  if(session.getAttribute("k")!=null) k=(int) session.getAttribute("k");
  else session.setAttribute("k",k);
  int Num=0;
  if(session.getAttribute("Num")!=null) {
    Num=(int)session.getAttribute("Num");
  }
  if(policies!=null){
    if(k>=policies.size()) k=0;
%>
<table>
  <tr>
    <th>政策名称</th>
    <th>发文机构</th>
    <th>颁布日期</th>
    <th>政策分类</th>
    <th>操作</th>
  </tr>
  <%{
    List<Policy> policyList=new ArrayList<>();
    if(k>=0&&k<policies.size())
    policyList=policies.get(k);
    if(policyList!=null){
      for(int i=0;i<policyList.size();i++){
      Policy policy=policyList.get(i);
  %>
  <tr>
    <td style="font-size: 5px;width: 400px;"><%=policy.getName()%></td>
    <td style="font-size: 5px;width: 400px;"><%=policy.getOrgan()%></td>
    <td><%=policy.getPubdata()%></td>
    <td><%=policy.getCategory()%></td>
    <td>
      <a href="detail.jsp?k=<%=k%>&i=<%=i%>" style="background: blue;color:orange;width: 50px;height: 40px;">查看</a>
    </td>
  </tr>
  <%
        }
      }
    }%>
</table>
<div style="text-align: center">
<form action="/last" style="display: inline">
  <input type="submit" value="上一页">
</form>
<%if (k+1<=policies.size()){%>
<span onclick="location.href='/see?k=<%=k+1%>'"><%=k+1%></span>
<%}%>
<%if (k+2<=policies.size()){%>
<span onclick="location.href='/see?k=<%=k+2%>'"><%=k+2%></span>
<%}%>
<%if (k+3<=policies.size()){%>
<span onclick="location.href='/see?k=<%=k+3%>'"><%=k+3%></span>
<%}%>
<%if (k+4<=policies.size()){%>
<span onclick="location.href='/see?k=<%=k+4%>'"><%=k+4%></span>
<%}%>
<%if (k+5<=policies.size()){%>
<span onclick="location.href='/see?k=<%=k+5%>'"><%=k+5%></span>
<%}%>
<form action="/next" style="display: inline">
  <input type="submit" value="下一页">
</form>
  <span style="font-size: 15pt">总共条数:<%=Num%></span>
</div>
<%}%>
</body>
</html>

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31326.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信