//告诉request才用如下的字符集进行组合
    req.setCharacterEncoding(“UTF-8”);
    //_设置服务器向浏览器发送响应信息的字符集
    _resp.setCharacterEncoding(“UTF-8”);

    这两条语句很重要,不加上很可能出现乱码问题

    image.png
    返回操作代码:**

    1. <script type="text/javascript">
    2. window.onload=function () {
    3. var inputElement=document.getElementById("back");
    4. inputElement.onclick=function () {
    5. window.history.back();
    6. }
    7. }
    8. </script>

    AtmForServlet.zip

    package controller;
    
    import service.AtmService;
    import util.MySpring;
    
    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 LoginController extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("UTF-8");
            String username=req.getParameter("username");
            String password= req.getParameter("password");
            AtmService atmService= MySpring.getJavaBean("service.AtmService");
            String result=atmService.login(username,password);
            System.out.println(result);
    
            //设置服务器向浏览器发送响应信息的字符集
            resp.setCharacterEncoding("UTF-8");
            PrintWriter out= resp.getWriter();
            out.write("<html>");
            out.write("<head>");
            out.write("<meta charset=\"UTF-8\"");
            out.write("</head>");
            out.write("<body>");
            if("登陆成功".equals(result)){
                out.write("欢迎"+username+"进入ATM系统<br>");
                out.write("请输入操作选项<br>");
                out.write("<a href=\"query?username="+username+"\">查询</a><br>");
                out.write("<a href=\"query?username="+username+"\">存款</a><br>");
                out.write("<a href=\"query?username="+username+"\">取款</a><br>");
                out.write("<a href=\"query?username="+username+"\">转账</a><br>");
            }else{
                out.write(result);
            }
            out.write("</body>");
            out.write("</html>");
            out.flush();
        }
    }
    
    package controller;
    
    import service.AtmService;
    import util.MySpring;
    
    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 QueryController extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("UTF-8");
            String username=req.getParameter("username");
            AtmService atmService=MySpring.getJavaBean("service.AtmService");
            Float balance=atmService.inquire(username);
    
            resp.setCharacterEncoding("UTF-8");
            PrintWriter out= resp.getWriter();
            out.write("<html>");
            out.write("<head>");
            out.write("<meta charset=\"UTF-8\">");
            out.write("<script type=\"text/javascript\">" +
                    "            window.onload=function () {" +
                    "                var inputElement=document.getElementById(\"back\");" +
                    "                inputElement.onclick=function () {" +
                    "                    window.history.back();" +
                    "                }" +
                    "            }" +
                    "        </script>");
            out.write("</head>");
            out.write("<body>");
            out.write("用户"+username+"您的余额为"+balance+"元<br>");
            out.write("<input id=\"back\" type=\"button\" value=\"返回\">");
            out.write("</body>");
            out.write("</html>");
            out.flush();
        }
    }
    
    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;
        }
    }
    
    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();
        }
    }
    
    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>
    </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>