现在的位置: 首页 > 综合 > 正文

JSP+java模式1 用户登录查询界面

2019年05月13日 ⁄ 综合 ⁄ 共 12041字 ⁄ 字号 评论关闭

login.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. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.       
  12.       </head>  
  13.     
  14.   <body bgcolor = "pink">  
  15.     
  16.   <!-- 居中对齐 -->  
  17.   <center>  
  18.   用户登录<br>  
  19.   <hr>  
  20.   <%  
  21.     String flag = request.getParameter("errNo");  
  22.     try{  
  23.       
  24.         if(flag.equals("1")){  
  25.             out.println("密码错误");  
  26.         }  
  27.         if(flag.equals("2")){  
  28.             out.println("用户名不存在");  
  29.         }  
  30.     }catch(Exception e){  
  31.         e.printStackTrace();  
  32.     }  
  33.       
  34.       
  35.    %>  
  36.   <form action = "loginCl.jsp" method="post">  
  37.     用户名:<input type="text" name="username"><br>  
  38.     密  码:<input type="password" name ="passwd"><br>  
  39.       
  40.           <input type="submit" value="提交">  
  41.       
  42.      <input type="reset" value="重置">  
  43.       
  44.       
  45.   </form>  
  46.   </center>  
  47.   </body>  
  48. </html>  

loginCl.jsp

 

  1. <%@ page language="java" import="java.util.*,java.sql.* , com.yyy.model.*" pageEncoding="gb2312"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.       
  12.     <title>My JSP 'loginCl.jsp' starting page</title>  
  13.       
  14.       </head>  
  15.     
  16.   <body>  
  17.     <%  
  18.       
  19.             //接收用户名和密码  
  20.             String u = request.getParameter("username");  
  21.             String p = request.getParameter("passwd");  
  22.               
  23.             //调用userbean处理的方法  
  24.             UserBeanCl ubc = new UserBeanCl();  
  25.               
  26.             if(ubc.checkUser(u, p)){  
  27.               
  28.                 response.sendRedirect("wel.jsp?user="+u);  
  29.                   
  30.             }else{  
  31.               
  32.                 response.sendRedirect("login.jsp");  
  33.             }  
  34.      %>  
  35.   </body>  
  36. </html>  

wel.jsp

 

  1. <%@ page language="java" import="java.util.*,  java.sql.*, com.yyy.model.*" pageEncoding="gb2312"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.       
  12.     <title>My JSP 'wel.jsp' starting page</title>  
  13.       
  14.       </head>  
  15.     
  16.   <body>  
  17.     登陆成功!<%= request.getParameter("user") %><br>  
  18.     <a href="login.jsp">重新登陆</a>  
  19.       
  20.     <h1>用户列表</h1>  
  21.       
  22.     <%  
  23.         //定义分页用到的4个变量  
  24.         int pageNow = 1; //默认第一页  
  25.           
  26.         int pageCount = new UserBeanCl().getPageCount();  
  27.           
  28.         //获取页面传来的pageNow信息  
  29.         String pp = request.getParameter("pageTo");  
  30.         if(pp != null){  
  31.             try{  
  32.               
  33.                 pageNow = Integer.parseInt(pp);  
  34.                   
  35.                 }catch(Exception e){  
  36.                     out.println("pagenow=" + pageNow);  
  37.                     e.printStackTrace();  
  38.                 }  
  39.         }  
  40.           
  41.         //查询所有的记录数  
  42.           
  43.             %>  
  44.             <table border = "1">  
  45.             <tr><td>用户ID</td><td>名字</td><td>密码</td><td>Email</td><td>级别</td></tr>  
  46.             <%  
  47.                 UserBeanCl ubc = new UserBeanCl();  
  48.                 UserBean ub = new UserBean();  
  49.                 ArrayList al = new ArrayList();  
  50.                 al = ubc.getUsersByPage(pageNow);  
  51.                   
  52.                 for(int i=0; i<al.size(); i++){  
  53.                     ub =(UserBean) al.get(i);  
  54.                     %>  
  55.                     <!-- 注意:这里使用的是字符串的形式得到值 rs.getInt("userid")  rs.getInt(1) 会出异常!!待答复-->  
  56.                     <tr><td><%=ub.getUserId()%></td><td><%=ub.getUsername() %></td><td><%=ub.getPasswd() %></td><td><%=ub.getEmail() %></td><td><%=ub.getGrade() %></td></tr>  
  57.                       
  58.                     <%  
  59.                       
  60.                 }  
  61.              %>  
  62.               
  63.             </table>  
  64.               
  65.             <%  
  66.             //显示超链接  
  67.             //首页  
  68.             out.println("<a href=wel.jsp?pageTo="+1+">首页</a>");  
  69.             //上一页  
  70.             if(pageNow != 1){  
  71.                 out.println("<a href=wel.jsp?pageTo="+(pageNow - 1)+">上一页</a>");  
  72.             }  
  73.             // 判断页数的  
  74.             if(pageNow == 1){  
  75.                 for(int i = pageNow; i <= pageNow + 5; i++){  
  76.                     out.println("<a hrefwel.jsp?pageTo="+i+"> ["+i+"] </a>");  
  77.                 }  
  78.             }else   if(pageNow == 2){  
  79.                 for(int i = pageNow-1; i < pageNow + 5; i++){  
  80.                     out.println("<a hrefwel.jsp?pageTo="+i+"> ["+i+"] </a>");  
  81.                 }  
  82.             }else   if(pageNow == pageCount){  
  83.                 for(int i = pageCount-4; i <= pageCount; i++){  
  84.                     out.println("<a hrefwel.jsp?pageTo="+i+"> ["+i+"] </a>");  
  85.                 }  
  86.             }else   if(pageNow == pageCount-1){  
  87.                 for(int i = pageCount-3; i <= pageCount+1; i++){  
  88.                     out.println("<a hrefwel.jsp?pageTo="+i+"> ["+i+"] </a>");  
  89.                 }  
  90.             }else{  
  91.                 for(int i=pageNow - 2; i <= pageNow + 2; i++){  
  92.                 out.println("<a hrefwel.jsp?pageTo="+i+"> ["+i+"] </a>");  
  93.                 }  
  94.               
  95.             }  
  96.               
  97.             //显示写一页  
  98.             if(pageNow != pageCount){  
  99.                 out.println("<a href=wel.jsp?pageTo="+(pageNow + 1)+">下一页</a>");  
  100.             }  
  101.             //末页  
  102.             out.println("<a href=wel.jsp?pageTo="+pageCount+">末页</a>");  
  103.           
  104.           
  105.           
  106.           
  107.       
  108.      %>  
  109.   </body>  
  110. </html>  

