JavaBean与jdbc实现用户登陆的小demo

之前的开发是采用 phpStorm,前端:html+css+javascript+jquery,服务器端:php;但是这个前后台交互要通过 ajax 来实现数据交互,中间遇到了跨域的问题,卡了两天虽然解决了但是后面部署的话会比较麻烦。正好最近老板让我接手之前另一个项目开发的软件,是用 jsp 写的,一开始我是拒绝的,后来借了一本 jsp 的书,用一天的时间快速读了下,觉得这个开发部署要方便很多,于是就把之前的代码全部改成了 jsp 的。开发环境网上搜一搜都有的,我采用的是 myEclipse+Tomcat;废话不多说,这里就记录下使用 JavaBean 实现用户登录。

UserBean 代码:

[java] dp.sh.Toolbar.Command(‘ViewSource’,this);return false;” target=”_self”>view plain copy
print ?
  1. /** 
  2.  *  
  3.  */  
  4. package edu.whu.vge.util;  
  5.   
  6. public class UserBean {  
  7.   
  8.     private String username;  
  9.     private String password;  
  10.     private boolean logined = false;  
  11.   
  12.     /** 
  13.      * @return the username 
  14.      */  
  15.     public String getUsername() {  
  16.         return username;  
  17.     }  
  18.   
  19.     /** 
  20.      * @param username 
  21.      *            the username to set 
  22.      */  
  23.     public void setUsername(String username) {  
  24.         this.username = username;  
  25.     }  
  26.   
  27.     /** 
  28.      * @return the password 
  29.      */  
  30.     public String getPassword() {  
  31.         return password;  
  32.     }  
  33.   
  34.     /** 
  35.      * @param password 
  36.      *            the password to set 
  37.      */  
  38.     public void setPassword(String password) {  
  39.         this.password = password;  
  40.     }  
  41.   
  42.     /** 
  43.      * @return the logined 
  44.      */  
  45.     public boolean isLogined() {  
  46.         return logined;  
  47.     }  
  48.   
  49.     /** 
  50.      * @param logined 
  51.      *            the logined to set 
  52.      */  
  53.     public void setLogined(boolean logined) {  
  54.         this.logined = logined;  
  55.     }  
  56.   
  57. }  
/**
 * 
 */
package edu.whu.vge.util;

public class UserBean {

    private String username;
    private String password;
    private boolean logined = false;

    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username
     *            the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * @return the password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password
     *            the password to set
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * @return the logined
     */
    public boolean isLogined() {
        return logined;
    }

    /**
     * @param logined
     *            the logined to set
     */
    public void setLogined(boolean logined) {
        this.logined = logined;
    }

}
DBBean 代码:

  1. /** 
  2.  *  
  3.  */  
  4. package edu.whu.vge.util;  
  5.   
  6. import java.sql.Connection;  
  7. import java.sql.DriverManager;  
  8. import java.sql.ResultSet;  
  9. import java.sql.SQLException;  
  10. import java.sql.PreparedStatement;  
  11.   
  12. public class DBBean {  
  13.   
  14.     private Connection connection;  
  15.     private PreparedStatement pstat;  
  16.     private ResultSet reSet;  
  17.   
  18.     public DBBean() {  
  19.         // TODO Auto-generated constructor stub  
  20.     }  
  21.   
  22.     // 获取数据库连接  
  23.     public Connection getConnection() throws ClassNotFoundException {  
  24.   
  25.         try {  
  26.             Class.forName(”com.mysql.jdbc.Driver”);  
  27.             String url = ”jdbc:mysql://localhost:3306/userinfo?user=root&password=root”;  
  28.             connection = DriverManager.getConnection(url);  
  29.         } catch (SQLException e) {  
  30.             // TODO Auto-generated catch block  
  31.             e.printStackTrace();  
  32.         }  
  33.   
  34.         return connection;  
  35.     }  
  36.   
  37.     // 执行数据库查询并返回表  
  38.     public ResultSet query(String sql) throws SQLException,  
  39.             ClassNotFoundException {  
  40.   
  41.         connection = getConnection();  
  42.         pstat = connection.prepareStatement(sql);  
  43.         reSet = pstat.executeQuery();  
  44.         return reSet;  
  45.   
  46.     }  
  47.   
  48.     // 关闭数据库连接  
  49.     public void close() throws SQLException {  
  50.   
  51.         if (reSet != null) {  
  52.             reSet.close();  
  53.   
  54.         }  
  55.         if (pstat != null) {  
  56.             pstat.close();  
  57.         }  
  58.         if (connection != null) {  
  59.             connection.close();  
  60.   
  61.         }  
  62.     }  
  63.   
  64. }  
