package controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class TransferController extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String username=req.getParameter("username");
//将响应信息拼接一下
resp.setCharacterEncoding("UTF-8");
PrintWriter out= resp.getWriter();
out.write("<html lang=\"en\">" +
" <head>" +
" <meta charset=\"UTF-8\">" +
" </head>" +
" <body>" +
" <form action=\"doTransfer\" method=\"post\">" +
" 请输入转账账户:<input type=\"text\" name=\"transferName\" value=\"\"><br>" +
" 请输入转账金额:<input type=\"text\" name=\"transferMoney\" value=\"\"><br>" +
" <input type=\"submit\" value=\"确认转账\">" +
" <input type=\"hidden\" name=\"username\" value=\""+username+"\">" +
" </form>" +
" </body>" +
"</html>");
}
}
package controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class WithdrawController extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String username=req.getParameter("username");
//将响应信息拼接一下
resp.setCharacterEncoding("UTF-8");
PrintWriter out= resp.getWriter();
out.write("<html lang=\"en\">" +
" <head>" +
" <meta charset=\"UTF-8\">" +
" </head>" +
" <body>" +
" <form action=\"doWithdraw\" method=\"post\">" +
" 请输入取款金额:<input type=\"text\" name=\"withdrawMoney\" value=\"\"><br>" +
" <input type=\"submit\" value=\"确认取款\">" +
" <input type=\"hidden\" name=\"username\" value=\""+username+"\">" +
" </form>" +
" </body>" +
"</html>");
}
}
package dao;
import domain.Atm;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class AtmDao {
private String url="jdbc:mysql://localhost:3306/atm";
private String className="com.mysql.jdbc.Driver";
private String password="cy414ljh212,,,";
public Atm selectOne(String username){
Atm atm=null;
try {
Class.forName(className);
Connection connection=DriverManager.getConnection(url,"root",password);
String sql="SELECT USERNAME,PASSWORD,BALANCE FROM ATM WHERE USERNAME = ?";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,username);
ResultSet resultSet=preparedStatement.executeQuery();
if(resultSet.next()){
atm=new Atm();
atm.setUsername(resultSet.getString("username"));
atm.setPassword(resultSet.getString("password"));
atm.setBalance(resultSet.getFloat("balance"));
}
resultSet.close();
preparedStatement.close();
}catch (Exception e){
e.printStackTrace();
}
return atm;
}
public void updateOne(Atm atm){
try {
Class.forName(className);
Connection connection=DriverManager.getConnection(url,"root",password);
String sql="UPDATE ATM SET PASSWORD = ?,BALANCE = ? WHERE USERNAME = ?";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,atm.getPassword());
preparedStatement.setFloat(2,atm.getBalance());
preparedStatement.setString(3,atm.getUsername());
preparedStatement.executeUpdate();
preparedStatement.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
package domain;
public class Atm {
private String username;
private String password;
private Float balance;
public Atm(String username, String password, Float balance) {
this.username = username;
this.password = password;
this.balance = balance;
}
public Atm() {
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public Float getBalance() {
return balance;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setBalance(Float balance) {
this.balance = balance;
}
}
package service;
import dao.AtmDao;
import domain.Atm;
import util.MySpring;
public class AtmService {
private AtmDao atmDao = MySpring.getJavaBean("dao.AtmDao");
public String login(String username, String password) {
String result = "用户名或密码错误";
Atm atm = atmDao.selectOne(username);
if (atm != null && atm.getPassword().equals(password)) {
result = "登陆成功";
}
return result;
}
public Float inquire(String username) {
return atmDao.selectOne(username).getBalance();
}
public Float dposit(String username, Float dpositMoney) {
Atm atm = atmDao.selectOne(username);
atm.setBalance(atm.getBalance() + dpositMoney);
atmDao.updateOne(atm);
return atm.getBalance();
}
public Float withdraw(String username, Float withdrawMoney) {
Atm atm = atmDao.selectOne(username);
if (atm.getBalance() < withdrawMoney) {
return -1F;
} else {
atm.setBalance(atm.getBalance() - withdrawMoney);
atmDao.updateOne(atm);
return atm.getBalance();
}
}
public Float transfer(String username, String transferName, Float transferMoney) {
Atm atm1 = atmDao.selectOne(username);
Atm atm2 = atmDao.selectOne(transferName);
if(atm2==null){
return -1F;
}else if(atm1.getBalance()<transferMoney){
return -2F;
}else{
atm1.setBalance(atm1.getBalance() - transferMoney);
atm2.setBalance(atm2.getBalance()+transferMoney);
atmDao.updateOne(atm1);
atmDao.updateOne(atm2);
return atm1.getBalance();
}
}
}
package util;
import java.util.HashMap;
public class MySpring {
private static HashMap<String,Object> beanMap=new HashMap<>();
public static <T>T getJavaBean(String className){
T obj=(T) beanMap.get(className);
if(obj==null){
try {
Class clazz=Class.forName(className);
obj=(T) clazz.newInstance();
beanMap.put(className,obj);
}catch (Exception e){
e.printStackTrace();
}
}
return obj;
}
}
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 登录-->
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>controller.LoginController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<!-- 查询-->
<servlet>
<servlet-name>query</servlet-name>
<servlet-class>controller.QueryController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>query</servlet-name>
<url-pattern>/query</url-pattern>
</servlet-mapping>
<!-- 存款-->
<servlet>
<servlet-name>deposit</servlet-name>
<servlet-class>controller.DepositController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>deposit</servlet-name>
<url-pattern>/deposit</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>doDeposit</servlet-name>
<servlet-class>controller.DoDepositController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>doDeposit</servlet-name>
<url-pattern>/doDeposit</url-pattern>
</servlet-mapping>
<!-- 取款-->
<servlet>
<servlet-name>withdraw</servlet-name>
<servlet-class>controller.WithdrawController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>withdraw</servlet-name>
<url-pattern>/withdraw</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>doWithdraw</servlet-name>
<servlet-class>controller.DoWithdrawController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>doWithdraw</servlet-name>
<url-pattern>/doWithdraw</url-pattern>
</servlet-mapping>
<!-- 转账-->
<servlet>
<servlet-name>transfer</servlet-name>
<servlet-class>controller.TransferController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>transfer</servlet-name>
<url-pattern>/transfer</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>doTransfer</servlet-name>
<servlet-class>controller.DoTransferController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>doTransfer</servlet-name>
<url-pattern>/doTransfer</url-pattern>
</servlet-mapping>
</web-app>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="login" method="post">
<p>
账号:<input type="text" name="username" value="请输入用户名" style="color: #999;"
onfocus="if(this.value =='请输入用户名'){this.value=''}">
</p>
<p>
密码:<input type="password" name="password">
</p>
<input type="submit" value="登录">
</form>
</body>
</html>
AtmForServlet.zip