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类负责与数据库交互,模型类封装业务逻辑。

