《学习内容》:

    //========学习内容=========
    购物系统练习
    自己扩展了内容

    《知识点—笔记》
    //=========================

    《代码内容》:

    主要思路—->通过这个购物系统的项目,自己加上扩展了2给页面,可以在最后结算的时候,在下面加了一个
    button按钮,然后把当前的总金额存在request对象作用域中,请求转发到付款页面,上面是接收结算的金额
    下方是自己的微信二维码。

    login.jsp

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
    2. <html lang="en">
    3. <head>
    4. <title>购物系统登录</title>
    5. <script type="text/javascript">
    6. window.onload = function () {
    7. var regist = document.getElementById("regist")
    8. regist.onclick = function () {
    9. window.location.href = "regist.html";
    10. }
    11. }
    12. </script>
    13. </head>
    14. <%
    15. String loginResult = (String)session.getAttribute("loginResult");
    16. if (loginResult != null){
    17. out.write(loginResult+"<br>");
    18. }
    19. %>
    20. <body>
    21. <H2>购物系统 请您登录!</H2>
    22. <table>
    23. <form action="login" method="post">
    24. <tr>
    25. <td>用户名:</td>
    26. <td><input type="text" name="uname" value=""></td>
    27. </tr>
    28. <tr>
    29. <td>密码:</td>
    30. <td><input type="password" name="upassword" value=""></td>
    31. </tr>
    32. <tr>
    33. <td><input type="submit" value="登录"></td>
    34. <td><input type="button" id="regist" value="注册" ></td>
    35. </tr>
    36. </form>
    37. </table>
    38. </body>
    39. </html>

    LoginCont**roller**

    1. package com.atanmo.gwxt.controller;
    2. import com.atanmo.gwxt.service.UserService;
    3. import com.atanmo.gwxt.util.MySpring;
    4. import javax.servlet.ServletException;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import javax.servlet.http.HttpSession;
    9. import java.io.IOException;
    10. public class LoginController extends HttpServlet {
    11. private static UserService service = MySpring.getBean("com.atanmo.gwxt.service.UserService");
    12. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    13. //拿到账号 密码 调用业务层 判断登录
    14. request.setCharacterEncoding("UTF-8");
    15. String uname = request.getParameter("uname");
    16. String loginResult = service.login(uname, request.getParameter("upassword"));
    17. //把登录的结果 是否成功存进一次请求中
    18. request.setAttribute("loginResult",loginResult);
    19. if ("登录成功".equals(loginResult)){
    20. //将用户名 存入一次会话中
    21. HttpSession session = request.getSession();
    22. session.setAttribute("uname",uname);
    23. //重定向发起请求
    24. response.sendRedirect("selectAllKind");
    25. }else {
    26. request.getRequestDispatcher("login.jsp").forward(request,response);
    27. }
    28. }
    29. }

    kind.jsp

    1. <%@ page import="java.util.ArrayList" %>
    2. <%@ page import="com.atanmo.gwxt.domain.Kind" %>
    3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    4. <html>
    5. <head>
    6. <title>购物系统-选择商品类别</title>
    7. <script type="text/javascript">
    8. window.onload = function () {
    9. var KindSelect = document.getElementById("KindSelect");
    10. KindSelect.onchange = function () {
    11. window.location.href = "selectCommodity?kid="+this.value
    12. }
    13. }
    14. </script>
    15. </head>
    16. <body>
    17. <h2>欢迎来到---不坑死你才怪---购物系统</h2>
    18. <select id="KindSelect" name="kid">
    19. <option>===请选择===</option>
    20. <%
    21. ArrayList<Kind> arrayList = (ArrayList<Kind>) session.getAttribute("allKind");
    22. for (Kind kind : arrayList){
    23. out.write("<option value='"+kind.getKID()+"'>"+kind.getKNAME()+"</option>");
    24. }
    25. %>
    26. </select>
    27. </body>
    28. </html>

    CloseMoney.js**p**

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>付款</title>
    5. </head>
    6. <body>
    7. <table border="5" align="center" width="40%" height="40%">
    8. <tr fo>
    9. <th>请付款 总计:<%=session.getAttribute("sumMoney")%></th>
    10. </tr>
    11. <tr>
    12. <th>
    13. <img src="static/img/closeMoneyjpg.jpg">
    14. </th>
    15. </tr>
    16. </table>
    17. </body>
    18. </html>

    ShowClose.js**p**

    1. <%@ page import="java.util.ArrayList" %>
    2. <%@ page import="com.atanmo.gwxt.domain.Commodity" %>
    3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    4. <html>
    5. <head>
    6. <title>购物账单结算</title>
    7. <script>
    8. window.onload = function () {
    9. var closeButton = document.getElementById("close")
    10. closeButton.onclick = function () {
    11. window.location.href = "closeMoney"
    12. }
    13. }
    14. </script>
    15. </head>
    16. <body>
    17. <form action="closeShopping" method="post">
    18. <table border="6" align="center" width="60%" height="30">
    19. <tr>
    20. <th>商品名称</th>
    21. <th>商品价格</th>
    22. </tr>
    23. <%
    24. Float sumMoney = 0f;
    25. ArrayList<Commodity> shoppingCar = (ArrayList<Commodity>)session.getAttribute("shoppingCar");
    26. for (Commodity commodity : shoppingCar) {
    27. out.write("<tr>");
    28. out.write("<td>"+commodity.getCNAME()+"</td>");
    29. out.write("<td>"+commodity.getCPRINCE()+"</td>");
    30. out.write("</tr>");
    31. sumMoney += commodity.getCPRINCE();
    32. session.setAttribute("sumMoney",sumMoney);
    33. }
    34. %>
    35. <tr>
    36. <th>总计:</th>
    37. <th><%=sumMoney%></th>
    38. </tr>
    39. </table>
    40. <table border="1" align="center">
    41. <tr>
    42. <td><input align="center" type="button" id="close" value="结算"></td>
    43. </tr>
    44. </table>
    45. <input type="hidden" name="sumMoney" value="<%=sumMoney%>">
    46. </form>
    47. </body>
    48. </html>

    showCommodi**tys.jsp**

    1. <%@ page import="java.util.ArrayList" %>
    2. <%@ page import="com.atanmo.gwxt.domain.Commodity" %>
    3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    4. <html>
    5. <head>
    6. <title>商品列表</title>
    7. <style>
    8. td{
    9. text-align: center;
    10. }
    11. </style>
    12. <script>
    13. window.onload = function () {
    14. var buttons = document.getElementsByClassName("countinueButton")
    15. for (var i = 0;i<buttons.length;i++){
    16. buttons[i].onclick = function () {
    17. var hidden = document.getElementById("hidden")
    18. hidden.value = this.value
    19. var submitForm = document.getElementById("submitForm")
    20. submitForm.submit();
    21. }
    22. }
    23. }
    24. </script>
    25. </head>
    26. <body>
    27. <form id= 'submitForm' action="saveSelectedCommodity" method="post">
    28. <table border="5" align="center" width="60%" height="60%">
    29. <tr>
    30. <th>已选商品</th>
    31. <th>商品名称</th>
    32. <th>商品单价</th>
    33. </tr>
    34. <%
    35. ArrayList<Commodity> commodities = (ArrayList<Commodity>) request.getAttribute("commodities");
    36. for (Commodity commodity : commodities){
    37. out.write("<tr>");
    38. out.write("<td><input type= 'checkbox' name='cid' value='"+commodity.getCID()+"'></td>");
    39. out.write("<td>"+commodity.getCNAME()+"</td>");
    40. out.write("<td>"+commodity.getCPRINCE()+"</td>");
    41. out.write("</tr>");
    42. }
    43. %>
    44. <tr>
    45. <td colspan="3">
    46. <input class= "countinueButton" type="button" value="继续购物">
    47. &nbsp;&nbsp;||&nbsp;&nbsp;
    48. <input class="countinueButton" type="button" value="结算清单">
    49. </td>
    50. </tr>
    51. </table>
    52. <input id='hidden' type="hidden" name="buttonValue" value="">
    53. </form>
    54. </body>
    55. </html>

    CloseMoneyCon**troller**

    1. package com.atanmo.gwxt.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. public class CloseMoneyController extends HttpServlet {
    8. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    9. request.setCharacterEncoding("UTF-8");
    10. String sumMoney = request.getParameter("sumMoney");
    11. request.getRequestDispatcher("CloseMoney.jsp").forward(request,response);
    12. }
    13. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    14. this.doPost(request,response);
    15. }
    16. }

    SaveSelectedComm**oditysController**

    1. package com.atanmo.gwxt.controller;
    2. import com.atanmo.gwxt.domain.Commodity;
    3. import com.atanmo.gwxt.service.CommodityService;
    4. import com.atanmo.gwxt.util.MySpring;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.http.HttpServlet;
    7. import javax.servlet.http.HttpServletRequest;
    8. import javax.servlet.http.HttpServletResponse;
    9. import javax.servlet.http.HttpSession;
    10. import java.io.IOException;
    11. import java.util.ArrayList;
    12. public class saveSelectedCommodityController extends HttpServlet {
    13. private static CommodityService service = MySpring.getBean("com.atanmo.gwxt.service.CommodityService");
    14. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    15. request.setCharacterEncoding("UTF-8");
    16. //获取前端的参数是 继续购物 还是 结算
    17. String buttonValue = request.getParameter("buttonValue");
    18. //获取前端的已选商品的参数
    19. String[] cids = request.getParameterValues("cid");
    20. HttpSession session = request.getSession();
    21. //到session中去拿这个集合
    22. ArrayList<Commodity> shoppingCar = (ArrayList<Commodity>)session.getAttribute("shoppingCar");
    23. if (shoppingCar == null){
    24. //调用service方法来通过
    25. shoppingCar = service.getSelectedCommodityList(cids);
    26. session.setAttribute("shoppingCar",shoppingCar);
    27. }
    28. //到此为止,已经把用户选择的商品全部存入了集合中 那么我们来判断他点的是继续购物还是 结算
    29. if ("继续购物".equals(buttonValue)){
    30. request.getRequestDispatcher("kind.jsp").forward(request,response);
    31. }else {
    32. request.getRequestDispatcher("ShowClose.jsp").forward(request,response);
    33. }
    34. System.out.println(buttonValue);
    35. }
    36. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    37. this.doPost(request,response);
    38. }
    39. }

    SelectAllkindCon**troller**

    package com.atanmo.gwxt.controller;
    
    import com.atanmo.gwxt.domain.Kind;
    import com.atanmo.gwxt.service.KindService;
    import com.atanmo.gwxt.util.MySpring;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.ArrayList;
    
    public class SelectAllKindController extends HttpServlet {
    
        private static KindService kindService = MySpring.getBean("com.atanmo.gwxt.service.KindService");
    
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                //调用业务层方法 查询全部的类别
                ArrayList<Kind> allKind = kindService.selectAllKind();
            HttpSession session = request.getSession();
            session.setAttribute("allKind",allKind);
            request.getRequestDispatcher("kind.jsp").forward(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                this.doPost(request,response);
        }
    }
    

    SelectCommodityCont**roller**

    package com.atanmo.gwxt.controller;
    
    import com.atanmo.gwxt.dao.CommodityDao;
    import com.atanmo.gwxt.domain.Commodity;
    import com.atanmo.gwxt.service.CommodityService;
    import com.atanmo.gwxt.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.util.ArrayList;
    
    public class SelectCommodityController extends HttpServlet {
    
        private static CommodityService service = MySpring.getBean("com.atanmo.gwxt.service.CommodityService");
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                request.setCharacterEncoding("UTF-8");
                String kid = request.getParameter("kid");
                //调用业务层去给我找这个kid对应的全部商品
            ArrayList<Commodity> commodities = service.selectAllCommmodity(Integer.parseInt(kid));
            request.setAttribute("commodities",commodities);
            request.getRequestDispatcher("showCommoditys.jsp").forward(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                this.doPost(request,response);
        }
    }
    

    CommodityD**ao**

    package com.atanmo.gwxt.dao;
    
    import com.atanmo.gwxt.domain.Commodity;
    import com.atanmo.gwxt.domain.Kind;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    
    @SuppressWarnings("all")
    public class CommodityDao {
    
        private String driver = "com.mysql.cj.jdbc.Driver";
        private String url = "jdbc:mysql://localhost:3306/shopping?serverTimezone=CST&characterEncoding=UTF-8";
        private String username = "root";
        private String password = "at123123";
    
        public ArrayList<Commodity> selectAllCommodity(Integer kid) {
            ArrayList<Commodity> kidOrmCommodity = new ArrayList<>();
            Kind kind = null;
            try {
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url, username, password);
                String sql = "SELECT CID,CNAME,CPRINCE,KID FROM T_COMMODITY WHERE KID = ?";
                PreparedStatement pstat = conn.prepareStatement(sql);
                pstat.setInt(1,kid);
                ResultSet rst = pstat.executeQuery();
                while (rst.next()){
                    Commodity commodity = new Commodity(
                            rst.getInt("CID"),
                            rst.getString("CNAME"),
                            rst.getFloat("CPRINCE"),
                            kind = new Kind()
                    );
                    kind.setKID(kid);
                    kidOrmCommodity.add(commodity);
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return kidOrmCommodity;
        }
    
        public Commodity selectSelectedCommoditys(Integer cid) {
            Commodity commodity = null;
            Kind kind = new Kind();
            try {
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url, username, password);
                String sql = "SELECT CID,CNAME,CPRINCE,KID FROM T_COMMODITY WHERE CID = ?";
                PreparedStatement pstat = conn.prepareStatement(sql);
                pstat.setInt(1,cid);
                ResultSet rst = pstat.executeQuery();
                if (rst.next()){
                    kind.setKID(rst.getInt("KID"));
                    commodity = new Commodity(
                            rst.getInt("CID"),rst.getString("CNAME"),
                            rst.getFloat("CPRINCE"),kind);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return commodity;
        }
    }
    

    KindD**ao**

    package com.atanmo.gwxt.dao;
    
    import com.atanmo.gwxt.domain.Kind;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    
    public class KindDao {
    
        private String driver = "com.mysql.cj.jdbc.Driver";
        private String url = "jdbc:mysql://localhost:3306/shopping?serverTimezone=CST&characterEncoding=UTF-8";
        private String username = "root";
        private String password = "at123123";
    
        public ArrayList<Kind> selectAllKind() {
            ArrayList<Kind> kindMap = new ArrayList<>();
            try {
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url,username,password);
                String sql = "SELECT KID,KNAME FROM T_KIND";
                PreparedStatement pstat = conn.prepareStatement(sql);
                ResultSet rst = pstat.executeQuery();
                while (rst.next()){
                    Kind kind = new Kind(rst.getInt("KID"), rst.getString("KNAME"));
                    kindMap.add(kind);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return kindMap;
        }
    }
    

    UserDa**o**

    package com.atanmo.gwxt.dao;
    
    import com.atanmo.gwxt.domain.User;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    public class  UserDao {
    
        private String driver = "com.mysql.cj.jdbc.Driver";
        private String url = "jdbc:mysql://localhost:3306/shopping?serverTimezone=CST&characterEncoding=UTF-8";
        private String username = "root";
        private String password = "at123123";
    
    
        public User checkLoginResult(String uname){
                User user = null;
            try {
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url, username, password);
                String sql = "SELECT * FROM T_USER WHERE UNAME = ?";
                PreparedStatement pstat = conn.prepareStatement(sql);
                if (uname != null) {
                    pstat.setString(1, uname);
                    ResultSet rst = pstat.executeQuery();
                    if (rst.next()) {
                        user = new User();
                        user.setUID(rst.getInt("UID"));
                        user.setUNAME(rst.getString("UNAME"));
                        user.setUPASSWORD(rst.getString("UPASSWORD"));
                        user.setYULIU1(rst.getString("YULIU1"));
                        user.setYULIU2(rst.getString("YULIU2"));
                    }
                }else {
                    return user;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return user;
        }
    
    }
    

    Commo**dity**

    package com.atanmo.gwxt.domain;
    
    public class Commodity {
    
        private Integer CID;
        private String CNAME;
        private Float CPRINCE;
        private Kind kind;
    
    
        public Commodity() {}
        public Commodity(Integer CID, String CNAME, Float CPRINCE, Kind kind) {
            this.CID = CID;
            this.CNAME = CNAME;
            this.CPRINCE = CPRINCE;
            this.kind = kind;
        }
    
        public Integer getCID() {
            return CID;
        }
    
        public void setCID(Integer CID) {
            this.CID = CID;
        }
    
        public String getCNAME() {
            return CNAME;
        }
    
        public void setCNAME(String CNAME) {
            this.CNAME = CNAME;
        }
    
        public Float getCPRINCE() {
            return CPRINCE;
        }
    
        public void setCPRINCE(Float CPRINCE) {
            this.CPRINCE = CPRINCE;
        }
    
        public Kind getKind() {
            return kind;
        }
    
        public void setKind(Kind kind) {
            this.kind = kind;
        }
    
        @Override
        public String toString() {
            return "Commodity{" +
                    "CID=" + CID +
                    ", CNAME='" + CNAME + '\'' +
                    ", CPRINCE=" + CPRINCE +
                    ", kind=" + kind +
                    '}';
        }
    }
    

    Kind

    package com.atanmo.gwxt.domain;
    
    public class Kind {
        private Integer KID;
        private String KNAME;
    
        public Kind() {}
        public Kind(Integer KID, String KNAME) {
            this.KID = KID;
            this.KNAME = KNAME;
        }
    
        public Integer getKID() {
            return KID;
        }
    
        public void setKID(Integer KID) {
            this.KID = KID;
        }
    
        public String getKNAME() {
            return KNAME;
        }
    
        public void setKNAME(String KNAME) {
            this.KNAME = KNAME;
        }
    
        @Override
        public String toString() {
            return "Kind{" +
                    "KID=" + KID +
                    ", KNAME='" + KNAME + '\'' +
                    '}';
        }
    }
    

    Us**er**

    package com.atanmo.gwxt.domain;
    
    import java.util.PrimitiveIterator;
    
    public class User {
    
        private Integer UID;
        private String UNAME;
        private String UPASSWORD;
        private String YULIU1;
        private String YULIU2;
    
        public User() {}
        public User(Integer UID, String UNAME, String UPASSWORD, String YULIU1, String YULIU2) {
            this.UID = UID;
            this.UNAME = UNAME;
            this.UPASSWORD = UPASSWORD;
            this.YULIU1 = YULIU1;
            this.YULIU2 = YULIU2;
        }
    
        public Integer getUID() {
            return UID;
        }
    
        public void setUID(Integer UID) {
            this.UID = UID;
        }
    
        public String getUNAME() {
            return UNAME;
        }
    
        public void setUNAME(String UNAME) {
            this.UNAME = UNAME;
        }
    
        public String getUPASSWORD() {
            return UPASSWORD;
        }
    
        public void setUPASSWORD(String UPASSWORD) {
            this.UPASSWORD = UPASSWORD;
        }
    
        public String getYULIU1() {
            return YULIU1;
        }
    
        public void setYULIU1(String YULIU1) {
            this.YULIU1 = YULIU1;
        }
    
        public String getYULIU2() {
            return YULIU2;
        }
    
        public void setYULIU2(String YULIU2) {
            this.YULIU2 = YULIU2;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "UID=" + UID +
                    ", UNAME='" + UNAME + '\'' +
                    ", UPASSWORD='" + UPASSWORD + '\'' +
                    ", YULIU1='" + YULIU1 + '\'' +
                    ", YULIU2='" + YULIU2 + '\'' +
                    '}';
        }
    }
    

    Commodity**Service**

    package com.atanmo.gwxt.service;
    
    import com.atanmo.gwxt.dao.CommodityDao;
    import com.atanmo.gwxt.domain.Commodity;
    import com.atanmo.gwxt.util.MySpring;
    
    import javax.swing.*;
    import java.util.ArrayList;
    
    public class CommodityService {
    
        private static CommodityDao dao = MySpring.getBean("com.atanmo.gwxt.dao.CommodityDao");
    
        public ArrayList<Commodity> selectAllCommmodity(Integer kid){
            //调用dao去读写数据库
            return dao.selectAllCommodity(kid);
        }
    
        public ArrayList<Commodity> getSelectedCommodityList(String[] cids) {
            ArrayList<Commodity> commodities = new ArrayList<>();
            //将前端获取的cid全部获取 然后通过cid去传给service方法来查出一组对象,放到集合中
            for (String cid : cids){
                //调用dao来查出全部的已选商品
                commodities.add(dao.selectSelectedCommoditys(Integer.parseInt(cid)));
            }
            return commodities;
        }
    }
    

    KindServi**ce**

    package com.atanmo.gwxt.service;
    
    import com.atanmo.gwxt.dao.KindDao;
    import com.atanmo.gwxt.domain.Kind;
    import com.atanmo.gwxt.util.MySpring;
    
    import java.util.ArrayList;
    
    public class KindService {
    
        private static KindDao kindDao = MySpring.getBean("com.atanmo.gwxt.dao.KindDao");
    
        public ArrayList<Kind> selectAllKind(){
            //调用Dao查询全部的Kind类别
           return kindDao.selectAllKind();
        }
    
    }
    

    UserSe**rvice**

    package com.atanmo.gwxt.service;
    
    import com.atanmo.gwxt.dao.UserDao;
    import com.atanmo.gwxt.domain.User;
    import com.atanmo.gwxt.util.MySpring;
    
    public class UserService {
    
        private static UserDao userDao = MySpring.getBean("com.atanmo.gwxt.dao.UserDao");
    
        public String login(String uname,String upasssword){
            //调用dao查询一条记录
            User user = userDao.checkLoginResult(uname);
            System.out.println(user);
            if (user != null && user.getUPASSWORD().equals(upasssword)){
                return "登录成功";
            }
            return "用户名或密码错误";
        }
    
    }
    

    MySp**ring**

    package com.atanmo.gwxt.util;
    
    import java.util.HashMap;
    
    public class MySpring {
    
        private static HashMap<String,Object> beanMap = new HashMap<>();
    
        public static <T> T getBean(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;
        }
    
    
    }
    




    学习总结:
    学懂的:
    我通过这次的购物系统的练习,觉得这不仅仅是锻炼了自己的面向独享思想,作用域对象的使用,
    知识的巩固,更是提升编码能力和锻炼独立思维的练习
    有问题的地方:
    在saveSelectedCommodity中无法把选中的全部商品结算,我觉得是session对象的存储问题
    正在排查.**