最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用IDEA完成登錄與注冊功能

 更新時(shí)間:2024年07月04日 12:07:16   作者:Smrsar  
這篇文章主要介紹了如何使用IDEA完成登錄與注冊功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

一,完成數(shù)據(jù)庫編寫

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;
 

二,網(wǎng)頁前端顯示部分(HTML部分)

注:注意文件創(chuàng)建地方

分層思想:創(chuàng)建一些包將一大堆代碼分散到各個(gè)包中,可以使代碼簡潔,容易后期維護(hù)

主頁面

<%--
  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" rel="external nofollow"  rel="external nofollow" >去登陸</a>
  </body>
</html>

登錄頁面

<%--
  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不經(jīng)過數(shù)據(jù),沒有jsp經(jīng)過--%>
<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" rel="external nofollow" >沒有賬號?前往注冊</a>
    <a href="index.jsp" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >返回首頁</a>
</form>
</body>
</html>

注冊頁面

<%--
  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" rel="external nofollow"  rel="external nofollow" >有賬號?前往登錄</a>
  <a href="index.jsp" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >返回首頁</a>
</form>
</body>
</html>

錯(cuò)誤頁面

<%--
  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>錯(cuò)誤</a>
<a href="index.jsp" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >返回登錄頁面</a>
</body>
</html>

登陸成功后跳轉(zhuǎn)頁面

<%--
  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部分)

 bean包用來放屬性的構(gòu)造方法

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;
    }
}

dao包用來放Java代碼(注冊部分的JDBC代碼,分層方法:構(gòu)建成一個(gè)方法,在Servlet中直接調(diào)用)

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,獲取數(shù)據(jù)庫連接
            con=JDBCUtil.GetCon();
            //2,定義sql語句
            String sql = "insert into ta_user(username,password,phone,address)values (?,?,?,?)";
            //3.獲取預(yù)處理對象
            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,執(zhí)行更新(增刪改)
            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;
    }
}

JDBC工具類構(gòu)造方法用來調(diào)用

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();
        }
    }
}

登錄和注冊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類也能實(shí)現(xiàn)跳轉(zhuǎn)
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 {
        //設(shè)置編碼
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("ext/html;charset=UTF-8");
        //請求獲取數(shù)據(jù)
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        Connection con = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;
        Userz login = null;
        try {
            //調(diào)用已編寫的JDBC工具類內(nèi)容
            con = JDBCUtil.GetCon();
            //定義sql語句
            String sql = "select * from ta_user where username=? and password=?";
           //獲取預(yù)處理對象
            pstm = con.prepareStatement(sql);
            //傳參
            pstm.setObject(1, username);
            pstm.setObject(2, password);
            //執(zhí)行查詢
            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 {
            //調(diào)用已編寫的JDBC工具類內(nèi)容
            JDBCUtil.Close(rs, pstm, con);
        }
        //判斷是否為空,跳轉(zhuǎn)到對應(yīng)頁面
        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,設(shè)置編碼
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("ext/html;charset=UTF-8");
        //2,獲取請求參數(shù)
        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,實(shí)例化對象后調(diào)用使用
        UserDaoImpl userDao=new UserDaoImpl();
        int row=userDao.register(user);
        //5,作出響應(yīng)
        if (row > 0) {
            //成功跳轉(zhuǎn)到登錄頁面
            resp.sendRedirect("login.jsp");
        } else {
            //注冊失敗跳轉(zhuǎn)到注冊頁
            resp.sendRedirect("register.jsp");
        }
    }
}
 

