要将大量记录分为多个部分, 我们使用分页。它只允许用户显示部分记录。在单个页面中加载所有记录可能需要一些时间, 因此始终建议创建分页。在servlet中, 我们可以轻松开发分页示例。
【Servlet中的分页示例图解】在这个servlet分页示例中, 我们使用MySQL数据库来获取记录。
在这里, 我们在”
测试”
数据库中创建了”
emp”
表。 emp表具有三个字段:id, 名称和薪金。要么手动创建表并插入记录, 要么导入我们的sql文件。
index.html
<
a href="http://www.srcmini.com/ViewServlet?page=1">
View Employees<
/a>
ViewServlet.java
package com.srcmini.servlets;
import java.io.IOException;
import java.io.PrintWriter;
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 com.srcmini.beans.Emp;
import com.srcmini.dao.EmpDao;
@WebServlet("/ViewServlet")
public class ViewServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String spageid=request.getParameter("page");
int pageid=Integer.parseInt(spageid);
int total=5;
if(pageid==1){}
else{
pageid=pageid-1;
pageid=pageid*total+1;
}
List<
Emp>
list=EmpDao.getRecords(pageid, total);
out.print("<
h1>
Page No: "+spageid+"<
/h1>
");
out.print("<
table border='1' cellpadding='4' width='60%'>
");
out.print("<
tr>
<
th>
Id<
/th>
<
th>
Name<
/th>
<
th>
Salary<
/th>
");
for(Emp e:list){
out.print("<
tr>
<
td>
"+e.getId()+"<
/td>
<
td>
"+e.getName()+"<
/td>
<
td>
"+e.getSalary()+"<
/td>
<
/tr>
");
}
out.print("<
/table>
");
out.print("<
a href='http://www.srcmini.com/ViewServlet?page=1'>
1<
/a>
");
out.print("<
a href='http://www.srcmini.com/ViewServlet?page=2'>
2<
/a>
");
out.print("<
a href='http://www.srcmini.com/ViewServlet?page=3'>
3<
/a>
");
out.close();
}
}
Emp.java
package com.srcmini.beans;
public class Emp {
private int id;
private String name;
private float salary;
//getters and setters
}
EmpDao.java
package com.srcmini.dao;
import com.srcmini.beans.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class EmpDao { public static Connection getConnection(){
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "", "");
}catch(Exception e){System.out.println(e);
}
return con;
} public static List<
Emp>
getRecords(int start, int total){
List<
Emp>
list=new ArrayList<
Emp>
();
try{
Connection con=getConnection();
PreparedStatement ps=con.prepareStatement("select * from emp limit "+(start-1)+", "+total);
ResultSet rs=ps.executeQuery();
while(rs.next()){
Emp e=new Emp();
e.setId(rs.getInt(1));
e.setName(rs.getString(2));
e.setSalary(rs.getFloat(3));
list.add(e);
}
con.close();
}catch(Exception e){System.out.println(e);
}
return list;
}
}
下载SQL文件 下载SQL文件
下载mysql-connector.jar文件 下载mysql-connector.jar
下载专案 下载此示例(在Eclipse中开发)
输出
文章图片
文章图片
文章图片
文章图片
推荐阅读
- Servlet中的SendRedirect用法示例
- Servlet使用JavaMail API发送电子邮件示例
- AndroidSDK的默认安装路径
- springboot[2.3.4.RELEASE]application.properties常用配置
- SpringApplication.run(xxx.class, args)背后的东东——整体脉络
- Android | 零代码快速集成AGC崩溃服务
- android 二级列表 二级目录
- leetcode407 Trapping rain water II
- vue+uni-app商城实战 | 第一篇(有来小店微信小程序快速开发接入Spring Cloud OAuth2认证中心完成授权登录)