jsp用ajax请求servlet获取时间的问题

在jsp中写java代码,如<% System.out.println(System.currentTimeMillis()); %>;如果是用ajax从后台中得到时间(也是用System.currentTimeMillis();),两个时间是不同的,jsp里得出的时间戳会早于从后台得到的时间戳。

下面是jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>这是一个测试的页面</title>
    <script type="text/javascript" src="js/jquery-3.4.1.js"></script>
</head>
<script type="text/javascript">
    $(function () {
        $.ajax({
            type:"post",
            url:"testServlet",
            dataType:"text",
            success:function (result) {
                $("p").html("这是从Servlet传过来的时间:"+result);
                var t = <%=System.currentTimeMillis()%>/*注意这里时间是后台传过来后才获取的时间,按理说应该要大一点*/
                $("span").html("这是在jsp用System.currentTimeMillis()获取的时间:"+t);
            }
        })
    })
</script>
<body>
<div align="center">
    <p></p>
    <span></span>
</div>
</body>
</html>

下面是用来和上面的jsp交互的servlet

package com.my.controller;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/testServlet")
public class TestServlet extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        PrintWriter pw = res.getWriter();
        pw.write(String.valueOf(System.currentTimeMillis()));
    }
}

运行之后
在这里插入图片描述
如果是想到得到真正的时间,就要在ajax成功回调函数中new Date(),这才是现在的真正时间。
所以如果是想要在jsp中获取后台会改变的通用类的属性时,就用ajax重新发出一个请求,在Servlet中把通用类的属性打包发回jsp,而不是直接用<%%>的方式在jsp中直接拿出通用类的属性,这样就不会出现因为时间而导致拿出的属性出错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值