到此這篇關(guān)于使用IDEA完成登錄與注冊的文章就介紹到這了,更多相關(guān)idea登錄注冊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中List的contains()方法的使用小結(jié)

    Java中List的contains()方法的使用小結(jié)

    List?的?contains()?方法用于檢查列表中是否包含指定的元素,借助equals()方法進(jìn)行判斷,下面就來介紹Java中List的contains()方法的使用小結(jié),感興趣的可以了解一下
    2025-04-04
  • Java 8 Stream filter流式過濾器詳解

    Java 8 Stream filter流式過濾器詳解

    本文介紹了Java 8的Stream API中的filter方法,展示了如何使用lambda表達(dá)式根據(jù)條件過濾流式數(shù)據(jù),通過實(shí)際代碼示例,展示了filter方法的高效性以及如何結(jié)合findAny和orElse方法處理更復(fù)雜的情況,適合Java新手和追求代碼優(yōu)雅的開發(fā)者閱讀,感興趣的朋友一起看看吧
    2025-02-02
  • java基礎(chǔ)的詳細(xì)了解第三天

    java基礎(chǔ)的詳細(xì)了解第三天

    這篇文章對Java編程語言的基礎(chǔ)知識作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來幫助
    2021-08-08
  • Spring Boot的單例模式實(shí)現(xiàn)代碼

    Spring Boot的單例模式實(shí)現(xiàn)代碼

    Spring Boot里的單例不是GoF意義上的全JVM 唯一對象 + 私有構(gòu)造器,而是由 Spring 容器管理的每個(gè) ApplicationContext 僅一個(gè)實(shí)例,本文介紹Spring Boot的單例模式是如何實(shí)現(xiàn)的,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • SpringBoot系列教程之防重放與操作冪等

    SpringBoot系列教程之防重放與操作冪等

    同一條數(shù)據(jù)被用戶點(diǎn)擊了多次,導(dǎo)致數(shù)據(jù)冗余,需要防止弱網(wǎng)絡(luò)等環(huán)境下的重復(fù)點(diǎn)擊,下面這篇文章主要給大家介紹了關(guān)于SpringBoot系列教程之防重放與操作冪等的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Java反射機(jī)制詳解

    Java反射機(jī)制詳解

    Java的反射機(jī)制是在運(yùn)行狀態(tài)中,對于任何一個(gè)類,都可以知道這個(gè)類的所有屬性和方法,對于任何一個(gè)對象,都可以調(diào)用它所有的方法和屬性,修改部分類型信息。本文就來詳細(xì)講講Java反射機(jī)制的使用
    2022-07-07
  • 詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題

    詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題

    這篇文章主要介紹了詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題 ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-12-12
  • java通過AOP實(shí)現(xiàn)全局日志打印詳解

    java通過AOP實(shí)現(xiàn)全局日志打印詳解

    最近自己一直再看現(xiàn)有微服務(wù)的日志模塊,發(fā)現(xiàn)就是使用AOP來做controller層的日志處理,加上項(xiàng)目在進(jìn)行架構(gòu)優(yōu)化,這篇文章主要給大家介紹了關(guān)于java通過AOP實(shí)現(xiàn)全局日志打印的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • MybatisPlus使用排序查詢時(shí)將null值放到最后

    MybatisPlus使用排序查詢時(shí)將null值放到最后

    按照更新時(shí)間排序,但是更新時(shí)間可能為null,因此將null的數(shù)據(jù)放到最后,本文主要介紹了MybatisPlus使用排序查詢時(shí)將null值放到最后,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 詳解Spring boot上配置與使用mybatis plus

    詳解Spring boot上配置與使用mybatis plus

    這篇文章主要介紹了詳解Spring boot上配置與使用mybatis plus,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

武夷山市| 江西省| 离岛区| 峨眉山市| 浦东新区| 阿拉善左旗| 手游| 建昌县| 利辛县| 崇明县| 恭城| 沂水县| 即墨市| 当涂县| 英超| 吉首市| 射阳县| 博乐市| 含山县| 旬邑县| 驻马店市| 台东市| 绥化市| 乃东县| 当涂县| 弋阳县| 华亭县| 兴国县| 资兴市| 镇远县| 炉霍县| 镇坪县| 花莲县| 鲁甸县| 张家界市| 八宿县| 岫岩| 册亨县| 水富县| 蒙阴县| 手游|