用户列表 java_三个jsp页面+Java片段实现的用户登录和用户列表查询[带分页]

本文展示了如何使用Java和JSP创建用户登录系统,并实现分页查询用户列表的功能。通过创建数据库表、登录页面(login.jsp)、用户查询(loginCl.jsp)和展示页面(wel.jsp),详细讲解了数据库连接、SQL查询以及分页处理的过程。
摘要由CSDN通过智能技术生成

和Servlet功能需求一样

439018a11353a26a42905fa453c6e474.png

数据库:

CREATE DATABASE user;

USE user;

CREATE TABLE `user` (

`userId` int(11) NOT NULL AUTO_INCREMENT,

`userName` varchar(32) NOT NULL,

`password` varchar(64) NOT NULL,

`email` varchar(50) DEFAULT NULL,

`grade` char(2) DEFAULT NULL,

PRIMARY KEY (`userId`)

) ENGINE=InnoDB AUTO_INCREMENT=836 DEFAULT CHARSET=utf8;

login.jsp:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

登录页面

用户登录


用户名:

密   码:

loginCl.jsp:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'login.jsp' starting page

// 接收参数

String userName = request.getParameter("userName");

String password = request.getParameter("password");

// 数据库连接参数

String DRIVERCLASS = "com.mysql.jdbc.Driver";

String URL = "jdbc:mysql://localhost:3306/servlet?useUnicode=true&characterEncoding=UTF-8";

String USRENAME = "root";

String PASSWORD = "123456";

// 连接数据库

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

Class.forName(DRIVERCLASS);

conn = DriverManager.getConnection(URL, USRENAME, PASSWORD);

String sql = "SELECT userName, password FROM user WHERE userName = '" + userName + "' LIMIT 1";

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

// 进行验证

boolean flag = false;

if (rs.next()) {// 用户存在

// 数据库中的用户名和密码

String userName_db = rs.getString("userName");

String password_db = rs.getString("password");

// 验证密码

if (password_db.equals(password)) {

HttpSession hs = request.getSession();

hs.setAttribute("userName", userName);

hs.setMaxInactiveInterval(14*24*60*60);

request.getRequestDispatcher("wel.jsp?userName_db="

+ userName_db).forward(request, response);

} else {

response.sendRedirect("login.jsp?loginErrorInfo=Error-Password");

}

} else {// 用户不存在

response.sendRedirect("login.jsp?loginErrorInfo=Error-UserName");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (rs != null) {

rs.close();

rs = null;

}

if (ps != null) {

ps.close();

ps = null;

}

if (conn != null) {

conn.close();

conn = null;

}

}

%>

wel.jsp:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

登录成功

// 获取文本框的值

var goObj = document.getElementById("go");

function checkGoTo() {

if (form1.dy_pageNow.value == "") {

alert("请输入要跳转的页数");

return false;

}

var pageCount = form1.pageCount.value;

if ((form1.dy_pageNow.value) > pageCount) {

alert("输入的页数过大, 最大页数: " + pageCount);

return false;

}

if (form1.dy_pageNow.value == 0) {

alert("输入页数应该大于0");

return false;

}

var regex = /^\d+$/;

if (!regex.test(form1.dy_pageNow.value)) {

alert("请输入数字");

form1.dy_pageNow.value.value= "";

return false;

}

}

String userName = (String) request.getSession().getAttribute("userName");

%>

登录成功, 欢迎:

返回登录


// 定义4个分页变量

int pageSize = 3 ;// 一页多少条

int pageNow = 1 ;// 希望第几页

int rowCount = 0 ;// 多少条

int pageCount = 0 ;// 多少页

// 接收pageNow

String dy_pageNow = request.getParameter("dy_pageNow");

if (dy_pageNow != null) {

pageNow = Integer.parseInt(dy_pageNow);

}

// 数据库连接参数

String DRIVERCLASS = "com.mysql.jdbc.Driver";

String URL = "jdbc:mysql://localhost:3306/servlet?useUnicode=true&characterEncoding=UTF-8";

String USRENAME = "root";

String PASSWORD = "123456";

// 连接数据库

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

String sql = null;

try {

Class.forName(DRIVERCLASS);

conn = DriverManager.getConnection(URL, USRENAME, PASSWORD);

// ==============================用户列表============================

sql = "SELECT * FROM user LIMIT "

+ (pageNow-1)*pageSize + ", " + pageSize;

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

%>

用户列表

userIduserNamepasswordemailgrade

while (rs.next()) {

%>

}

%>

// ==============================分页============================

// 得到rowCount

ps = conn.prepareStatement("SELECT count(*) FROM user");

rs = ps.executeQuery();

if (rs.next()) {

rowCount = rs.getInt(1);

}

// 计算pageCount

if (rowCount % pageSize == 0) {

pageCount = rowCount / pageSize;

} else {

pageCount = rowCount / pageSize + 1;

}

// 分页超链接

%>

首页

if (pageNow > 1) {

%>

上一页

}

// 声明一个参数pageMax, 用于只显示到pageCount

int pageMax = ((pageCount-pageNow) <= 5) ? pageCount : (pageNow+4);

for (int i=pageNow; i<=pageMax; i++) {

%>

[]

}

if (pageNow < pageCount) {

%>

下一页

}

%>

尾页

跳转到

页  

当前页:   , 

共  页

} catch(Exception e) {

e.printStackTrace();

} finally {

if (rs != null) {

rs.close();

rs = null;

}

if (ps != null) {

ps.close();

ps = null;

}

if (conn != null) {

conn.close();

conn = null;

}

}

%>

测试:

60cc5d021d369881e5f0d5b7c542cfca.png

617cc978225c5971c2f11375fd371398.png

ced98bc2d1a467e4a4e337e5a6c5222f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值