基于JavaBean,JSP实现登录并显示分页信息的小系

不说废话,首先,建立要连接的数据库,我的数据库名称是collage,要显示的数据表是students,有六列,要学习并测试的可以自己建立数据库。 id:int

name:varchar

grade:int

batch:int

password:int

gxqm:varchar

JSP页面,有三个,login.jsp,loginhandle.jsp,welcome.jsp。java类有三个,Userbean用于映射数据对象,UserbeanCl用于业务逻辑处理,connDB用于建立数据库连接。直接上代码吧

login.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Login in and then enjoy yourself!</title> </head> <body> <center> 请登录 <form name="form1" action="loginhandle.jsp"> <hr color="cc00aa"> 用户名: <input type="text" name="user"> <br> 密&nbsp;&nbsp;码: <input type="password" name="password"> <br> <input type="submit" value="登录"> <input type="reset" name="重置"> </form> </center> </body> </html>

loginhandle页面:

<%@ page language="java" import="java.sql.*" import="java.util.*,com.ly.model.UserbeanCl" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>here</title>

</head> <body> <center>   <br>   <%    String u = request.getParameter("user");    String p = request.getParameter("password");          // 一、普通验证 /*     if(u.equals("Liyong")&&p.equals("woaini")){     response.sendRedirect("welcome.jsp?user="+u);//跳转到欢迎界面并传递出用户名user     }     else{      response.sendRedirect("login.jsp");     }      */    // 二、直接到数据库中验证    // DriverManager.registerDriver(new com.mysql.jdbc.Driver());    //  Class.forName("com.mysql.jdbc.Driver"); /*      try {     Class.forName("com.mysql.jdbc.Driver");    } catch (ClassNotFoundException e) {     e.printStackTrace();    }
   Connection ct = DriverManager.getConnection(      "jdbc:mysql://localhost:3306/collage", "root", "");    Statement st = ct.createStatement();    ResultSet rs = st.executeQuery("select password from students where name='"        + u + "'");    if (rs.next()) {     //说明用户名存在     if (rs.getString(1).equals(p)) {      //密码正确      response.sendRedirect("welcome.jsp?user=" + u);//跳转到欢迎界面并传递出用户名user     } else {      response.sendRedirect("login.jsp");

    }    }    rs.close();    st.close();    ct.close(); */    // 三、通过userbeanCl对用户进行验证    UserbeanCl ubc=new UserbeanCl();      if(ubc.checkUser(u,p))    {     response.sendRedirect("welcome.jsp?user=" + u);        }else {         out.println("<script>alert('密码或者用户名错误!');</script>");     Thread.sleep(1000);
    response.sendRedirect("login.jsp");     // return;            }

  %> </center> </body> </html>

welcome页面:

<%@ page language="java" import="java.util.*,com.ly.model.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome your mother!</title> </head> <body> <center>   Hello,world! <br>   <%=request.getParameter("user")%>   <br> <a href="login.jsp">返回重新登录</a>   <hr color="silver">   <br> 用户信息列表 <br>   <%   int pageNow=1;   String u=request.getParameter("user");   String s_pageNow=request.getParameter("pageNow");   if(s_pageNow!=null){    pageNow=Integer.parseInt(s_pageNow);       }   // 调用UserbeanCl的方法,完成分页显示   UserbeanCl ubc=new UserbeanCl();   int pageCount=ubc.pageCount();   ArrayList al=ubc.getUsersByPage(pageNow);      %>   <table border="1">    <tr>     <td>用户Id</td>     <td>姓名</td>     <td>班级</td>     <td>批次</td>     <td>密码</td>     <td>个性签名</td>    </tr>    <%   for(int i=0;i<al.size();i++){    Userbean usb=(Userbean)al.get(i);    // System.out.println("-----------------"+usb.getGxqm());    %>    <tr>     <td><%=usb.getId() %></td>     <td><%=usb.getName() %></td>     <td><%=usb.getGrade() %></td>     <td><%=usb.getBatch() %></td>     <td><%=usb.getPassword() %></td>     <td><%=usb.getGxqm() %></td>    </tr>    <%

   }
      %>      </table>   <br><hr color="blue"><br>   <%   //显示上一页   out.println("<a href=welcome.jsp?pageNow="+1+"&user="+u+">首页</a>");   if(pageNow!=1){    out.println("<a href=welcome.jsp?pageNow="+(pageNow-1)+"&user="+u+">上一页</a>");      }   // 显示页码   for(int i=pageNow;i<=(pageCount<(pageNow+5)?pageCount:(pageNow+5));i++){       out.println("<a href=welcome.jsp?pageNow="+i+"&user="+u+">["+i+"]</a>");      }   if(pageNow!=pageCount){    out.println("<a href=welcome.jsp?pageNow="+(pageNow+1)+"&user="+u+">下一页</a>");      }   out.println("<a href=welcome.jsp?pageNow="+pageCount+"&user="+u+">尾页</a>");   %>   </center> </body> </html>

