三层架构完成登录,注册操作

一.进行数据库的操作

#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
 
 
#创建表
create table t_user
(
    uid int primary key auto_increment,
	username varchar(12),
    password varchar(12),
    phone varchar(12),
    address varchar(24)
);

INSERT into user (username,password,phone,address) VALUES ('张三','666','12345678','河南');
INSERT into user (username,password,phone,address) VALUES ('李四','888','12345678','河南');

 二.进行java操作

1.创建项目

 2.在beng包中User进行工具类书写

package com.w.beng;

public class User{
    public Integer uid;
    public String username;
    public String password;
    public String phone;
    public String address;

    public User() {
    }

    public User(Integer uid, String username, String password, String phone, String address) {
        this.uid = uid;
        this.username = username;
        this.password = password;
        this.phone = phone;
        this.address = address;
    }

    /**
     * 获取
     * @return uid
     */
    public Integer getUid() {
        return uid;
    }

    /**
     * 设置
     * @param uid
     */
    public void setUid(Integer uid) {
        this.uid = uid;
    }

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

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

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

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return phone
     */
    public String getPhone() {
        return phone;
    }

    /**
     * 设置
     * @param phone
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }

    /**
     * 获取
     * @return address
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

    public String toString() {
        return "User{uid = " + uid + ", username = " + username + ", password = " + password + ", phone = " + phone + ", address = " + address + "}";
    }
}

3.进行jsp页面书写

主页面 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <h2>学习页面</h2>
  <a href="denglu.jsp">登录</a>
  <a href="zhuce.jsp">注册</a>
  </body>
</html>

登录页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>登录</h2>
<form method="post" action="denglu">
    账号:<input type="text" name="user" value=""><br>
    密码:<input type="password" name="pwd" value=""><br>
    <input type="submit" value="登录">
    <a href="zhuce.jsp">没有账号,去注册</a>
</form>
</body>
</html>

注册页面 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>注册</h2>
<form method="post" action="zhuce">
    账号:<input type="text" name="user" value=""><br>
    密码:<input type="password" name="pwd" value=""><br>
    电话:<input type="text" name="phone" value=""><br>
    地址:<input type="text" name="address" value=""><br>
    <input type="submit" value="注册">
    <a href="denglu.jsp">没有账号,去登录</a>
</form>

</body>
</html>

 4.JDBC工具类

package com.w.util;

import java.sql.*;

public class JDBCUtil {
    static Connection conn=null;

    public static Connection getcon(){
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&serverTimezone=UTC","root","root");
        }catch (Exception e){
            e.printStackTrace();
        }
        return conn;
    }
    public static void colse(ResultSet rs, PreparedStatement pstm,Connection con) throws SQLException {
        if (rs != null) {
            rs.close();
        }
        if (pstm != null) {
            pstm.close();
        }
        if (con != null) {
            con.close();
        }
    }
    public static void colse(PreparedStatement pstm,Connection con) throws SQLException {
        if(pstm!=null){
            pstm.close();
        }
        if(con!=null){
            con.close();
        }
    }
}

5.数据库连接操作

package com.w.dao.impl;

import com.w.beng.User;
import com.w.dao.UserDao;
import com.w.util.JDBCUtil;

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

public class UserDaoImpl implements UserDao {
    Connection con=null;
    PreparedStatement pstm=null;
    ResultSet rs=null;
    User login=null;
    int row=0;
    @Override
    public User login(String username, String password) {
        con= JDBCUtil.getcon();
        String sql="select * from t_user where username=? and password=?";
        try {
            pstm =con.prepareStatement(sql);

            pstm.setObject(1,username);
            pstm.setObject(2,password);
            rs=pstm.executeQuery();
            if(rs.next()){
                login=new User();
                login.setUid(rs.getInt("uid"));
                login.setUsername(rs.getString("username"));
                login.setPassword(rs.getString("password"));
                login.setPhone(rs.getString("phone"));
                login.setAddress(rs.getString("address"));

            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
           try {
               JDBCUtil.colse(rs,pstm,con);
           }catch (Exception e){
               e.printStackTrace();
           }
        }
        return login;
    }

    @Override
    public int register(User user) {
        con = JDBCUtil.getcon();
        String sql = "insert into t_user(username,password,phone,address) values(?,?,?,?)";
        try {
            pstm = con.prepareStatement(sql);
            pstm.setObject(1, user.getUsername());
            pstm.setObject(2, user.getPassword());
            pstm.setObject(3, user.getPhone());
            pstm.setObject(4, user.getAddress());
            row = pstm.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                JDBCUtil.colse(pstm, con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return row;

    }
}

6.创建一个接口

package com.w.dao;

import com.w.beng.User;

public interface UserDao {
    public User login(String username, String password);

    public int register(User user);
}

7.完成登录操作

package com.w.Servlet;

import com.w.beng.User;
import com.w.dao.impl.UserDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/denglu")
public class denglu extends HttpServlet {
    UserDaoImpl userDao=null;
    User login=null;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码格式
        resp.setCharacterEncoding("utf-8");
        req.setCharacterEncoding("utf-8");
        //以文本或网页形式相应
        resp.setContentType("text/html;charset=utf-8");
        //获取name为user中输入的数
        String username=req.getParameter("user");
        //获取name为pwd中输入的数
        String password=req.getParameter("pwd");
        userDao=new UserDaoImpl();
        login =userDao.login(username,password);



        if(login!=null){
            resp.sendRedirect("zhuye.jsp");
            System.out.println(login);
        }else {
            resp.sendRedirect("error.jsp");
        }
    }
}

8.注册操作

package com.w.Servlet;

import com.w.dao.impl.UserDaoImpl;
import com.w.beng.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;

@WebServlet("/zhuce")
public class zhuce extends HttpServlet {
    Connection con = null;
    PreparedStatement pstm = null;
    User user = null;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=UTF-8");
        user =new User();

        String username=req.getParameter("user");
        String password=req.getParameter("pwd");
        String phone=req.getParameter("phone");
        String address=req.getParameter("address");

        user.setUsername(username);
        user.setPassword(password);
        user.setPhone(phone);
        user.setAddress(address);

        UserDaoImpl userDao=new UserDaoImpl();
        int row=userDao.register(user);

        if(row>0){
                resp.sendRedirect("denglu.jsp");
        }else {
                resp.sendRedirect("zhuce.jsp");
        }

    }
}

输入正确则

 错误则

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值