如何使用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)建一些包將一大堆代碼分散到各個包中,可以使代碼簡潔,容易后期維護
主頁面
<%-- 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>
錯誤頁面
<%-- 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" 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)建成一個方法,在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類也能實現(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,實例化對象后調(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)文章
springboot+mybatis通過實體類自動生成數(shù)據(jù)庫表的方法
這篇文章主要介紹了springboot+mybatis通過實體類自動生成數(shù)據(jù)庫表的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2020-07-07java中l(wèi)ong數(shù)據(jù)類型轉(zhuǎn)換為int類型
這篇文章主要講解Java中基本數(shù)據(jù)類型,java long 類型與其java int類型的轉(zhuǎn)換的幾種方法,希望能給大家做一個參考2016-07-07IntelliJ?IDEA?2020.2.3永久破解激活教程(親測有效)
intellij?idea?2022是一款市面上最好的JAVA?IDE編程工具,該工具支持git、svn、github等版本控制工具,整合了智能代碼助手、代碼自動提示等功能,本教程給大家分享IDEA?2022最新永久激活碼,感興趣的朋友參考下吧2020-10-10