Userbean.java实现数据对象的封装

package com.ly.model;

public class Userbean { private int id; private String name; private int grade; private int batch; private int password; private String gxqm; public int getId() {   return id; } public void setId(int id) {   this.id = id; } public String getName() {   return name; } public void setName(String name) {   this.name = name; } public int getGrade() {   return grade; } public void setGrade(int grade) {   this.grade = grade; } public int getBatch() {   return batch; } public void setBatch(int batch) {   this.batch = batch; } public int getPassword() {   return password; } public void setPassword(int password) {   this.password = password; } public String getGxqm() {   return gxqm; } public void setGxqm(String gxqm) {   this.gxqm = gxqm; } }

connDB.java实现数据库的连接//得到数据库的连接

//得到数据库的连接 package com.ly.model; import java.sql.*; import java.util.*; public class connDB { private Connection ct=null; public Connection getConn(){        try {     Class.forName("com.mysql.jdbc.Driver");     ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/collage", "root", "");    } catch (Exception e) {         e.printStackTrace();    }      return ct; } }
UserbeanCl.java实现业务逻辑的处理

//这是一个处理类,主要封装对User表的各种操作,包括增删改查

package com.ly.model;

import java.sql.*; import java.util.ArrayList;

public class UserbeanCl { private Statement st = null; private ResultSet rs = null; private Connection ct = null; private int pageSize = 10; private int rowCount = 0; private int pageCount = 0;

// 验证用户是否存在 public int pageCount() {   try {    // 得到连接    ct = new connDB().getConn();
   st=ct.createStatement();    rs = st.executeQuery("select count(*) from students");    //    if(rs.next()){         rowCount=rs.getInt(1);    }    if(rowCount%pageSize==0){     pageCount=rowCount/pageSize;        }else{     pageCount=rowCount/pageSize+1;       }         } catch (Exception e) {    e.printStackTrace();   } finally {    shutup();   }   return pageCount;

}

public ArrayList getUsersByPage(int PageNow) {   pageCount = pageCount();     ct = new connDB().getConn();
  int startRow=(PageNow-1)*pageSize;   ArrayList al = new ArrayList();     try {    st = ct.createStatement();    rs=st.executeQuery("SELECT id,name,grade,batch,password,gxqm FROM `students` LIMIT "+startRow+","+pageSize);    while(rs.next()){         Userbean ub=new Userbean();     ub.setId(rs.getInt(1));     ub.setName(rs.getString(2));     ub.setGrade(rs.getInt(3));     ub.setBatch(rs.getInt(4));     ub.setPassword(rs.getInt(5));     ub.setGxqm(rs.getString(6));         // System.out.println(rs.getString(6));             al.add(ub);        }

  } catch (Exception e) {     e.printStackTrace();   } finally {    shutup();   }

  return al;

}

public boolean checkUser(String u, String p) {   boolean b = false;   ct = new connDB().getConn();   try {    st = ct.createStatement();    ResultSet rs = st      .executeQuery("select password from students where name='"        + u + "'");    if (rs.next()) {     // 说明用户名存在     if (rs.getString(1).equals(p)) {      // 密码正确      b = true;     } else {      return false;     }    }

  } catch (Exception e) {    e.printStackTrace();   } finally {    shutup();   }   return b;

}

public void shutup() {

  try {    if (rs != null)     rs.close();   } catch (SQLException e) {    // TODO Auto-generated catch block    e.printStackTrace();   } finally {    try {     if (st != null)      st.close();    } catch (SQLException e) {     // TODO Auto-generated catch block     e.printStackTrace();    } finally {     try {      if (ct != null)       ct.close();     } catch (SQLException e) {      // TODO Auto-generated catch block      e.printStackTrace();     }    }   }

}

}

posted @ 2012-11-08 18:36  szgzwc  阅读(297)  评论(0编辑  收藏  举报