下面是java片段

UserBean.java

  1. package com.yyy.model;  
  2. //userbean  
  3.   
  4. public class UserBean {  
  5.       
  6.     private int userId;  
  7.     private String username;  
  8.     private String passwd;  
  9.     private String email;  
  10.     private int grade;  
  11.       
  12.     public int getUserId() {  
  13.         return userId;  
  14.     }  
  15.     public void setUserId(int userId) {  
  16.         this.userId = userId;  
  17.     }  
  18.     public String getUsername() {  
  19.         return username;  
  20.     }  
  21.     public void setUsername(String username) {  
  22.         this.username = username;  
  23.     }  
  24.     public String getPasswd() {  
  25.         return passwd;  
  26.     }  
  27.     public void setPasswd(String passwd) {  
  28.         this.passwd = passwd;  
  29.     }  
  30.     public String getEmail() {  
  31.         return email;  
  32.     }  
  33.     public void setEmail(String email) {  
  34.         this.email = email;  
  35.     }  
  36.     public int getGrade() {  
  37.         return grade;  
  38.     }  
  39.     public void setGrade(int grade) {  
  40.         this.grade = grade;  
  41.     }  
  42.       
  43.       
  44. }  

UserBeanCl.java

  1. //也叫做bo  主要是封装对users表的各种操作  
  2.   
  3. package com.yyy.model;  
  4.   
  5. import java.sql.*;  
  6. import java.util.ArrayList;  
  7.   
  8.   
  9. public class UserBeanCl {  
  10.       
  11.     private Statement smt = null;  
  12.     private ResultSet rs = null;  
  13.     private Connection conn = null;  
  14.       
  15.   
  16.     private int rowCount = 0;//所有记录数  
  17.     private int pageCount=0;// rowCount/pageSize  
  18.     private int pageSize = 3//每页显示3个  
  19.       
  20.     //返回总页数  
  21.     public int getPageCount(){  
  22.           
  23.         try{  
  24.             //连接数据库  
  25.             conn = new ConnDB().getConn();  
  26.             smt = conn.createStatement();  
  27.             rs = smt.executeQuery(" select count(*) from yyytestusers");  
  28.             if(rs.next()){  
  29.                   
  30. //              rowCount = Integer.parseInt(rs.getString(1));  
  31.                 rowCount = rs.getInt(1);  
  32.             }  
  33.               
  34.               
  35.         }catch(Exception e){  
  36.             e.printStackTrace();  
  37.         }finally{  
  38.               
  39.             this.close();  
  40.               
  41.         }  
  42.         if(rowCount%pageSize == 0){  
  43.             pageCount = rowCount / pageSize;  
  44.         }else{  
  45.             pageCount = rowCount / pageSize + 1;  
  46.         }  
  47.           
  48.         return pageCount;  
  49.     }  
  50.           
  51.       
  52.     //对用户的信息分页  
  53.     public ArrayList getUsersByPage(int pageNow){  
  54.         ArrayList al = new ArrayList();  
  55.         try{  
  56.               
  57.             //创建Statement  
  58.             conn = new ConnDB().getConn();  
  59.              smt = conn.createStatement();  
  60.               
  61.             //查询  
  62.         //  StringBuffer sb = "select passwd from yyytestusers where username = ';  
  63.         //   rs = smt.executeQuery("select count(*) from yyytestusers ");  
  64.                
  65.             String select_by_pageNow = "select * from (select rownum rn, a.* from yyytestusers a) where rn < "+ (pageNow*pageSize+1)  
  66.                  +"and rn not in (select rn from (select rownum rn, a.* from yyytestusers a) where rn < "+((pageNow-1)*pageSize+1) +  
  67.                  ") order by userid";  
  68.               
  69.             rs = smt.executeQuery(select_by_pageNow);  
  70.               
  71.             //一定要rs.next()  rs才指向要取得值的地方  
  72.               
  73.             while(rs.next()){  
  74.                   
  75.                 UserBean ub = new UserBean();  
  76.                 ub.setUserId(rs.getInt(2));  
  77.                 ub.setUsername(rs.getString(3));  
  78.                 ub.setPasswd(rs.getString(4));  
  79.                 ub.setEmail(rs.getString(5));  
  80.                   
  81.                 ub.setGrade(rs.getInt(6));//这个也是可以的。但是在数据库中。他是第二个整数。所以取2  
  82.                 //ub.setGrade(rs.getInt("grade"));  
  83.                   
  84.                 al.add(ub);  
  85.             }  
  86.                   
  87.               
  88.         }catch(Exception e){  
  89.               
  90.             e.printStackTrace();  
  91.               
  92.         }finally{  
  93.               
  94.             this.close();  
  95.               
  96.         }  
  97.           
  98.         return al;  
  99.     }  
  100.       
  101.       
  102.     //验证用户是否合法  
  103.       
  104.     public boolean checkUser(String u, String p){  
  105.           
  106.         boolean b = false;  
  107.           
  108.         //创建statement  
  109.         try{  
  110.               
  111.               
  112.         conn = new ConnDB().getConn();  
  113.         smt = conn.createStatement();  
  114.          rs = smt.executeQuery("select passwd from yyytestusers where username = '"+ u +"'");  
  115.             //  
  116.               
  117.             if(rs.next()){  
  118.                 //c存在用户名  
  119.                 //判断密码  
  120.                 if(rs.getString(1).equals(p)){  
  121.                     //response.sendRedirect("wel.jsp?user="+u);  
  122.                       
  123.                     b = true;  
  124.                       
  125.                 }  
  126.                   
  127.             }  
  128.         }catch(Exception e){  
  129.             e.printStackTrace();  
  130.         }finally{  
  131.             this.close();  
  132.         }  
  133.           
  134.         return b;  
  135.           
  136.           
  137.     }  
  138.     //关闭资源  
  139.     public void close(){  
  140.         //关闭数据库资源  
  141.         try{  
  142.             if(rs != null)  
  143.                 rs.close();  
  144.                 rs = null;  
  145.             if(smt != null)  
  146.                 smt.close();  
  147.                 smt = null;  
  148.             if(conn != null)  
  149.                 conn.close();  
  150.                 conn = null;  
  151.         }catch(Exception e){  
  152.             e.printStackTrace();  
  153.         }  
  154.           
  155.     }  
  156. }  

