当前位置:实例文章 » JAVA Web实例» [文章]servlet银行储蓄管理系统java存取转账交易 jsp源代码mysql

servlet银行储蓄管理系统java存取转账交易 jsp源代码mysql

发布人:shili8 发布时间:2025-03-05 20:55 阅读次数:0

**Servlet银行储蓄管理系统Java实现**

### 系统功能概述本系统是一个简单的银行储蓄管理系统,支持用户登录、查看余额、转账等基本功能。系统使用Java Servlet技术开发,JSP作为视图层,MySQL作为数据库。

### 系统结构* **Servlet**:负责处理请求和响应* **JSP**:用于显示页面内容* **DAO**:数据访问对象,负责与数据库交互* **Model**:模型类,封装业务逻辑### 系统功能实现####1. 用户登录**LoginServlet.java**

javaimport javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet. />import javax.servlet. />import javax.servlet. />import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 // 获取用户名和密码 String username = req.getParameter("username");
 String password = req.getParameter("password");

 // 验证用户登录信息 if (verifyLogin(username, password)) {
 // 登录成功,跳转到首页 req.getRequestDispatcher("/index.jsp").forward(req, resp);
 } else {
 // 登录失败,显示错误消息 req.setAttribute("error", "用户名或密码错误");
 req.getRequestDispatcher("/login.jsp").forward(req, resp);
 }
 }

 private boolean verifyLogin(String username, String password) {
 // 与数据库交互,验证用户登录信息 return DAO.verifyLogin(username, password);
 }
}


####2. 查看余额**BalanceServlet.java**
javaimport javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet. />import javax.servlet. />import javax.servlet. />import java.io.IOException;

@WebServlet("/balance")
public class BalanceServlet extends HttpServlet {
 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 // 获取用户名 String username = req.getParameter("username");

 // 查询用户余额 double balance = DAO.getBalance(username);

 // 显示余额信息 req.setAttribute("balance", balance);
 req.getRequestDispatcher("/balance.jsp").forward(req, resp);
 }
}


####3. 转账**TransferServlet.java**
javaimport javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet. />import javax.servlet. />import javax.servlet. />import java.io.IOException;

@WebServlet("/transfer")
public class TransferServlet extends HttpServlet {
 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 // 获取用户名、转出金额和转入账户 String username = req.getParameter("username");
 double amount = Double.parseDouble(req.getParameter("amount"));
 String toAccount = req.getParameter("toAccount");

 // 转账操作 if (DAO.transfer(username, toAccount, amount)) {
 // 转账成功,显示消息 req.setAttribute("message", "转账成功");
 } else {
 // 转账失败,显示错误消息 req.setAttribute("error", "转账失败");
 }

 // 跳转到首页 req.getRequestDispatcher("/index.jsp").forward(req, resp);
 }
}


### DAO实现**DAO.java**
javaimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DAO {
 private static final String DB_URL = "jdbc:mysql://localhost:3306/bank";
 private static final String USER = "root";
 private static final String PASS = "";

 public boolean verifyLogin(String username, String password) {
 try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
 PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE username=? AND password=?")) {

 pstmt.setString(1, username);
 pstmt.setString(2, password);

 ResultSet rs = pstmt.executeQuery();

 return rs.next();
 } catch (Exception e) {
 System.out.println(e.getMessage());
 return false;
 }
 }

 public double getBalance(String username) {
 try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
 PreparedStatement pstmt = conn.prepareStatement("SELECT balance FROM users WHERE username=?")) {

 pstmt.setString(1, username);

 ResultSet rs = pstmt.executeQuery();

 if (rs.next()) {
 return rs.getDouble(1);
 }
 } catch (Exception e) {
 System.out.println(e.getMessage());
 return0;
 }

 return0;
 }

 public boolean transfer(String fromAccount, String toAccount, double amount) {
 try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
 PreparedStatement pstmt1 = conn.prepareStatement("UPDATE users SET balance=balance-? WHERE username=?");
 PreparedStatement pstmt2 = conn.prepareStatement("UPDATE users SET balance=balance+? WHERE username=?")) {

 pstmt1.setDouble(1, amount);
 pstmt1.setString(2, fromAccount);

 pstmt2.setDouble(1, amount);
 pstmt2.setString(2, toAccount);

 if (pstmt1.executeUpdate() ==1 && pstmt2.executeUpdate() ==1) {
 return true;
 }
 } catch (Exception e) {
 System.out.println(e.getMessage());
 return false;
 }

 return false;
 }
}


### JSP实现**login.jsp**
jsp<!DOCTYPE html>
<html>
<head>
 <title>Login</title>
</head>
<body>
 <form action="login" method="post">
 <label>Username:</label>
 <input type="text" name="username">


 <label>Password:</label>
 <input type="password" name="password">


 <input type="submit" value="Login">
 </form>
</body>
</html>


**index.jsp**
jsp<!DOCTYPE html>
<html>
<head>
 <title>Index</title>
</head>
<body>
 <h1>Welcome to Bank Management System!</h1>
 <a href="balance">Check Balance</a>

 <a href="transfer">Transfer Money</a>
</body>
</html>


**balance.jsp**
jsp<!DOCTYPE html>
<html>
<head>
 <title>Balance</title>
</head>
<body>
 <h1>Your balance is: ${balance}</h1>
</body>
</html>


### 总结本系统实现了基本的银行储蓄管理功能,包括用户登录、查看余额和转账。使用Java Servlet技术开发,JSP作为视图层,MySQL作为数据库。DAO类负责与数据库交互,模型类封装业务逻辑。

其他信息

其他资源

Top