Ajax模拟视频点赞功能

前台

html 复制代码
<%--
  Created by IntelliJ IDEA.
  User: xx
  Date: 2023/9/4
  Time: 10:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="js/jquery-3.7.0.js"></script>
    <script>
        // 1.原始方式
        /*function like(){
           window.location.href = "likeServlet"
        }*/

        // 2.原生JS实现异步
        function like(){
            //获取XmlHttpRequest对象
            var xhr = new XMLHttpRequest();
            //设置请求
            xhr.open("get","likeServlet");
            //发送请求
            xhr.send();
            xhr.onreadystatechange = function (){
                //获取状态码
                if ( xhr.readyState== 4){
                    var msg = xhr.responseText;
                    document.getElementById("num").innerText = msg;
                }
            }
        }

        // 3.第一次封装
        /*$(function () {
            //点击事件
            $("#btn").click(function () {
                $.ajax({
                    url:"likeServlet",
                    data:null,
                    type:"get",
                    async:true,
                    dataType:"text",
                    success:function (msg) {
                        $("#num").text(msg);
                    }
                });
            });
        });*/

        // 4.第二次封装
        /*$(function (){
            $("#btn").click(function (){
                $.get("likeServlet",null,function (date) {
                    $("#num").text(date)
                },"text");
            });
        })*/
    </script>
</head>
<body>
<video src="" controls></video>
<input type="button" id="btn" onclick="like()" value="点赞"></input>当前点赞量为:
<span style="color: red" id = "num">
    ${count}
</span>
</body>
</html>

servlet

java 复制代码
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/likeServlet")
public class LikeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //将获取的点赞了存储到ServletContext
        ServletContext servletContext = getServletContext();
        //获取当前点赞量
        Integer count =(Integer) servletContext.getAttribute("count");
        //如果是第一个点赞
        if (count == null){
            count = 1;
        } else {
            count++;
        }
        servletContext.setAttribute("count",count);
        /*原生js*/
        /*resp.sendRedirect("video.jsp");*/
        /*ajax*/
        PrintWriter writer = resp.getWriter();
        writer.print(count);
        writer.close();
    }
}
相关推荐
IKUN家族1 小时前
Spring MVC(一)
java·spring·mvc
石小石Orz2 小时前
我发现了开发者AI产品营收的新方向
前端·虚拟现实
老马识途2.03 小时前
关于跨域问题的总结
java·前端
魔力女仆3 小时前
分享一个 JS 鼠标跟随贪吃蛇背景库
开发语言·javascript·计算机外设
都叫我大帅哥3 小时前
Java日期时间三十年战争:从Date考古到LocalDateTime革命,以及数据库与前端的那点事儿
java
Muscleheng3 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
2501_936415694 小时前
可变参数&综合练习&斗地主游戏
java·windows·游戏
别惊醒渔人4 小时前
Vue3 Diff 优化:最长递增子序列 LIS
前端·javascript·vue.js
颜酱5 小时前
07 | 把字段与指标同步到 Qdrant(生成阶段)
前端·人工智能·后端
用户059540174465 小时前
把AI长期记忆测试从手动验证换成pytest,2天揪出11个隐藏Bug
前端·css