和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 email 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片段实现的用户登录和用户列表查询[带分页]相关推荐

  1. 编辑写三个jsp页面,include动作标记的用法

    编写三个jsp页面:mian.jsp,circle.jsp和ladder.jsp  , 将三个jsp页面保存在同一个web服务目录中.main.jsp使用include动作标记加载circle.jsp ...

  2. 网站开发进阶(三十七)JSP页面跳转问题解决

    JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...

  3. java package com.xq.algorithm,登录模块的进化史,带大家回顾java学习历程(一)

    一直在想着写点特别点的东西,让有兴趣学编程的人确实能学到点干货,今天就来随意写写. 大家在网上查找资料看到最多的demo估计就是登录功能的演示了,为何大家偏爱拿登录来做demo呢?因为行业应用类程序的 ...

  4. 手机浏览器java_三款最热java手机浏览器横评(组图)

    第五回合:添加和备份书签 添加书签是最常用的功能,存储书签之后方便下次直接访问.三大浏览器都可以便捷的添加书签,但是OperaMini不支持备份书签,更换手机或者重装手机浏览器之后,书签也将丢失.UC ...

  5. Java实现微信小程序登录 获取用户信息

    小程序比公众号授权登录 更加简单 其实没什么是后台需要处理的 前端传过来一个code 我们保存以下通过code获取过来的openid就可以 其他的用户信息 前端小程序那边可以获取. 首先既然是小程序登 ...

  6. JavaWeb(八)——JSP(Java服务器端页面)

    文章目录 1. JSP定义 2. JSP原理 3. JSP基础语法 4. JSP指令 5. 九大内置对象 6. JSP标签.JSTL标签.EL表达式 1. JSP定义 Java Server Page ...

  7. java程序设计与【j2ee中间件技术】/【软件开发技术(III)】-实验四-编写简单的jsp页面

    目录 题目1 1 题目说明 2 实验设计 3 运行界面截图与说明 4 代码 login.jsp success.jsp validate.jsp 题目2 1 题目说明 2 实验设计 3 运行界面截图与 ...

  8. SparkCore项目实战 需求一Top10热门品类 需求二Top10热门品类下每个品类的Top10活跃用户统计 需求三计算页面单跳转换率

    目录 数据格式简介 需求一:Top10热门品类(普通算子实现) 优化:需求一(使用ReduceByKey进行预聚合) 优化:需求一(采用累加器,避免shuffle过程) 需求二:Top10热门品类下每 ...

  9. JSP是不是Java发展史上的一大败笔?

    JSP一个年代传奇人物,它的诞生成果了网络的三国鼎立的局势,可是,几年的结构的风烟席卷,让JSP逐渐淡出这个前史舞台,有人不由宣布这样的感叹,JSP是不是Java开展史上的一大败笔呢? 查询样本 让咱 ...

最新文章

  1. SpringIOC源码分析总结
  2. JBoss AS 7类加载说明
  3. 【SQL Server 学习系列】-- sql 随机生成中文名字
  4. OpenCL “速成”冲刺【第一天】
  5. java try的用法_Java中try、catch的使用方法
  6. react native 0.56.0
  7. 小白学数据分析-----ARPDAU的价值
  8. Win10编译SqlCipher步骤
  9. SQL Server2012内存性能计数器和内存DMV的变化
  10. 全文索引的使用(二)--使用同义词库 (转)
  11. mac tree命令
  12. android adb连接多个夜神模拟器,夜神安卓模拟器连接adb的具体操作流程
  13. Ubuntu Firefox浏览器安装Flash插件
  14. 高中知识复习——log2(n)
  15. 鼠标式光流传感器与多传感器融合
  16. Java的封装继承多态简介与实例
  17. 独立开发者+开源项目,超级个体的价值模式
  18. 我的世界java版是免费,我的世界Java版
  19. HDU2099 整除的尾数
  20. android小问题备忘

热门文章

  1. 智能仓储管理系统分析?
  2. caj文献格式转PDF格式
  3. Leetcode每日一题:58.length-of-last-word(最后一个单词的长度)
  4. 蓝桥杯 算法训练 结点选择
  5. Storm中Topology、Worker、Executor和Task的关系
  6. vmware中按Ctrl+Alt+Del的困扰
  7. Dockerfile优化建议
  8. java基础-01基本概念
  9. Websocket教程SpringBoot+Maven整合(详情)
  10. 3、Fiddler 如何捕获Firefox的会话