/**
 * 
 */
package edu.whu.vge.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;

public class DBBean {

    private Connection connection;
    private PreparedStatement pstat;
    private ResultSet reSet;

    public DBBean() {
        // TODO Auto-generated constructor stub
    }

    // 获取数据库连接
    public Connection getConnection() throws ClassNotFoundException {

        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/userinfo?user=root&password=root";
            connection = DriverManager.getConnection(url);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return connection;
    }

    // 执行数据库查询并返回表
    public ResultSet query(String sql) throws SQLException,
            ClassNotFoundException {

        connection = getConnection();
        pstat = connection.prepareStatement(sql);
        reSet = pstat.executeQuery();
        return reSet;

    }

    // 关闭数据库连接
    public void close() throws SQLException {

        if (reSet != null) {
            reSet.close();

        }
        if (pstat != null) {
            pstat.close();
        }
        if (connection != null) {
            connection.close();

        }
    }

}

chkUser.jsp

  1. <%@ page language=“java” import=“java.util.*”  
  2.     contentType=”text/html; charset=gb2312” pageEncoding=“gb2312”%>  
  3.   
  4. <%@ page import=“java.sql.*”%>  
  5. <%@ page import=“edu.whu.vge.util.DBBean”%>  
  6. <%@ page import=“edu.whu.vge.util.UserBean”%>  
  7. <%– 使用 javaBean 连接数据库实现用户登录 –%>  
  8. <jsp:useBean id=”user” scope=“session” class=“edu.whu.vge.util.UserBean”></jsp:useBean>  
  9. <jsp:useBean id=”mysqlDB” class=“edu.whu.vge.util.DBBean”></jsp:useBean>  
  10. <jsp:setProperty property=”*” name=“user” />  
  11.   
  12. <%  
  13.     String username = new String(user.getUsername().getBytes(  
  14.             ”ISO-8859-1”), “GB2312”);  
  15.     String password = user.getPassword();  
  16.     String sql = ”select * from users where name=’” + username  
  17.             + “‘and password=’” + password + “’”;  
  18.   
  19.     ResultSet resultSet = mysqlDB.query(sql);  
  20.     if (resultSet.next()) {  
  21.     %>  
  22.     <script type=”text/javascript”>  
  23.     window.location.href = ”index.jsp”;  
  24.     </script>  
  25.     <%  
  26.     } else {  
  27.     %>  
  28.     <  
  29.     <script type=”text/javascript”>  
  30.     alert(” 用户名或密码错误,请核实!!!”);  
  31.     window.location.href = ”login.jsp”;  
  32.     </script>  
  33.     <%  
  34.     }  
  35.     %>  
<%@ page language="java" import="java.util.*"
    contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>

<%@ page import="java.sql.*"%>
<%@ page import="edu.whu.vge.util.DBBean"%>
<%@ page import="edu.whu.vge.util.UserBean"%>
<%--使用javaBean连接数据库实现用户登录 --%>
<jsp:useBean id="user" scope="session" class="edu.whu.vge.util.UserBean"></jsp:useBean>
<jsp:useBean id="mysqlDB" class="edu.whu.vge.util.DBBean"></jsp:useBean>
<jsp:setProperty property="*" name="user" />

