码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaWeb进阶案例-实现AJAX+Sevlet前后端分离开发


    继续分享JavaWeb课程实验内容。

    任务点2:用户确认收货(10分)
    在管理员将订单发货后,在管理员看来,该订单状态是“已发货”。操作上原先还有个“完成”按钮,我已去掉。购买用户登录后,查询订单,订单状态同样是“已发货”,但是再没有后续操作。

    现在要求:加上一个“确认收货”按钮,用户点击该按钮,向后端提出AJAX请求,将order表的status字段(1未付款/2已付款/3已发货(配送中)/4已完成)改为4,此时前端界面上订单状态变为“已完成”。当管理员登录查询订单时,此订单状态应该也为“已完成”。换句话说,将订单的“完成(确认收货)”操作从管理员移到用户。
    提示:
    原系统参考实现:
    前端:order_list.jsp的其中一行:发货
    后端:AdminOrderStatusServlet.java

    新的要完成的实现:
    前端:order_list.html(进入方式:普通用户登录后点击导航栏上的“我的订单”。我已调整好,只待增加“确认收货”按钮并实现点击后的功能。)
    后端:自写Servlet处理前端点击“确认收货”后发来的AJAX请求,采用前后端分离开发方式


    前端需要修改的代码:

    首先增加“确认收货”数据列。

    在

    中添加

    在js中发起的$.get('/orderList', function (orderList)请求里面,增加渲染的列表项:

    ps.此处通过一个三目运算符进行判定,若当前订单状态为4(已完成时),则此功能按钮设置为“disabled”,将按钮禁用,点击此按钮不会触发函数。若当前订单状态不为4,则为下列功能函数。

    onclick="myFunction(${order.id})

    当点击收获按钮时,会触发绑定的功能函数,实现对订单状态的改变。οnclick="myFunction(${order.id}) 通过传递订单编号order.id这个参数,实现对此订单的状态改变。具体实现代码为:

    1. function myFunction(orderId) {
    2. $.ajax({
    3. url: "/edit_order_status",
    4. type: "get",
    5. data: {
    6. "orderId": orderId
    7. },
    8. });
    9. }

    后端实现代码:

    处理/edit_order_status请求,无需返回任何数据。(项目采用mvc三层架构实现后端)

    servlet层代码:

    1. @WebServlet("/edit_order_status")
    2. public class UserEditorderstatus extends HttpServlet {
    3. private OrderService oService = new OrderService();
    4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    5. int id = Integer.parseInt(request.getParameter("orderId"));
    6. int status =4;
    7. // 更新订单状态
    8. oService.updateStatus(id, status);
    9. }
    10. }

    Service层代码:

    1. public void updateStatus(int id, int status) {
    2. try {
    3. oDao.updateStatus(id, status);
    4. } catch (SQLException e) {
    5. e.printStackTrace();
    6. }
    7. }

    dao层代码:

    1. public void updateStatus(int id, int status) throws SQLException {
    2. QueryRunner r = new QueryRunner(DataSourceUtils.getDataSource());
    3. String sql = "update `order` set status=? where id = ?";
    4. r.update(sql, status, id);
    5. }

    如有问题,欢迎评论区留言讨论!

  • 相关阅读:
    测试一下 Baichuan2-7B-Chat 的性能
    Linxu 查看磁盘空间命令
    【源码】C++坦克大战源码
    Guitar Pro 8win10最新版吉他学习 / 打谱 / 创作
    B. Bit Flipping Codeforces Round #782 (Div. 2)
    Usenix Security 2022 FIXREVERTER A Realistic Bug Injection Methodology for
    Spring Cloud Alibaba【认识分布式事物、分布式事务产生的场景、什么是两阶段提交、XA方案、Seata方案、业务说明、下载启动Seata服务】(十)
    代码大全阅读随笔(四)
    xss攻击
    代码随想录 第6章 字符串
  • 原文地址:https://blog.csdn.net/weixin_68229038/article/details/140027172
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号

    "10%">确认收货