使用IDEA完成登录与注册

一,完成数据库编写

DROP DATABASE if EXISTS mydb;
CREATE DATABASE mydb;
use mydb;

CREATE TABLE ta_user
(
  uid int primary key auto_increment,
	username varchar(32),
	password varchar(32),
	phone varchar(32),
	address varchar(32)
);

INSERT INTO ta_user(username,password,phone,address)VALUES('张三','123','12323231','北京');
INSERT INTO ta_user(username,password,phone,address)VALUES('李四','456','35343434','上海');
INSERT INTO ta_user(username,password,phone,address)VALUES('王五','789','33234324','河南');

SELECT * from ta_user;



二,网页前端显示部分(HTML部分)

注:注意文件创建地方

分层思想:创建一些包将一大堆代码分散到各个包中,可以使代码简洁,容易后期维护

 

  1. 主页面
    <%--
      Created by IntelliJ IDEA.
      User: ThinkPad
      Date: 2023/2/18
      Time: 8:35
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>首页</title>
      </head>
      <body>
      <a href="login.jsp">去登陆</a>
      </body>
    </html>
    
  2. 登录页面
    <%--
      Created by IntelliJ IDEA.
      User: ThinkPad
      Date: 2023/2/18
      Time: 8:37
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>登录页面</title>
    </head>
    <body>
    <%--有jsp不经过数据,没有jsp经过--%>
    <form action="login" method="post">
      账号:<input type="text" name="username"><br>
      密码:<input type="password" name="password"><br>
      <input type="submit" value="登录"><br>
        <a href="register.jsp">没有账号?前往注册</a>
        <a href="index.jsp">返回首页</a>
    </form>
    </body>
    </html>
    

  3. 注册页面
    <%--
      Created by IntelliJ IDEA.
      User: ThinkPad
      Date: 2023/2/18
      Time: 12:27
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>注册</title>
    </head>
    <body>
    <form action="register" method="post">
      账号:<input type="text" name="username"><br>
      密码:<input type="password" name="password"><br>
      号码:<input type="password" name="phone"><br>
      地址:<input type="password" name="address"><br>
      <input type="submit" value="注册"><br>
      <a href="login.jsp">有账号?前往登录</a>
      <a href="index.jsp">返回首页</a>
    </form>
    </body>
    </html>
    

  4. 错误页面
    <%--
      Created by IntelliJ IDEA.
      User: ThinkPad
      Date: 2023/2/18
      Time: 9:50
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <a>错误</a>
    <a href="index.jsp">返回登录页面</a>
    </body>
    </html>
    

  5. 登陆成功后跳转页面
    <%--
      Created by IntelliJ IDEA.
      User: ThinkPad
      Date: 2023/2/18
      Time: 9:30
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>商品</title>
    </head>
    <body>
    <form>
      <tr>
        <td>苹果</td>
        <td>2</td>
      </tr>
      <tr>
        <td>橘子</td>
        <td>6</td>
      </tr>
      <tr>
        <td>香蕉</td>
        <td>5</td>
      </tr>
    </form>
    </body>
    </html>
    

