1. package controller;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.http.HttpServlet;
    4. import javax.servlet.http.HttpServletRequest;
    5. import javax.servlet.http.HttpServletResponse;
    6. import java.io.IOException;
    7. import java.io.PrintWriter;
    8. public class TransferController extends HttpServlet {
    9. @Override
    10. protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    11. req.setCharacterEncoding("UTF-8");
    12. String username=req.getParameter("username");
    13. //将响应信息拼接一下
    14. resp.setCharacterEncoding("UTF-8");
    15. PrintWriter out= resp.getWriter();
    16. out.write("<html lang=\"en\">" +
    17. " <head>" +
    18. " <meta charset=\"UTF-8\">" +
    19. " </head>" +
    20. " <body>" +
    21. " <form action=\"doTransfer\" method=\"post\">" +
    22. " 请输入转账账户:<input type=\"text\" name=\"transferName\" value=\"\"><br>" +
    23. " 请输入转账金额:<input type=\"text\" name=\"transferMoney\" value=\"\"><br>" +
    24. " <input type=\"submit\" value=\"确认转账\">" +
    25. " <input type=\"hidden\" name=\"username\" value=\""+username+"\">" +
    26. " </form>" +
    27. " </body>" +
    28. "</html>");
    29. }
    30. }
    1. package controller;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.http.HttpServlet;
    4. import javax.servlet.http.HttpServletRequest;
    5. import javax.servlet.http.HttpServletResponse;
    6. import java.io.IOException;
    7. import java.io.PrintWriter;
    8. public class WithdrawController extends HttpServlet {
    9. @Override
    10. protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    11. req.setCharacterEncoding("UTF-8");
    12. String username=req.getParameter("username");
    13. //将响应信息拼接一下
    14. resp.setCharacterEncoding("UTF-8");
    15. PrintWriter out= resp.getWriter();
    16. out.write("<html lang=\"en\">" +
    17. " <head>" +
    18. " <meta charset=\"UTF-8\">" +
    19. " </head>" +
    20. " <body>" +
    21. " <form action=\"doWithdraw\" method=\"post\">" +
    22. " 请输入取款金额:<input type=\"text\" name=\"withdrawMoney\" value=\"\"><br>" +
    23. " <input type=\"submit\" value=\"确认取款\">" +
    24. " <input type=\"hidden\" name=\"username\" value=\""+username+"\">" +
    25. " </form>" +
    26. " </body>" +
    27. "</html>");
    28. }
    29. }
    1. package dao;
    2. import domain.Atm;
    3. import java.sql.Connection;
    4. import java.sql.DriverManager;
    5. import java.sql.PreparedStatement;
    6. import java.sql.ResultSet;
    7. public class AtmDao {
    8. private String url="jdbc:mysql://localhost:3306/atm";
    9. private String className="com.mysql.jdbc.Driver";
    10. private String password="cy414ljh212,,,";
    11. public Atm selectOne(String username){
    12. Atm atm=null;
    13. try {
    14. Class.forName(className);
    15. Connection connection=DriverManager.getConnection(url,"root",password);
    16. String sql="SELECT USERNAME,PASSWORD,BALANCE FROM ATM WHERE USERNAME = ?";
    17. PreparedStatement preparedStatement=connection.prepareStatement(sql);
    18. preparedStatement.setString(1,username);
    19. ResultSet resultSet=preparedStatement.executeQuery();
    20. if(resultSet.next()){
    21. atm=new Atm();
    22. atm.setUsername(resultSet.getString("username"));
    23. atm.setPassword(resultSet.getString("password"));
    24. atm.setBalance(resultSet.getFloat("balance"));
    25. }
    26. resultSet.close();
    27. preparedStatement.close();
    28. }catch (Exception e){
    29. e.printStackTrace();
    30. }
    31. return atm;
    32. }
    33. public void updateOne(Atm atm){
    34. try {
    35. Class.forName(className);
    36. Connection connection=DriverManager.getConnection(url,"root",password);
    37. String sql="UPDATE ATM SET PASSWORD = ?,BALANCE = ? WHERE USERNAME = ?";
    38. PreparedStatement preparedStatement=connection.prepareStatement(sql);
    39. preparedStatement.setString(1,atm.getPassword());
    40. preparedStatement.setFloat(2,atm.getBalance());
    41. preparedStatement.setString(3,atm.getUsername());
    42. preparedStatement.executeUpdate();
    43. preparedStatement.close();
    44. }catch (Exception e){
    45. e.printStackTrace();
    46. }
    47. }
    48. }
    1. package domain;
    2. public class Atm {
    3. private String username;
    4. private String password;
    5. private Float balance;
    6. public Atm(String username, String password, Float balance) {
    7. this.username = username;
    8. this.password = password;
    9. this.balance = balance;
    10. }
    11. public Atm() {
    12. }
    13. public String getUsername() {
    14. return username;
    15. }
    16. public String getPassword() {
    17. return password;
    18. }
    19. public Float getBalance() {
    20. return balance;
    21. }
    22. public void setUsername(String username) {
    23. this.username = username;
    24. }
    25. public void setPassword(String password) {
    26. this.password = password;
    27. }
    28. public void setBalance(Float balance) {
    29. this.balance = balance;
    30. }
    31. }
    1. package service;
    2. import dao.AtmDao;
    3. import domain.Atm;
    4. import util.MySpring;
    5. public class AtmService {
    6. private AtmDao atmDao = MySpring.getJavaBean("dao.AtmDao");
    7. public String login(String username, String password) {
    8. String result = "用户名或密码错误";
    9. Atm atm = atmDao.selectOne(username);
    10. if (atm != null && atm.getPassword().equals(password)) {
    11. result = "登陆成功";
    12. }
    13. return result;
    14. }
    15. public Float inquire(String username) {
    16. return atmDao.selectOne(username).getBalance();
    17. }
    18. public Float dposit(String username, Float dpositMoney) {
    19. Atm atm = atmDao.selectOne(username);
    20. atm.setBalance(atm.getBalance() + dpositMoney);
    21. atmDao.updateOne(atm);
    22. return atm.getBalance();
    23. }
    24. public Float withdraw(String username, Float withdrawMoney) {
    25. Atm atm = atmDao.selectOne(username);
    26. if (atm.getBalance() < withdrawMoney) {
    27. return -1F;
    28. } else {
    29. atm.setBalance(atm.getBalance() - withdrawMoney);
    30. atmDao.updateOne(atm);
    31. return atm.getBalance();
    32. }
    33. }
    34. public Float transfer(String username, String transferName, Float transferMoney) {
    35. Atm atm1 = atmDao.selectOne(username);
    36. Atm atm2 = atmDao.selectOne(transferName);
    37. if(atm2==null){
    38. return -1F;
    39. }else if(atm1.getBalance()<transferMoney){
    40. return -2F;
    41. }else{
    42. atm1.setBalance(atm1.getBalance() - transferMoney);
    43. atm2.setBalance(atm2.getBalance()+transferMoney);
    44. atmDao.updateOne(atm1);
    45. atmDao.updateOne(atm2);
    46. return atm1.getBalance();
    47. }
    48. }
    49. }
    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>
    

    1617515329063.mp4 (22.28MB)AtmForServlet.zip