基于MVC模型和分层模式完成登录和注册

1.创建数据库,输入需要的内容

#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;


#创建表
create table t_user
(
    uid int primary key auto_increment,
    username varchar(20),
    password varchar(20),
    phone varchar(11),
    address varchar(50)
);


insert into t_user(username,password,phone,address) values('张三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小美','123','18565234759','信阳');

select * from t_user;



create table t_goods
(
    gid int primary key auto_increment,
    gname varchar(20),
    price double,
    mark varchar(100)
);

insert into t_goods(gname,price,mark) values('泡面',4.5,'够香够辣就是这个味!');
insert into t_goods(gname,price,mark) values('火腿',8.5,'肉质细腻Q弹!');
insert into t_goods(gname,price,mark) values('雪碧',3.5,'清爽冰凉随心爽!');

select * from t_goods;

2.创建需要跳转的页面,完成页面内容
2.1.设置成功页面
<%@ page import="com.fu.bean.Goods" %>
<%@ page import="java.util.List" %>
<%@ page import="com.fu.bean.User"  %>
<%--
  Created by IntelliJ IDEA.
  User: 86135
  Date: 2023/2/17
  Time: 18:48
  To change this template use File | Settings | File Templates.
--%>
<html>
<head>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <title>成功</title>
</head>
<body>

<h3>欢迎来自${login.address}的${login.username}来到成功页面</h3>
<table>
    <tr>
        <th>商品编号</th>
        <th>商品名称</th>
        <th>商品价格</th>
        <th>商品编说明</th>
    </tr>

    <c:forEach items="${goodsList}" var="goods">
        <tr>
            <td>${goods.gid}</td>
            <td>${goods.gname}</td>
            <td>${goods.price}</td>
            <td>${goods.mark}</td>

        </tr>
    </c:forEach>


</table>

</body>
</html>
3.完成Java内容,进行分层
3.1创建User和Goods实体类
package com.fu.bean;

public class User {
    private Integer uid;
    private String usermane;
    private String password;
    private String phone;
    private String address;

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUsermane() {
        return usermane;
    }

