第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

jsp Model1設(shè)計(jì)模式實(shí)現(xiàn)用戶(hù)登錄驗(yàn)證

標(biāo)簽:
Java MySQL

数据库设计、User实体类、用户登录页面、登录成功页面、登录失败页面同上一个手记,有兴趣可以查阅
更新部分:UserDao业务逻辑类、DBUtil数据库工具类、登录验证页面


代码部分
1.UserDao业务逻辑类

package dao;

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

import db.DBUtil;
import entity.User;

public class UserDao {
    private static Connection conn;
    private static PreparedStatement pstt;
    private static ResultSet rs;
    private static String sql;

    /**
     * 给定User对象 通过用户名查询密码是否匹配
     * @param user
     * @return
     */
    public boolean queryUserByName(User user) {
        boolean query = false;
        conn = DBUtil.getConn();
        sql = "SELECT password FROM tb_user WHERE userName = ?";
        try {
            pstt = conn.prepareStatement(sql);
            pstt.setString(1, user.getUserName());
            rs = pstt.executeQuery();
            if (rs.next()) {
                String password = rs.getString("password");
                if (password.equals(user.getPassword())) {
                    query = true;
                }else {
                    query = false;
                }
            }           
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.queryClose(rs, pstt, conn);
        }
        return query;
    }
}

2.DBUtil数据库工具类

package db;

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

/**
 * 连接数据库准备工作
 * @author SsssZzzz
 *
 */
public class DBUtil {
    private static final String DBDriver = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/db_users"
            + "?useUnicode=true&characterEncoding=utf8&useSSL=false";
    private static final String USER = "root";
    private static final String PASSWORD = "fyz123456";
    private static Connection conn = null;
    static{
        try {
            Class.forName(DBDriver);
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库链接
     * @return
     */
    public static Connection getConn() {
        return conn;
    }
    /**
     * 向数据库插入数据后关闭资源
     * @param pstt
     * @param conn
     */
    public static void addClose(PreparedStatement pstt, Connection conn) {
        try {
            if (!pstt.isClosed()) {
                pstt.close();
            }
            if (!conn.isClosed()) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    /**
     * 查询数据后关闭资源
     * @param rs
     * @param pstt
     * @param conn
     */
    public static void queryClose(ResultSet rs, PreparedStatement pstt, Connection conn) {
        try {
            if (!rs.isClosed()) {
                rs.close();
            }
            if (!pstt.isClosed()) {
                pstt.close();
            }
            if (!conn.isClosed()) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3.登录验证页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<jsp:useBean id="user" class="entity.User" scope="page"></jsp:useBean>
<jsp:useBean id="userDao" class="dao.UserDao" scope="page"></jsp:useBean>
<jsp:setProperty property="*" name="user"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    if(userDao.queryUserByName(user)){
        session.setAttribute("userName", user.getUserName());
        request.getRequestDispatcher("success.jsp").forward(request, response);
    }else{
        response.sendRedirect("failure.jsp");
    }
%>

总结
通过Model1设计模式,将验证的业务逻辑封装到UserDao中,将数据库连接代码封装到DBUtil工具类中。登录验证页面的代码得到精简。实现控制层和业务逻辑的分离,提高了代码的可重用性和可扩展性。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消