web音乐商城简陋版项目总结(sevlet+jsp+mysql)

博主分享了在做javaee音乐商城项目时的学习经历,从一开始的懵懂到逐渐理解响应式网站、过滤器、Cookie和数据库操作。在实践中认识到分层架构和工具类的重要性,对服务器内部转发、同步回调等有了更深入的理解。通过项目实战,将各个知识点融会贯通。
摘要由CSDN通过智能技术生成

这次的web项目是做一个音乐商城,目的是巩固下最近java ee学习的内容。
 有点头皮发麻,做一个响应式网站,完全不知道从何做起,开始的时候做servlet响应,就无脑一个请求对应一个servlet,并且这个sevlet内容,从获取请求到交互数据全在一个类中实现。
在这里插入图片描述

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        boolean loginsucess = false;
        String name = req.getParameter("uname");
        String password = req.getParameter("upass");
        System.out.println("用户名" + name + "密码" + password);
        System.out.println("获取成功");
        boolean exist = SqlUtil.SqlQUtilExist(name);
        System.out.println(exist);

            try {
                Class.forName("com.mysql.jdbc.Driver");//注册驱动
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try {
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/users", "root", "ChenBaifu137708.");
            } catch (SQLException e) {
                e.printStackTrace();
            }
            //获取连接
            try {
                assert conn != null;
                stmt = conn.createStatement();//获取数据库操作对象
            } catch (SQLException e) {
                e.printStackTrace();
            }
            String sql = "select password from accountinformation where id_name = '" + name + "' and password = '" + password + "'";
            try {
                assert stmt != null;
                stmt.execute(sql);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                rs = stmt.executeQuery(sql);
                if (rs.next()) {
                    loginsucess = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            System.out.println(loginsucess);
            if (loginsucess) {
                Cookie cok_name=new Cookie("id_name",name);
                Cookie cok_pass=new Cookie("password",password);
                cok_name.setMaxAge(60*60*24*7);
                cok_pass.setMaxAge(60*60*25*7);
                Customer customer = SqlUtil.SqlQUtil(name);
                HttpSession session = req.getSession();
                session.setAttribute("customer", customer);
                cok_name.setPath(req.getContextPath());
                cok_pass.setPath(req.getContextPath());
                resp.addCookie(cok_name);
                resp.addCookie(cok_pass);
                req.setAttribute("username", name);
                req.getRequestDispatcher("/login_Sucess.jsp").forward(req, resp);


            }
            if (!loginsucess) {
                req.setAttribute("username", name);
                req.getRequestDispatcher("/Login_Error.jsp").forward(req, resp);


            }
            try {
                stmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }


        }

反正我自己感觉挺离谱的,后面的时候,才知道,咦?原来可以封装工具类,原来可以把一个请求到响应的过程分好几层,既方便又清晰?emm,
随着项目的推进,慢慢找到前面写项目的离谱之处。
在这里插入图片描述
我也开始试着分层,也开始试着封装一些工具,虽然,开始的时候把dao层和工具类写到一块了,(不管是数据库增删改查还是注册驱动我都认为是工具类,被自己蠢哭了)
在这里插入图片描述
我写后台查询的时候才知道,诶原来过滤器是这么用的,写保存登陆状态的时候,诶cookie原来可以保存。

写支付宝沙箱支付的时候,知道了同步回调是重定向,别问,问就是
正是项目的训练才可以把各个板块的只是糅合到一块。
在这里插入图片描述
我一直还离谱的认为,是服务器内部的转发,直接就填的本地地址,我就说怎么同步回调有点问题。。。。。
本次分享到这里了,谢谢阅读

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只会写bug的靓仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值