JSP分页页面不刷新问题

问题遇到的现象和发生背景

做JSP分页遇到问题,
第一,页面不刷新一直停留在第一页

问题相关代码

分页模型

public class PageModel<E> {
     //结果集  
    private List<E> list;  
    //查询记录数  
    private int totalRecords;   
    //每页多少条数据  
    private int pageSize;  
    //第几页  
    private int pageNo;  
      
    /** 
     * 总页数 
     * @return 
     */  
    public int getTotalPages() {  
        return (totalRecords + pageSize - 1) / pageSize;  
    }  
      
    /** 
     * 取得首页 
     * @return 
     */  
    public int getTopPageNo() {  
        return 1;  
    }  
      
    /** 
     * 上一页 
     * @return 
     */  
    public int getPreviousPageNo() {  
        if (pageNo <= 1) {  
            return 1;  
        }  
        return pageNo - 1;  
    }  
      
    /** 
     * 下一页 
     * @return 
     */  
    public int getNextPageNo() {  
        if (pageNo >= getBottomPageNo()) {  
            return getBottomPageNo();  
        }  
        return pageNo + 1;    
    }  
      
    /** 
     * 取得尾页 
     * @return 
     */  
    public int getBottomPageNo() {  
        return getTotalPages();  
    }  
    /**
     * get set函数  
     * @return
     */
    public List<E> getList() {  
        return list;  
    }  
  
    public void setList(List<E> list) {  
        this.list = list;  
    }  
  
    public int getTotalRecords() {  
        return totalRecords;  
    }  
  
    public void setTotalRecords(int totalRecords) {  
        this.totalRecords = totalRecords;  
    }  
  
    public int getPageSize() {  
        return pageSize;  
    }  
  
    public void setPageSize(int pageSize) {  
        this.pageSize = pageSize;  
    }  
  
    public int getPageNo() {  
        return pageNo;  
    }  
  
    public void setPageNo(int pageNo) {  
        this.pageNo = pageNo;  
    }  
}

数据库表,对应实体类

public class Article {
    private int id;
    private String title;
    private String author;
    private String article_content;
    private Date date;
//get and set
}

业务逻辑层,操作数据库等操作

public class ArticleDao {
    public PageModel<Article> findData(String pageNo,String pageSize){
        PageModel<Article> pageModel=null;
        DatabaseUtil databaseUtil = new DatabaseUtil();
        List<Article> list = new ArrayList<Article>();
        Connection conn = databaseUtil.openConnection();
        String sql1="select * from t_article limit ?,?"; 
        String sql2="select count(*) from t_article"; 
        PreparedStatement pstmt=null;  
        ResultSet rs1=null;
        ResultSet rs2=null;
        Article article = null;
        try {
            pstmt = conn.prepareStatement(sql1);
            pstmt.setInt(1, (Integer.parseInt(pageNo)-1)*Integer.parseInt(pageSize));  
            pstmt.setInt(2, Integer.parseInt(pageSize));
            rs1 = pstmt.executeQuery();
            while(rs1.next()) {
                article = new Article();
                article.setId(rs1.getInt("id"));
                article.setTitle(rs1.getString("title"));
                article.setAuthor(rs1.getString("author"));
                article.setArticle_content(rs1.getString("article_content"));
                article.setDate(rs1.getDate("date"));
                list.add(article);
            }
            
            rs2 = pstmt.executeQuery(sql2);
            int total=0;  
            if(rs2.next()){  
                total=rs2.getInt(1);//总的数据条数 
            }  
             pageModel=new PageModel<Article>();  
             pageModel.setPageNo(Integer.parseInt(pageNo));  
             pageModel.setPageSize(Integer.parseInt(pageSize));  
             pageModel.setTotalRecords(total);  
             pageModel.setList(list);
             
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            databaseUtil.closeConnection(conn);
            databaseUtil.closePreparedStatement(pstmt);
            databaseUtil.closeResultSet(rs1);
            databaseUtil.closeResultSet(rs2);
        }
        return pageModel;
    }
}

index.jsp 页面


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="com.chz.page.*"%>
<%
String pageSize = (String) request.getAttribute("pageSize");
String pageNo = (String) request.getAttribute("pageNo");

if(pageSize == null){
    //每页条数
    pageSize = "20";
}
if(pageNo == null){
    //当前页数
    pageNo = "1";
}

request.setAttribute("pageSize", pageSize);
request.setAttribute("pageNo", pageNo);

ArticleDao articleDao = new ArticleDao();
PageModel<Article> pageModel = articleDao.findData(pageNo, pageSize);
List<Article> list = pageModel.getList();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
    <table border="4" align="center" >
        <tr>
            <td align="center" colspan="4">文章信息</td>
        </tr>
        <tr>
            <td>编号</td>
            <td>作者</td>
            <td>时间</td>
        </tr>
        <%
        if(list==null||list.size()<1){
        %>
            <p align="center">还没有任何数据!</p>
        <%    
        }else{
            for(Iterator<Article> it = list.iterator();it.hasNext();){
                Article article = it.next();
        %>
        <tr>
            <td><%=article.getId() %></td>
            <td><%=article.getAuthor() %></td>
            <td><%=article.getDate() %></td>
        </tr>
        <%
            }
        }
        %>
        
        <tr>
            <td align="center" colspan="4">
                <a href="index.jsp?pageNo=<%=pageModel.getTopPageNo()%>&pageSize=<%=pageSize%>">首页</a>
                <a href="index.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>&pageSize=<%=pageSize%>">上一页</a>
                <a href="index.jsp?pageNo=<%=pageModel.getNextPageNo()%>&pageSize=<%=pageSize%>">下一页</a>
                <a href="index.jsp?pageNo=<%=pageModel.getBottomPageNo()%>&pageSize=<%=pageSize%>">尾页</a>
            </td>
        </tr>
    </table>
</body>
</html>

运行结果及报错内容

img

我想要达到的结果
想要达到分页的效果