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();
    }
}
相关推荐
程柯梦想5 分钟前
Maven修改默认编码格式UTF-8
java·maven
涛ing6 分钟前
【5. C++ 变量作用域及其深入探讨】
java·linux·c语言·开发语言·c++·ubuntu·vim
老大白菜11 分钟前
在 Ubuntu 中使用 FastAPI 创建一个简单的 Web 应用程序
前端·ubuntu·fastapi
渔阳节度使19 分钟前
React
前端·react.js·前端框架
字节全栈_mMD1 小时前
Flink Connector 写入 Iceberg 流程源码解析_confluent icebergsinkconnector
java·大数据·flink
小园子的小菜1 小时前
RocketMQ中的NameServer主要数据结构
java·中间件·rocketmq·java-rocketmq
平凡君2 小时前
缓存的今生今世
java·spring·缓存
LCG元2 小时前
Vue.js组件开发-如何实现异步组件
前端·javascript·vue.js
Lorcian2 小时前
web前端12--表单和表格
前端·css·笔记·html5·visual studio code
问道飞鱼2 小时前
【前端知识】常用CSS样式举例
前端·css