<%
    String username = new String(user.getUsername().getBytes(
            "ISO-8859-1"), "GB2312");
    String password = user.getPassword();
    String sql = "select * from users where name='" + username
            + "' and password='" + password + "'";

    ResultSet resultSet = mysqlDB.query(sql);
    if (resultSet.next()) {
    %>
    <script type="text/javascript">
    window.location.href = "index.jsp";
    </script>
    <%
    } else {
    %>
    <
    <script type="text/javascript">
    alert("用户名或密码错误,请核实!!!");
    window.location.href = "login.jsp";
    </script>
    <%
    }
    %>
这里的登录验证是与 mysql 中存储的用户信息,验证成功的话则采用 javascript 跳转的主界面,否则提示停留在登录界面。jsp 的跳转方式参见博客: JSP 页面跳转的几种实现方法   。这里还有一个需要注意的问题就是,当用户名为中文时,会出现乱码导致验证不成功,需要进行转码:

  1. String username = new String(user.getUsername().getBytes(  
  2.             ”ISO-8859-1”), “GB2312”);  
String username = new String(user.getUsername().getBytes(
            "ISO-8859-1"), "GB2312");

login.jsp 代码:

  1. <body>  
  2.     <div class=“login_bj”>  
  3.         <div class=“login_mian”>  
  4.             <form id=“form1” name=“form1” action=“chkUser.jsp” method=“post”>  
  5.                 <table cellpadding=“0” cellspacing=“0” border=“0”  
  6.                     class=“login_table”>  
  7.                     <tr>  
  8.                         <th> 用户名 </th>  
  9.                         <td><input type=“text” class=“login_int” id=“username”  
  10.                             name=“username” value=“” /></td>  
  11.                     </tr>  
  12.                     <tr>  
  13.                         <th> 密码 </th>  
  14.                         <td><input type=“password” class=“login_int” id=“password”  
  15.                             name=“password” value=“” /></td>  
  16.                     </tr>  
  17.                     <tr>  
  18.                         <th></th>  
  19.                         <td><input type=“button” class=“btn_login”  
  20.                             onclick=“doSubmit();” /></td>  
  21.                     </tr>  
  22.                 </table>  
  23.             </form>  
  24.             <div class=“footer” align=“left”>  
  25.                 <span>Copyright @ 2015 武汉大学 </span>  
  26.             </div>  
  27.         </div>  
  28.     </div>  
  29.     <div id=“dialog-username”>  
  30.         <p class=“alert-message”> 请输入用户名!</p>  
  31.     </div>  
  32.     <div id=“dialog-password”>  
  33.         <p class=“alert-message”> 请输入密码!</p>  
  34.     </div>  
  35. </body>  
<body>
    <div class="login_bj">
        <div class="login_mian">
            <form id="form1" name="form1" action="chkUser.jsp" method="post">
                <table cellpadding="0" cellspacing="0" border="0"
                    class="login_table">
                    <tr>
                        <th>用户名</th>
                        <td><input type="text" class="login_int" id="username"
                            name="username" value="" /></td>
                    </tr>
                    <tr>
                        <th>密码</th>
                        <td><input type="password" class="login_int" id="password"
                            name="password" value="" /></td>
                    </tr>
                    <tr>
                        <th></th>
                        <td><input type="button" class="btn_login"
                            onclick="doSubmit();" /></td>
                    </tr>
                </table>
            </form>
            <div class="footer" align="left">
                <span>Copyright @ 2015 武汉大学</span>
            </div>
        </div>
    </div>
    <div id="dialog-username">
        <p class="alert-message">请输入用户名!</p>
    </div>
    <div id="dialog-password">
        <p class="alert-message">请输入密码!</p>
    </div>
</body>
mysql 数据库:

登录界面:


成功登录后界面:


初学 jsp 很多方面都还不懂,以练带学是很有效的方法,实现了简单的用户登录之后,下一步就是从数据库查询 poi 进行标注显示了,先设计一个好的用户交互方式,在使用 JavaBean 封装业务逻辑


转自:https://blog.csdn.net/giser_whu/article/details/46549815

猜你喜欢

转载自blog.csdn.net/qq_33945246/article/details/79810775
今日推荐