    public void setUsermane(String usermane) {
        this.usermane = usermane;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", usermane='" + usermane + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
package com.fu.bean;

public class Goods {
    private Integer gid;
    private String gname;
    private String price;
    private String mark;

    public Integer getGid() {
        return gid;
    }

    public void setGid(Integer gid) {
        this.gid = gid;
    }

    public String getGname() {
        return gname;
    }

    public void setGname(String gname) {
        this.gname = gname;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    @Override
    public String toString() {
        return "Goods{" +
                "gid=" + gid +
                ", gname='" + gname + '\'' +
                ", price='" + price + '\'' +
                ", mark='" + mark + '\'' +
                '}';
    }
}
3.2创建jdbc工具类
package com.fu.util;

import com.fu.bean.User;

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


public class JDBCUtil {
    //执行业务
    public  static String classname = "com.mysql.cj.jdbc.Driver";
    public static String url = "jdbc:mysql://127.0.0.1:3306/mydb";
    public static String user = "root";
    public  static String pwd = "root";
    public static Connection connection = null;
    public static ResultSet rs = null;
    public static PreparedStatement ps = null;

    public static Connection connection() {
        try {
            //添加驱动
            Class.forName(classname);
            //获取链接
            connection = DriverManager.getConnection(url, user, pwd);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return connection;
    }
    //关闭资源
    public static void colse(ResultSet rs,PreparedStatement ps,Connection connection){
        try {
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (connection != null) {
                connection.close();
            }

        } catch (Exception e) {

        }
    }
    public static void colse(PreparedStatement ps,Connection connection){
        try {
            if (ps != null) {
                ps.close();
            }
            if (connection != null) {
                connection.close();
            }

        } catch (Exception e) {

        }
    }
}
3.3创建接口
package com.fu.dao;

import com.fu.bean.User;

public interface UserDao {
    /**
     * 完成用户登陆操作
     * @param username
     * @param password
     * @return 数据库中查询到的完整xinxi
     */
    User login(String username,String password);

    /**
     * 完成用户信息注册
     * @param user 封装了用户信息
     * @return  插入数据后受影响的行数
     */
    int zhuce(User user);

    List<Goods> selectAll();
}
3.4完善接口
package com.fu.dao.impl;

import com.fu.bean.User;
import com.fu.dao.UserDao;
import com.fu.util.JDBCUtil;

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

public class UserDaoImpl implements UserDao {

    //执行业务
    private Connection connection = null;
    private PreparedStatement ps = null;
    private ResultSet rs = null;
    private User login = null;
    private int a = 0;

    @Override
    public User login(String username, String password) {
        try {
            //调用jdbc工具类
            connection = JDBCUtil.connection();
            //定义sql语句
            String sql = "select * from t_user where username=? and password=?";
            //获取预处理
            ps = connection.prepareStatement(sql);
            //传参
            ps.setObject(1, username);
            ps.setObject(2, password);
            //执行查询
            rs = ps.executeQuery();
            //解析结果集
            if (rs.next()) {
                login = new User();
                login.setUid(rs.getInt("uid"));
                login.setUsermane(rs.getString("username"));
                login.setPassword(rs.getString("password"));
                login.setPhone(rs.getString("phone"));
                login.setAddress(rs.getString("address"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //释放资源
            JDBCUtil.colse(rs, ps, connection);

        }

        return login;
    }

    @Override
    public int zhuce(User user) {
        try {
            //调用jdbc工具类
            connection = JDBCUtil.connection();
            //定义sql语句
            String sql = "insert into t_user(username,password,phone,address) values(?,?,?,?)";
            //获取预处理
            ps = connection.prepareStatement(sql);
            //传参
            ps.setObject(1, user.getUsermane());
            ps.setObject(2, user.getPassword());
            ps.setObject(3, user.getPhone());
            ps.setObject(4, user.getAddress());
            //执行添加
            a = ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //释放资源
            JDBCUtil.colse(ps, connection);
        }

        return a;
    }
public List<Goods> selectAll() {
        try {
            //调用jdbc工具类
            connection = JDBCUtil.connection();
            //定义sql语句
            String sql = "select * from t_goods";
            //获取预处理
            ps = connection.prepareStatement(sql);
            //执行添加
            rs = ps.executeQuery();
            //遍历结果集
            while (rs.next()){
                Goods goods=new Goods();
                goods.setGid(rs.getInt("gid"));
                goods.setGname(rs.getString("gname"));
                goods.setPrice(rs.getString("price"));
                goods.setMark(rs.getString("mark"));
                goodsList.add(goods);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //释放资源
            JDBCUtil.colse(ps, connection);
        }
        return goodsList;
    }

}
3.5完成登录和注册
3.5.1登录代码
package com.fu.servlet;


import com.fu.bean.User;
import com.fu.dao.UserDao;
import com.fu.dao.impl.UserDaoImpl;

import javax.servlet.*;
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("/login")
public class Login extends HttpServlet {
    @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 {
        //设置编码格式
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=UTF-8");

        //获取请求的参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");


       UserDao dao=new UserDaoImpl();
        User login = dao.login(username, password);
        //判断用户信息是否为空
        if (login != null) {
              System.out.println("登陆成功");

            HttpSession session = request.getSession();
            session.setAttribute("login",login);

            request.getRequestDispatcher("selectGoodsAll").forward(request,response);
        } else {
            resp.sendRedirect("sb.jsp");

        }

    }
}
3.5.2注册代码
package com.fu.servlet;

import com.fu.bean.User;
import com.fu.dao.UserDao;
import com.fu.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("/zhuce")
public class Zhuce extends HttpServlet {

    @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 {
        //设置编码格式
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=UTF-8");

        //获取请求的参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String phone = req.getParameter("phone");
        String address = req.getParameter("address");
        
        //封装到User对象中
        User user=new User();
        user.setUsermane(username);
        user.setPassword(password);
        user.setPhone(phone);
        user.setAddress(address);
        System.out.println(user);

        //JDBC操作
        UserDao dao=new UserDaoImpl();
        int zhuce = dao.zhuce(user);
        //做出响应
        if(zhuce>0){
            //注册成功
            resp.sendRedirect("login.jsp");
        } else {
            //注册失败
            resp.sendRedirect("zhuce.jsp");

        }

    }


}
3.5.3创建selectgoodsall类
package com.fu.servlet;

import com.fu.bean.Goods;
import com.fu.dao.UserDao;
import com.fu.dao.impl.GoodsDaoImpl;
import com.fu.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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet("/selectGoodsAll")
public class SelectGoodsAll extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=UTF-8");

        UserDao goodsDao=new GoodsDaoImpl();
        List<Goods> goodsList = goodsDao.selectAll();
        System.out.println(goodsList);

        HttpSession session = request.getSession();
        session.setAttribute("goodsList",goodsList);
        response.sendRedirect("cg.jsp");
    }
}
4.浏览器页面展示

进入主界面,点击登录,没有账号点击注册账号,注册成功跳转登录界面,输入内容登录完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值