servlet基础练习——登录

1、连接mysql数据库

public class DBDao {
    private static String USER = "USERNAME";
    private static String PASSWORD = "PASSWORD";
    private static String DB_URL = "jdbc:mysql://IP ADDRESS:PORT/DB NAME";
    private static String DB_DRIVER = "com.mysql.jdbc.Driver";//这里要注意是否引入了该驱动jar包
    private static Connection connection = null;

    //连接数据库
    public static Connection getConnection(){
        try {
            Class.forName(DB_DRIVER);
            connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);
        } catch (Exception e) {
            System.out.println("数据库连接异常");
            e.printStackTrace();
        }
        return connection;
    }

    //关闭数据库连接
    public  static void closeConnection(Connection connection){
        if(connection != null){
            try {
                connection.close(); 
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

2、登录DAO层

public class LogInDao {
    Supplier user = null;
    private String SQL =""; 

    public Supplier login(String username, String password){
        SQL = "select * from USER where USERNAME = ? and PASSWORD = ?";
        Connection connection = null;
        PreparedStatement pstmt = null;
        try {
            connection = DBDao.getConnection();
            pstmt = (PreparedStatement) connection.prepareStatement(SQL);
            //将用户名和密码填到SQL语句的问号处
            pstmt.setString(1, username);
            pstmt.setString(2, password);
            ResultSet rSet = (ResultSet) pstmt.executeQuery();//得到数据库的查询结果,一个数据集

            //判断结果集是否有效
            if(rSet.next()){
                System.out.println(rSet.getString(0));
                user = new Supplier();
                user.setId(rSet.getString("id"));
                user.setName(rSet.getString("username"));
            }
            connection.close();
            pstmt.close();
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            DBDao.closeConnection(connection);
        }
        return user;
    }
}

3、登录servlet层

public class LoginServlet extends HttpServlet {
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setCharacterEncoding("UTF-8");
            //获取用户名和密码
            String username = request.getParameter("userName");
            String password = request.getParameter("password");
            password=MD5.MD5(password);

            LogInDao logInDao = new LogInDao();
            Supplier user = logInDao.login(username,password);

            // 判断user是否为空
            if(user != null){
                System.out.println("登录成功");
                try {
                    //将登录用户信息存入session
                    User user = new User();
                    user.setId(user.getId());
                    user.setsName(user.getName());
                    HttpSession session = request.getSession();
                    session.setAttribute("user", user);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                //跳转页面
                response.sendRedirect("/successPage");
            }else{
                //提示失败,刷新当前页面               response.sendRedirect("/failPage");
            }
      }

        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
}

4、JSP层

<form method="post" action="LoginServlet" onSubmit="return login(this);">
      Servlet登录<br>        
      用户名:<input type="text" name="adminName" ><br>
      密码:<input type="password" name="password" ><br>
      <input type="submit" value="登录">
</form>

至此,一个完整的servlet+jsp的登录功能就完成了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值