来源:韩顺平之jsp视频教程
知识点:
1:如何在jsp页面间跳转
2:jsp如何去操作数据库
3:jsp中如何显示数据/如何分页
1 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 8 9 1011 12 My JSP 'login.jsp' starting page 13 14 15 16 17 18 19 22 23 24 25 2627 用户登录 28 37 38
29 36
1 <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 8 9 1011 12 My JSP 'loginCl.jsp' starting page 13 14 15 16 17 18 19 22 23 24 25 26 <%27 //接受用户名和密码,完成对用户的验证28 String u=request.getParameter("username");29 String p=request.getParameter("passwd");30 31 //到数据库中去验证用户32 //1.加载驱动33 Class.forName("com.mysql.jdbc.Driver");34 //2.得到链接35 Connection ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/spdb1","root","lszget"); //建立数据库链接36 37 //3.创建Statement38 Statement stmt=ct.createStatement();39 40 //4.查询41 ResultSet rs=stmt.executeQuery("select passwd from users where username='"+u+"'");42 43 //根据结果判断44 if(rs.next()){45 //说明用户存在46 if(rs.getString(1).equals(p)){47 48 //一定合法49 response.sendRedirect("wel.jsp?user="+u);50 51 }else{52 //密码错误53 response.sendRedirect("login.jsp?errNo=1");54 }55 }else{56 //说明用户名错了57 response.sendRedirect("login.jsp?errNo=2");58 }59 60 61 62 63 /* 64 //验证65 if(u.equals("shunping")&&p.equals("123")){66 67 //合法,跳转wel.jsp68 //如何而将loginCl.jsp得到的数据传给下一个页面69 //1.cookie 2.session 3.response.sendRedirect70 response.sendRedirect("wel.jsp?user="+u);71 }else{72 //不合法,跳转到login.jsp73 response.sendRedirect("login.jsp");74 }75 */76 77 %>78 79 80
1 <%@page import="javax.sound.midi.SysexMessage"%> 2 <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 9 10 1112 13 My JSP 'wel.jsp' starting page 14 15 16 17 18 19 20 23 24 25 26 27 28 登陆成功!!欢迎<%=request.getParameter("user")%> 29 返回重新登录 30
31用户信息列表
32 33 <% 34 //定义四个分页变量,作用域在整个页面 35 int pageSize=3;//每页显示多少条记录 36 int pageNow=1;//默认显示第一页 37 int pageCount=0;//该值是通过pageSize和rowCount计算 38 int rowCount=0;//该值从数据库中查询 39 40 //接受用户希望显示的页数(pageNow) 41 String s_pageNow=request.getParameter("pageNow"); 42 if(s_pageNow!=null){ 43 //接受到pageNow 44 pageNow =Integer.parseInt(s_pageNow); 45 System.out.println("pageNow =Integer.parseInt(s_pageNow);"); 46 } 47 48 //查询得到rowCount 49 //1.加载驱动 50 Class.forName("com.mysql.jdbc.Driver"); 51 //2.得到链接 52 Connection ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/spdb1","root","lszget"); 53 54 //3.创建Statement 55 Statement stmt=ct.createStatement(); 56 57 //4.查询 58 ResultSet rs=stmt.executeQuery("select count(*) from users "); 59 //请注意一定要rs.next() 60 if(rs.next()){ 61 62 rowCount=rs.getInt(1); 63 64 65 } 66 //计算pageCount 67 if(rowCount%pageSize==0){ 68 pageCount=rowCount/pageSize; 69 }else{ 70 71 pageCount=rowCount/pageSize+1; 72 73 } 74 75 //查询出需要显示的记录 76 /*实现类似top的功能,在SQL Server中和MySQL中使用到的SQL语句是不同的 77 1、在SQL Server中,我们使用 select top N * from tablename来查询tablename表中前N条记录 78 select * from users limit "+pageSize*(pageNow-1)+" ,"+pageSize+" 79 2、在MySQL中,则使用select * from users limit M,N ,M表示从第M+1条记录开始,N表示返回N条记录 80 rs=stmt.executeQuery("select "+pageSize+" * from users where userId not in (select top " 81 +pageSize*(pageNow-1)+" userId from users)"); 82 数据库数据成倍增加 83 INSERT INTO users(username,passwd,email,grade)SELECT username,passwd,email,grade FROM users 84 */ 85 86 rs=stmt.executeQuery("select * from users limit "+pageSize*(pageNow-1)+" ,"+pageSize+" "); 87 88 //显示 89 %> 90 91 92
用户id | 用户名字 | 用户密码 | 电子邮件 | 用户级别 |
<%=rs.getInt(1)%> | <%=rs.getString(2)%> | 103<%=rs.getString(3)%> | <%=rs.getString(4)%> | 104<%=rs.getInt(5) %> |