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();
    }
}
相关推荐
东东2337 分钟前
前端开发中如何取消Promise操作
前端·javascript·promise
Json_9 分钟前
学习springBoot框架-开发一个酒店管理系统,熟悉springboot框架语法~
java·spring boot·后端
掘金安东尼12 分钟前
官方:什么是 Vite+?
前端·javascript·vue.js
柒崽13 分钟前
ios移动端浏览器,vh高度和页面实际高度不匹配的解决方案
前端
kkkkk02110616 分钟前
微服务学习笔记(黑马商城)
java·spring boot·spring·spring cloud·sentinel·mybatis·java-rabbitmq
2503_9301239317 分钟前
Kubernetes (六)调度策略详解:从节点匹配到Pod调度全流程
java·开发语言
渣哥29 分钟前
你以为 Bean 只是 new 出来?Spring BeanFactory 背后的秘密让人惊讶
javascript·后端·面试
YBN娜32 分钟前
设计模式-创建型设计模式
java·开发语言·设计模式
烛阴38 分钟前
为什么游戏开发者都爱 Lua?零基础快速上手指南
前端·lua
桦说编程1 小时前
CompletableFuture API 过于复杂?选取7个最常用的方法,解决95%的问题
java·后端·函数式编程