如何使用IDEA完成登錄與注冊功能
一,完成數(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é)
List?的?contains()?方法用于檢查列表中是否包含指定的元素,借助equals()方法進(jìn)行判斷,下面就來介紹Java中List的contains()方法的使用小結(jié),感興趣的可以了解一下2025-04-04
Spring Boot的單例模式實(shí)現(xiàn)代碼
Spring Boot里的單例不是GoF意義上的全JVM 唯一對象 + 私有構(gòu)造器,而是由 Spring 容器管理的每個(gè) ApplicationContext 僅一個(gè)實(shí)例,本文介紹Spring Boot的單例模式是如何實(shí)現(xiàn)的,感興趣的朋友跟隨小編一起看看吧2026-03-03
詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題
這篇文章主要介紹了詳解五種方式讓你在java中讀取properties文件內(nèi)容不再是難題 ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12
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值放到最后
按照更新時(shí)間排序,但是更新時(shí)間可能為null,因此將null的數(shù)據(jù)放到最后,本文主要介紹了MybatisPlus使用排序查詢時(shí)將null值放到最后,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
詳解Spring boot上配置與使用mybatis plus
這篇文章主要介紹了詳解Spring boot上配置與使用mybatis plus,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05

