分页技术具体代码及其实现效果(基于java连接mysql)

1.用户登录界面 Login3.java

package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class Login3 extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) { try { res.setContentType("text/html;charset=utf8"); PrintWriter pw = res.getWriter(); String info1 = req.getParameter("info1"); String info2 = req.getParameter("info2"); String info3 = req.getParameter("info3"); pw.println("<html>"); pw.println("<body>"); //用户尚未登录提醒 if(info1!=null) { pw.println("<span>您还没有登录</span>"); } if(info2 != null) { pw.println("<span>您的密码错误</span>"); } if(info3 != null) { pw.println("<span>您的用户名错误</span>"); } pw.println("<h1>用户登录</h1>"); pw.println("<form action=loginCl3>"); pw.println("用户名:<input type=text name=username><br/>"); pw.println("密码:<input type=pasword name=passwd><br/>"); pw.println("<input type=submit value=login>"); pw.println("</form>"); pw.println("</body>"); pw.println("</html>"); }catch(Exception ex) { ex.printStackTrace(); } } public void doPost(HttpServletRequest req,HttpServletResponse res) { this.doGet(req,res); } }
2.业务逻辑处理 LoginCl3.java

package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class LoginCl3 extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) { //声明Connection对象 Connection con=null; Statement stmt=null; ResultSet rs=null; try { String user = req.getParameter("username"); String pass = req.getParameter("passwd"); //加载JDBC驱动 Class.forName("com.mysql.jdbc.Driver"); //连接数据库(数据库url,数据库的用户名,数据库密码) con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_user","root",""); //创建Statement类对象,用于执行sql语句 stmt = con.createStatement(); //返回记录结果 //rs = stmt.executeQuery("select * from users where username='"+user+"' and passwd='"+pass+"'"); //修改sql漏洞 rs = stmt.executeQuery("select passwd from users where username='"+user+"' limit 1"); //存在该用户 if(rs.next()){ //得到数据库中该用户的密码 String dbPasswd = rs.getString(1); if(dbPasswd.equals(pass)) { HttpSession hs = req.getSession(true); //添加session属性 hs.setAttribute("uname",user); //设置存在时间 hs.setMaxInactiveInterval(20); //跳转到欢迎页面 res.sendRedirect("wel3?user="+user); }else { res.sendRedirect("login3?info2=err2"); } }else { res.sendRedirect("login3?info3=err3"); } }catch(Exception ex) { ex.printStackTrace(); }finally { try { if(rs!=null) { rs.close(); } if(stmt!=null) { stmt.close(); } if(con!=null) { con.close(); } }catch(Exception ex) { ex.printStackTrace(); } } } public void doPost(HttpServletRequest req,HttpServletResponse res) { this.doGet(req,res); } }
3.用户欢迎界面 Wel3.java

package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class Wel3 extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) { //数据库 Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try {
           


//html格式 res.setContentType("text/html;charset=utf8"); //分页 int pageCount=0; //总共页数 int pageSize=3; //每页记录数 int rowCount=0; //总共记录数 int pageNow=1; //希望当前页数 //动态的接收pageNow String sPageNow = req.getParameter("pageCur"); if(sPageNow!=null) { pageNow = Integer.parseInt(sPageNow); } PrintWriter pw = res.getWriter(); //获取session属性 HttpSession hs = req.getSession(true); String name = (String)hs.getAttribute("uname"); //session不存在 if(name==null) { //跳转登陆页面,提醒用户未登录 res.sendRedirect("login3?info1=err1"); } //session存在 //数据库连接 Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_user","root",""); ps = con.prepareStatement("select count(*) from users"); rs = ps.executeQuery(); if(rs.next()) { rowCount = rs.getInt(1); } ps = con.prepareStatement("select * from users limit ?,?"); //给?赋值 ps.setInt(1,(pageNow-1)*pageSize); ps.setInt(2,pageSize); rs=ps.executeQuery(); //欢迎用户(用户名) pw.println("Welcome your coming,"+name+"<br/>"); //图片 pw.println("<img width=100px height=100px src=imgs/KSYoon.jpg>"); //输出分页后users表中信息 pw.println("<table border=1>"); pw.println("<tr>"); pw.println("<th>userid</th>"); pw.println("<th>username</th>"); pw.println("<th>passwd</th>"); pw.println("<th>email</th>"); pw.println("<th>priority</th>"); pw.println("</tr>"); while(rs.next()) { pw.println("<tr>"); pw.println("<td>"+rs.getInt(1)+"</td>"); pw.println("<td>"+rs.getString(2)+"</td>"); pw.println("<td>"+rs.getString(3)+"</td>"); pw.println("<td>"+rs.getString(4)+"</td>"); pw.println("<td>"+rs.getInt(5)+"</td>"); pw.println("</tr>"); } pw.println("</table>"); //计算pageCount if(rowCount % pageSize == 0) { pageCount = rowCount / pageSize; }else { pageCount = rowCount / pageSize + 1; } //上一页 if(pageNow!=1) { pw.println("<a href=wel3?pageCur="+(pageNow-1)+">上一页</a>"); } //页数链接 for(int i=pageNow;i<pageNow+10;i++) { //想要显示的当前页 pw.println("<a href=wel3?pageCur="+i+">"+i+"</a>"); } //下一页 if(pageNow!=pageCount) { pw.println("<a href=wel3?pageCur="+(pageNow+1)+">下一页</a>"); } }catch(Exception ex) { ex.printStackTrace(); }finally { try { if(rs!=null) { rs.close(); } if(ps!=null) { ps.close(); } if(con!=null) { con.close(); } }catch(Exception ex) { ex.printStackTrace(); } } } public void doPost(HttpServletRequest req,HttpServletResponse res) { this.doGet(req,res); } }
4.mysql数据库

CREATE DATABASE db_user CHARACTER SET utf8; CREATE TABLE users ( userid TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username varchar(20), passwd varchar(20), email varchar(30), priority int ); DROP TABLE users; SELECT * FROM users; INSERT INTO users(username,passwd,email,priority) VALUES('admin','admin','admin@sohu.com',1); INSERT INTO users(username,passwd,email,priority) VALUES('shunping','shunping','shunping@sohu.com',1); INSERT INTO users(username,passwd,email,priority) VALUES('tester1','tester2','tester1@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester2','tester2','tseter2@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester3','tester3','tester3@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester4','tester4','tester4@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester5','tester5','tester5@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester6','tester6','tester6@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester7','tester7','tester7@sohu.com',5); INSERT INTO users(username,passwd,email,priority) VALUES('tester8','tester8','tester8@sohu.com',5);

注意点:

(1)mysql.jar需要添加,该包下载地址mysql.jar下载

(2) 生成大量记录sql语句:

insert into users(username,passwd,email,priority) select users(username,passwd,email,priority) from users;

实现效果:

(1)开启tomcat,在登录界面输入用户信息(此处填写的信息是与数据库某条记录一致),若信息正确可跳转到欢迎界面

 

(2)欢迎界面将用户名输出,默认显示第一页users表中前三条记录

(3)当点击下一页时,当前页递增(显示的记录信息也随着改变),若点击某个页数(该页数非1)时,该页数左边会出现上一页链接,并且该页数为可显示的最小页数 

posted @ 2018-08-03 10:16  KSYOON  阅读(204)  评论(0编辑  收藏  举报