javaee 后台分页 jsp+servlet+javaBean+mysql

来源:互联网 发布:2016网络新词汇 编辑:程序博客网 时间:2024/05/21 14:54
 首先后台分页需要理清分页思路,把数据库里面需要分页的信息放到List集合中,然后按照页面反馈给后台的页码对List集合进行SubList切割把切完的List传到前端进行显示。

1:分页的demo文件结构图
这里写图片描述
导入的包
这里写图片描述
2.代码

SplitPageServlet代码package ActionServlet;import java.io.IOException;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import Bean.ProjectBean;import Service.SplitPage;/** * Servlet implementation class SplitPageServlet */@WebServlet("/SplitPageServlet")public class SplitPageServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    /**     * @see HttpServlet#HttpServlet()     */    public SplitPageServlet() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        List<ProjectBean>listArr = new ArrayList<ProjectBean>();        String currrentPageString = request.getParameter("currrentPage");        String numberForSplitPage = request.getParameter("numberForSplitPage");        if( currrentPageString ==null){            currrentPageString = "1";        }        if( numberForSplitPage == null){            numberForSplitPage = "5";        }        SplitPage splitPage = new SplitPage();        try {            listArr    = splitPage.AllSplitPage(numberForSplitPage, currrentPageString);            request.setAttribute("subResult", listArr);        } catch (ClassNotFoundException | SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        System.out.println(SplitPage.pageNumber);        System.out.println(SplitPage.currentPageIndex);        request.setAttribute("pageNumber", SplitPage.pageNumber);        request.setAttribute("currentPageIndex", SplitPage.currentPageIndex);        request.getRequestDispatcher("/servlet/ShowViewIndex").forward(request, response);    }    /**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        doGet(request, response);    }}

ProjectBean代码

package Bean;public class ProjectBean {    private String projectId = null;    private String projectName = null;    private String projectType = null;    private String userNo = null;    private String projectUser = null;    public String getProjectId(){        if(projectId==null){            projectId ="";        }        return this.projectId;    }    public void setProjectId(String projectId){        this.projectId = projectId;    }    public void setProjectName(String projectName){        this.projectName = projectName;    }    public String getProjectName(){        return this.projectName;    }    public void setType(String projectType){        this.projectType = projectType;    }    public String getProjectType(){        return this.projectType;    }    public void setUserNo(String userNo){        this.userNo = userNo;    }    public String getUserNo(){        return this.userNo;    }    public void setProjectUser(String projectUser){        this.projectUser = projectUser;    }    public String getProjectUser(){        return this.projectUser;    }}

SplitPageBean 代码

package Bean;public class SplitPageBean {    private int allitems;//总的记录数    private int currentRecord;//当前的记录数    private int lastPageRecord ; //上一页记录数开始数    private int nextPageRecord;//下一页记录数开始数    private int lastPageIndex ; //上一页    private int nextPageIndex;//下一页    private int currentPageIndex;//当前页    private int numberForSplitPage;//每页分的数量    private int allPageNumber;    public int getAllitems(){        return this.allitems;    }    public void setAllitems(int allitems){        this.allitems = allitems;    }    public int getCurrentRecord(){        return this.currentRecord;    }    public void setCurrentRecord(int currentPageIndex){        this.currentRecord = currentPageIndex * this.numberForSplitPage;    }    public int getlastPageRecord(){        return this.lastPageRecord;    }    public void setLastPageRecord(int lastPageIndex){        this.lastPageRecord = lastPageIndex * this.numberForSplitPage;    }    public int getNextPageRecord(){        return this.nextPageRecord;    }    public void setNextPageRecord(int nextPageIndex){        this.nextPageRecord = nextPageIndex * this.numberForSplitPage;    }    public int getLastPageIndex(){        return this.lastPageIndex;    }    public void setLastPageIndex(int currentPageIndex){        this.lastPageIndex = currentPageIndex - 1;    }    public int getNextPageIndex(){        return this.nextPageIndex;    }    public void setNextPageIndex(int currentPageIndex){        this.nextPageIndex = currentPageIndex - 1;    }    public int getCurrentPageIndex(){        return this.currentPageIndex;    }    public void setCurrentPageIndex(int currentPageIndex){        this.currentPageIndex = currentPageIndex;    }    public int getNumberForSplitPage(){        return this.numberForSplitPage;    }    public void setNumberForSplitPage(int numberForSplitPage){        this.numberForSplitPage = numberForSplitPage;    }    public int getAllPageNumber(){        return this.allPageNumber;    }    public void setAllPageNumber(int allitems){        this.allPageNumber = allitems / this.numberForSplitPage + 1;    }}

QueryProject代码

package Dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import Bean.ProjectBean;import Service.ConnectDataBase;public class QueryProject {    private List<ProjectBean> listArr = new ArrayList();    public List<ProjectBean> QueryAllProject() throws ClassNotFoundException, SQLException{        Connection conn=null;        Statement stat=null;        ResultSet rs=null;        ConnectDataBase connectDataBase =new ConnectDataBase();        conn = connectDataBase.connect();        stat = conn.createStatement();        rs = stat.executeQuery("select*from project");        while(rs.next()){            ProjectBean projectBean = new ProjectBean();            projectBean.setProjectId(rs.getString("projectId"));            projectBean.setProjectName(rs.getString("projectName"));            projectBean.setType(rs.getString("projectType"));            projectBean.setUserNo(rs.getString("UserNo"));            projectBean.setProjectUser(rs.getString("projectUser"));            listArr.add(projectBean);        }        connectDataBase.close(stat, conn);        return listArr;    }//    public static void main(String[] args) throws ClassNotFoundException, SQLException{//        List<ProjectBean> listArr = new ArrayList();//        QueryProject queryProject = new QueryProject();//        listArr = queryProject.QueryAllProject();//        ProjectBean projectBean = new ProjectBean();//        projectBean = listArr.get(0);//        System.out.println(projectBean.getProjectId());//        projectBean = listArr.get(2);//        System.out.println(projectBean.getProjectId());//        System.out.println(listArr.size());//    }}

ConenctDataBase代码

package Service;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class ConnectDataBase {    private String url = "jdbc:mysql://localhost:3306/zhongchuangweb";    private String user = "root";    private String password = "12345";    public Connection connect() throws ClassNotFoundException, SQLException{            Class.forName("com.mysql.jdbc.Driver");            Connection conn = DriverManager.getConnection(url,user,password);            return conn;    }    //关闭数据库资源    public void close(Statement stat,Connection conn) throws SQLException{        if(stat!=null){               stat.close();        }        if(conn!=null){               conn.close();        }    }}

SplitPage代码

package Service;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import Bean.ProjectBean;import Bean.SplitPageBean;import Dao.QueryProject;public class SplitPage {    public static int pageNumber;    public static int currentPageIndex;    private List<ProjectBean> splitArr = new ArrayList();    {        QueryProject queryProject = new QueryProject();        try {            splitArr = queryProject.QueryAllProject();        } catch (ClassNotFoundException | SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public List<ProjectBean> AllSplitPage(String numberForSplitPage,String requestPageIndex) throws ClassNotFoundException, SQLException{        List<ProjectBean> result = new ArrayList<ProjectBean>();        int numberForSplitPageInt = Integer.parseInt(numberForSplitPage);//每页的数量        int requestPageIndexInt = Integer.parseInt(requestPageIndex);//请求的页码        SplitPageBean splitPageBean = new SplitPageBean();        splitPageBean.setAllitems(splitArr.size());//设置总的记录数        splitPageBean.setNumberForSplitPage(numberForSplitPageInt);//设置每页的记录数量        splitPageBean.setAllPageNumber(splitArr.size());        pageNumber = splitPageBean.getAllPageNumber();        splitPageBean.setCurrentPageIndex(requestPageIndexInt);//设置请求页页码        currentPageIndex = splitPageBean.getCurrentPageIndex();        splitPageBean.setLastPageRecord(requestPageIndexInt-1);        if(splitPageBean.getAllitems()<splitPageBean.getNumberForSplitPage()){            result = splitArr;        }else if(splitPageBean.getCurrentPageIndex()*splitPageBean.getNumberForSplitPage() > splitPageBean.getAllitems()){            result = splitArr.subList(splitPageBean.getlastPageRecord(),splitPageBean.getAllitems());        }else{            result = splitArr.subList(splitPageBean.getlastPageRecord(),splitPageBean.getlastPageRecord()+splitPageBean.getNumberForSplitPage());//SubList用法不包含末尾索引        }        return result;    }//    public static void main(String[] args) throws ClassNotFoundException, SQLException{//        List<ProjectBean> TestResult = new ArrayList<ProjectBean>();//        ProjectBean projectBean = new ProjectBean();//        SplitPage splitPage = new SplitPage();//        TestResult = splitPage.AllSplitPage("5","1");//        projectBean = TestResult.get(0);//        System.out.println(projectBean.getProjectId());//        projectBean = TestResult.get(1);//        System.out.println(projectBean.getProjectId());//        projectBean = TestResult.get(2);//        System.out.println(projectBean.getProjectId());//        projectBean = TestResult.get(3);//        System.out.println(projectBean.getProjectId());//        projectBean = TestResult.get(4);//        System.out.println(projectBean.getProjectId());//        projectBean = TestResult.get(5);//        System.out.println(projectBean.getProjectId());//                //    }}

显示层

ShowViewIndex代码

package View;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class ShowViewIndex */@WebServlet("/ShowViewIndex")public class ShowViewIndex extends HttpServlet {    private static final long serialVersionUID = 1L;    /**     * @see HttpServlet#HttpServlet()     */    public ShowViewIndex() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        request.getRequestDispatcher("/NewFile.jsp").forward(request, response);    }    /**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        doGet(request, response);    }}

jsp页面代码

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>数据库内容分页显示</title><style type="text/css">*{ margin:0; padding:0;}ul li{ width:50px; height:24px; line-height:24px; float:left; margin-left:0px; display:inline; margin-top:5px; overflow:hidden;}ul li button{width:50px;height:24px;margin:0px;padding:0px;}</style></head><body>    <table>        <thead>            <tr>                <th  style="text-align:center;">编号</th>                <th  style="text-align:center;">名称</th>                <th  style="text-align:center;">类型</th>                <th  style="text-align:center;">学号</th>                <th  style="text-align:center;">负责人</th>            </tr>        </thead>        <tbody>                <c:forEach var="project" items="${subResult}">                    <tr>                        <td><c:out value="${project.projectId}"></c:out></td>                        <td><c:out value="${project.projectName}"></c:out></td>                        <td><c:out value="${project.projectType}"></c:out></td>                        <td><c:out value="${project.userNo}"></c:out></td>                        <td><c:out value="${project.projectUser}"></c:out></td>                    </tr>                </c:forEach>        </tbody>    </table>    <div align = "center">                <ul>                <c:choose>                    <c:when test="${currentPageIndex>1}">                         <li><a href="${pageContext.request.contextPath}/servlet/SplitPageServlet?currrentPage=${currentPageIndex-1}"><button><</button></a></li>                    </c:when>                    <c:otherwise>                         <li><a><button><</button></a></li>                    </c:otherwise>                </c:choose>                 <%                              int i =(Integer)request.getAttribute("pageNumber");                            for (int j=0;j<i;j++)                            {%>                         <li><a href="${pageContext.request.contextPath}/servlet/SplitPageServlet?currrentPage=<%=j+1%>"><button><%=j+1%></button></a></li>                       <%}%>                 <c:choose>                    <c:when test="${currentPageIndex+1<=pageNumber}">                         <li><a href="${pageContext.request.contextPath}/servlet/SplitPageServlet?currrentPage=${currentPageIndex+1}"><button>></button></a></li>                    </c:when>                    <c:otherwise>                         <li><a><button>></button></a></li>                    </c:otherwise>                </c:choose>                </ul>           </div></body></html>

xml代码

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <display-name></display-name>   <welcome-file-list>    <welcome-file>SplitPageServlet</welcome-file>  </welcome-file-list>  <servlet>    <servlet-name>ShowViewIndex</servlet-name>    <servlet-class>View.ShowViewIndex</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>ShowViewIndex</servlet-name>    <url-pattern>/servlet/ShowViewIndex</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>SplitPageServlet</servlet-name>    <servlet-class>ActionServlet.SplitPageServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>SplitPageServlet</servlet-name>    <url-pattern>/servlet/SplitPageServlet</url-pattern>  </servlet-mapping></web-app>

运行结果展示
这里写图片描述

数据库describe

这里写图片描述
同时在本次demo中认识到了xml的中使用欢迎界面通过 静态界面(jsp html) 还可以使用servlet直接用servlet名即可。

初学java和javaee 写一点自己做的东西,代码写的不是很规范,不喜勿喷奋斗

1 0
原创粉丝点击