三,后端控制部分(Java部分)

  1.  bean包用来放属性的构造方法

    package com.smrsar.bean;
    
    public class User {
        private Integer uid;
        private String username;
        private String password;
        private String phone;
        private String address;
    
        public User() {
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "uid=" + uid +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    ", phone='" + phone + '\'' +
                    ", address='" + address + '\'' +
                    '}';
        }
    
        public Integer getUid() {
            return uid;
        }
    
        public void setUid(Integer uid) {
            this.uid = uid;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        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;
        }
    
        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;
        }
    }
    
    package com.smrsar.bean;
    
    public class Userz {
        private Integer uid;
        private String username;
        private String password;
    
        public Userz() {
        }
    
        @Override
        public String toString() {
            return "Userz{" +
                    "uid=" + uid +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    
        public Integer getUid() {
            return uid;
        }
    
        public void setUid(Integer uid) {
            this.uid = uid;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public Userz(Integer uid, String username, String password) {
            this.uid = uid;
            this.username = username;
            this.password = password;
        }
    }
    

  2. dao包用来放Java代码(注册部分的JDBC代码,分层方法:构建成一个方法,在Servlet中直接调用)

    package com.smrsar.dao;
    import com.smrsar.bean.User;
    import com.smrsar.util.JDBCUtil;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    
    public class UserDaoImpl {
    
        public int register (User user){
            Connection con = null;
            PreparedStatement pstm = null;
            int row = 0;
            try {
                //1,获取数据库连接
                con=JDBCUtil.GetCon();
                //2,定义sql语句
                String sql = "insert into ta_user(username,password,phone,address)values (?,?,?,?)";
                //3.获取预处理对象
                pstm = con.prepareStatement(sql);
                //4,传参
                pstm.setObject(1, user.getUsername());
                pstm.setObject(2, user.getPassword());
                pstm.setObject(3, user.getPhone());
                pstm.setObject(4, user.getAddress());
                //5,执行更新(增删改)
                row = pstm.executeUpdate();
    
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
    
                try {
                    if (pstm != null) {
                        pstm.close();
                    }
                    if (con != null) {
                        con.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return row;
        }
    
    }
    
  3. JDBC工具类构造方法用来调用

    package com.smrsar.util;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    public class JDBCUtil {
        private static String driver = "com.mysql.cj.jdbc.Driver";
        private static String url = "jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC";
        private static String username = "root";
        private static String password = "root";
    
        public static Connection con = null;
    
        public static Connection GetCon() {
            try {
                Class.forName(driver);
                con = DriverManager.getConnection(url, username, password);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return con;
        }
    
        public static void Close(ResultSet rs, PreparedStatement pstm, Connection con) {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstm != null) {
                    pstm.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

  4. 登录和注册servlet部分代码

    package com.smrsar.servlet;
    
    import com.smrsar.bean.Userz;
    import com.smrsar.util.JDBCUtil;
    //import com.smrsar.util.JDBCUtil;
    
    
    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.*;
    
    @WebServlet("/login")//使用这种方式可以不在xml文件中配置Servlet类也能实现跳转
    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("ext/html;charset=UTF-8");
            //请求获取数据
            String username = req.getParameter("username");
            String password = req.getParameter("password");
    
            Connection con = null;
            PreparedStatement pstm = null;
            ResultSet rs = null;
            Userz login = null;
            try {
                //调用已编写的JDBC工具类内容
                con = JDBCUtil.GetCon();
                //定义sql语句
                String sql = "select * from ta_user where username=? and password=?";
               //获取预处理对象
                pstm = con.prepareStatement(sql);
                //传参
                pstm.setObject(1, username);
                pstm.setObject(2, password);
                //执行查询
                rs = pstm.executeQuery();
    
                if (rs.next()) {
                    login = new Userz();
                    login.setUid(rs.getInt("uid"));
                    login.setUsername(rs.getString("username"));
                    login.setPassword(rs.getString("password"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //调用已编写的JDBC工具类内容
                JDBCUtil.Close(rs, pstm, con);
    
            }
            //判断是否为空,跳转到对应页面
            if (login != null) {
                resp.sendRedirect("goods.jsp");
            } else {
                resp.sendRedirect("error.jsp");
            }
        }
    }
    
    package com.smrsar.servlet;
    
    import com.smrsar.bean.User;
    import com.smrsar.dao.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("/register")
    public class Register 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 {
            //1,设置编码
            req.setCharacterEncoding("utf-8");
            resp.setCharacterEncoding("utf-8");
            resp.setContentType("ext/html;charset=UTF-8");
    
            //2,获取请求参数
            String username = req.getParameter("username");
            String password = req.getParameter("password");
            String phone = req.getParameter("phone");
            String address = req.getParameter("address");
    
            //3,封装,把前面的变量封装到User对象中
            User user = new User();
            user.setUsername(username);
            user.setPassword(password);
            user.setPhone(phone);
            user.setAddress(address);
    
            System.out.println(user);
    
            //4,实例化对象后调用使用
            UserDaoImpl userDao=new UserDaoImpl();
            int row=userDao.register(user);
    
            //5,作出响应
            if (row > 0) {
                //成功跳转到登录页面
                resp.sendRedirect("login.jsp");
            } else {
                //注册失败跳转到注册页
                resp.sendRedirect("register.jsp");
            }
        }
    }
    
    

  • 20
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,下面是使用 IntelliJ IDEA 创建用户登录注册案例的步骤: 1. 打开 IntelliJ IDEA,选择 "Create New Project"。 2. 选择 "Maven" 项目类型,并勾选 "Create from archetype",选择 "maven-archetype-webapp"。 3. 填写项目信息,比如 GroupId、ArtifactId、Version 等。 4. 完成项目创建后,在 "src/main" 目录下创建 "java" 和 "resources" 目录。 5. 在 "java" 目录下创建 "com.example" 包,并在该包下创建 "controller"、"dao"、"model" 和 "service" 四个包。 6. 在 "resources" 目录下创建 "mapper" 目录,用于存放 MyBatis 的 Mapper 文件。 7. 在 "com.example.model" 包下创建 "User" 类,用于表示用户对象。 8. 在 "com.example.dao" 包下创建 "UserDao" 接口,并编写相关的增删改查方法,使用 MyBatis 实现。 9. 在 "com.example.service" 包下创建 "UserService" 接口和 "UserServiceImpl" 实现类,用于封装 DAO 层的操作。 10. 在 "com.example.controller" 包下创建 "UserController" 类,用于处理用户登录注册请求。 11. 编写页面文件,比如 "login.jsp" 和 "register.jsp",用于用户登录注册。 12. 配置 "web.xml" 文件,设置 DispatcherServlet 和 Spring 相关配置。 13. 配置 Spring 配置文件,比如 "applicationContext.xml",用于注入 DAO 和 Service 层的 Bean。 14. 运行项目,访问登录页面和注册页面,进行测试。 以上是使用 IntelliJ IDEA 创建用户登录注册案例的基本步骤,具体实现细节可以参考相关的开发文档和示例代码
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值