连接数据库ConnDB.java

  1. //与数据库连接  
  2. package com.yyy.model;  
  3.   
  4. import java.sql.*;  
  5.   
  6. public class ConnDB {  
  7.       
  8.     private Connection conn = null;  
  9.       
  10.     public Connection getConn(){  
  11.           
  12.           
  13.         try{  
  14.             //在数据库中验证用户  
  15.             String className="oracle.jdbc.driver.OracleDriver";  
  16.         //  String url = "jdbc:oracle:thin:@192.168.1.3:1521:unionuat";  
  17.             String url = "jdbc:oracle:thin:@192.168.1.3:1521:unionuat";  
  18.               
  19.             String userName = "sales_jacdcs";  
  20.             String userPass ="sales_jacdcs";  
  21.             //加载驱动  
  22.             Class.forName(className);  
  23.             //得到连接  
  24.             //注意这里饭的错误:url userName uerPass已经是字符串的格式。下面的语句不需要加""双引号。害了我10分钟  
  25.              conn = DriverManager.getConnection(url,userName,userPass);  
  26.               
  27.         }catch(Exception e){  
  28.               
  29.             e.printStackTrace();  
  30.         }  
  31.           
  32.         return conn;  
  33.     }  
  34. }  

数据库表users

创建数据表语句

转载自 http://blog.csdn.net/yaoyy09/article/details/8455103

抱歉!评论已关闭.