效果图:
index.jsp(你没看错就是这么直男展示)
userServlet?page=1页面
userServlet?page=2页面
userServlet?page=3页面
代码:
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<a href="userServlet">查看用户信息</a>
</body>
</html>
showUser.jsp
<%@ page import="cn.test.UserInfoList" %>
<%@ page import="cn.test.UserInfoTrace" %>
<%@ page import="java.util.Vector" %>
<%@ page import="java.util.List" %>
<%@ page import="cn.jdbc.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<table>
<tr>
<td align="center" colspan="4">展示所有用户信息</td>
</tr>
<tr>
<td>ID</td>
<td>用户名</td>
<td>密码</td>
<td>邮箱</td>
</tr>
<%
List<User> list = (List<User>) request.getAttribute("list");
for (User user : list) {
%>
<tr>
<td><%=user.getId()%></td>
<td><%=user.getUsername()%></td>
<td><%=user.getPassword()%></td>
<td><%=user.getEmail()%></td>
</tr>
<%
}
%>
<tr>
<td colspan="4">
<%=request.getAttribute("bar")%>
</td>
</tr>
</table>
</body>
</html>
User.java
package cn.jdbc;
public class User {
public static final int PAGE_SIZE = 2;
private int id;
private String username;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
UserDao.java
package cn.jdbc;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Driver;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
//获取数据库连接
public static Connection getConnecion() {
Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/showUser";
String user = "root";
String password = "qiuqiuqiu";
conn = (Connection) DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return conn;
}
//分页查询用户
public List<User> find(int page) {
List<User> list = new ArrayList<>();
Connection conn = getConnecion();
String sql = "select * from t_user order by id desc limit ?,?";
try{
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, (page-1) * User.PAGE_SIZE);
ps.setInt(2, User.PAGE_SIZE);
ResultSet rs = ps.executeQuery();
while(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
list.add(user);
}
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public int findCount() {
int count = 0;
Connection conn = getConnecion();
String sql = "select count(*) from t_user";
try{
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()){
count = rs.getInt(1);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
}
userServlet.java
package cn.jdbc;
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 java.io.IOException;
import java.util.List;
//servlet注解
@WebServlet("/userServlet")
public class userServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int currPage = 1;
int pages;
int count;
if(req.getParameter("page") != null){
currPage = Integer.parseInt(req.getParameter("page"));
}
//实例化dao
UserDao dao = new UserDao();
//查询本页所有用户信息
List<User> list = dao.find(currPage);
req.setAttribute("list", list);
count = dao.findCount();
if(count % User.PAGE_SIZE == 0){
pages = count / User.PAGE_SIZE;
}else{
pages = count / User.PAGE_SIZE + 1;
}
StringBuffer sb = new StringBuffer();
for(int i=1; i<=pages; i++){
if(i == currPage){
sb.append("[").append(i).append("]");
}else{
sb.append("<a href='userServlet?page=").append(i).append("'>").append(i).append("</a>");
}
sb.append(" ");
}
//将分页条的字符串放到request中
req.setAttribute("bar", sb.toString());
//转发到product_list.jsp页面
req.getRequestDispatcher("showUser.jsp").forward(req, resp);
}
}