首先后台分页需要理清分页思路,把数据库里面需要分页的信息放到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的中使用欢迎界面通过 <welcome-file-list> <welcome-file>静态界面(jsp html)</welcome-file> </welcome-file-list>还可以使用servlet直接用servlet名即可。
初学java和javaee 写一点自己做的东西,代码写的不是很规范,不喜勿喷。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持硕编程。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!