用户列表 java_三个jsp页面+Java片段实现的用户登录和用户列表查询[带分页]
和Servlet功能需求一样
数据库:
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();
%>
用户列表
userId | userName | password | grade |
---|
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;
}
}
%>
测试:
用户列表 java_三个jsp页面+Java片段实现的用户登录和用户列表查询[带分页]相关推荐
- 编辑写三个jsp页面,include动作标记的用法
编写三个jsp页面:mian.jsp,circle.jsp和ladder.jsp , 将三个jsp页面保存在同一个web服务目录中.main.jsp使用include动作标记加载circle.jsp ...
- 网站开发进阶(三十七)JSP页面跳转问题解决
JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...
- java package com.xq.algorithm,登录模块的进化史,带大家回顾java学习历程(一)
一直在想着写点特别点的东西,让有兴趣学编程的人确实能学到点干货,今天就来随意写写. 大家在网上查找资料看到最多的demo估计就是登录功能的演示了,为何大家偏爱拿登录来做demo呢?因为行业应用类程序的 ...
- 手机浏览器java_三款最热java手机浏览器横评(组图)
第五回合:添加和备份书签 添加书签是最常用的功能,存储书签之后方便下次直接访问.三大浏览器都可以便捷的添加书签,但是OperaMini不支持备份书签,更换手机或者重装手机浏览器之后,书签也将丢失.UC ...
- Java实现微信小程序登录 获取用户信息
小程序比公众号授权登录 更加简单 其实没什么是后台需要处理的 前端传过来一个code 我们保存以下通过code获取过来的openid就可以 其他的用户信息 前端小程序那边可以获取. 首先既然是小程序登 ...
- JavaWeb(八)——JSP(Java服务器端页面)
文章目录 1. JSP定义 2. JSP原理 3. JSP基础语法 4. JSP指令 5. 九大内置对象 6. JSP标签.JSTL标签.EL表达式 1. JSP定义 Java Server Page ...
- java程序设计与【j2ee中间件技术】/【软件开发技术(III)】-实验四-编写简单的jsp页面
目录 题目1 1 题目说明 2 实验设计 3 运行界面截图与说明 4 代码 login.jsp success.jsp validate.jsp 题目2 1 题目说明 2 实验设计 3 运行界面截图与 ...
- SparkCore项目实战 需求一Top10热门品类 需求二Top10热门品类下每个品类的Top10活跃用户统计 需求三计算页面单跳转换率
目录 数据格式简介 需求一:Top10热门品类(普通算子实现) 优化:需求一(使用ReduceByKey进行预聚合) 优化:需求一(采用累加器,避免shuffle过程) 需求二:Top10热门品类下每 ...
- JSP是不是Java发展史上的一大败笔?
JSP一个年代传奇人物,它的诞生成果了网络的三国鼎立的局势,可是,几年的结构的风烟席卷,让JSP逐渐淡出这个前史舞台,有人不由宣布这样的感叹,JSP是不是Java开展史上的一大败笔呢? 查询样本 让咱 ...
最新文章
- SpringIOC源码分析总结
- JBoss AS 7类加载说明
- 【SQL Server 学习系列】-- sql 随机生成中文名字
- OpenCL “速成”冲刺【第一天】
- java try的用法_Java中try、catch的使用方法
- react native 0.56.0
- 小白学数据分析-----ARPDAU的价值
- Win10编译SqlCipher步骤
- SQL Server2012内存性能计数器和内存DMV的变化
- 全文索引的使用(二)--使用同义词库 (转)
- mac tree命令
- android adb连接多个夜神模拟器,夜神安卓模拟器连接adb的具体操作流程
- Ubuntu Firefox浏览器安装Flash插件
- 高中知识复习——log2(n)
- 鼠标式光流传感器与多传感器融合
- Java的封装继承多态简介与实例
- 独立开发者+开源项目,超级个体的价值模式
- 我的世界java版是免费,我的世界Java版
- HDU2099 整除的尾数
- android小问题备忘