首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JSP + JDBC 實戰:用戶登錄注冊系統架構與代碼實現

     編輯:Java 綜合教學

JSP + JDBC 實戰:用戶登錄注冊系統架構與代碼實現

1. 技術棧與環境

  • MyEclipse 10、JDK 1.6、Tomcat 7.0、MySQL 5.7
  • 驅動包:mysql-connector-java-5.1.6-bin.jar 放入 WEB-INF/lib

2. 系統架構

瀏覽器 → JSP 頁面 → JDBC → MySQL
頁面流轉:login.jsp → login_action.jsp → welcome.jsp
           ↳ register.jsp → register_action.jsp → login.jsp
           ↳ logout.jsp → login.jsp

3. 核心 JSP 代碼精簡

登錄頁

<form action="login_action.jsp" method="post">
  用戶名: <input name="username"><br>
  密碼: <input type="password" name="password"><br>
  <input type="submit" value="登錄"> | <a href="register.jsp">注冊</a>
</form>

登錄處理

<%@ page import="java.sql.*" %>
<%
  String u = request.getParameter("username");
  String p = request.getParameter("password");
  if (u==null || p==null) { response.sendRedirect("login.jsp"); return; }

  Class.forName("com.mysql.jdbc.Driver");
  Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/library_system","root","root");
  Statement s = c.createStatement();
  ResultSet rs = s.executeQuery("select * from userInfo where username='"+u+"' and password='"+p+"'");
  if (rs.next()) {
      session.setAttribute("username", u);
      response.sendRedirect("welcome.jsp");
  } else response.sendRedirect("login.jsp");
  rs.close(); s.close(); c.close();
%>

歡迎頁

歡迎你,<%= session.getAttribute("username") %>
<form action="logout.jsp" method="post"><input type="submit" value="退出"></form>

退出處理

<% session.removeAttribute("username"); response.sendRedirect("login.jsp"); %>

注冊頁與處理

注冊頁收集 username/password1/password2/email;處理頁校驗兩次密碼一致、用戶名唯一,通過則 INSERT 入庫並跳轉登錄頁。

4. 數據庫建表示例

CREATE TABLE userInfo (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) UNIQUE NOT NULL,
    password VARCHAR(50) NOT NULL,
    mail VARCHAR(100)
);

5. 關鍵問題與改進方向

問題風險改進
SQL 拼接SQL 注入PreparedStatement + 參數化
明文密碼數據洩露BCrypt/SCrypt 加密存儲
連接未池化性能差、洩露Druid/HikariCP 連接池
業務邏輯寫在 JSP難維護、難測試MVC 分層:Servlet/Service/DAO
異常僅打印堆棧用戶見紅字、無友好提示統一異常處理、錯誤頁面

6. 總結

本例演示了最基礎的 JSP+JDBC 交互流程,適合初學者理解請求處理、會話管理、數據庫操作全鏈路。生產環境必須引入分層架構、連接池、參數化 SQL、密碼加密等安全與工程化措施。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved