jsp页面获取服务器时间
2017-08-11 17:16
211 查看
今天在处理页面日历控件的时候发现了一个小小的问题,在jsp页面中我们可以用new Date()的形式获取当前的日期,但是用这种形式获取的日期取的是页面所运行的机器的系统时间(简单来说,网页在a电脑上运行,new Date()的日期与a电脑的系统时间匹配,网页在b电脑上运行,new Date()获取的时间与b电脑的系统时间是匹配的),这样的方式获取时间的话会出现一定的问题:假如,用户的电脑时间与服务器的时间相差很多的话,具体来说就是比服务器时间慢比较多的话,会导致用户新创建出来的一些东西在创建之初就已经过了有效期,然而用new
Date()进行校验的时候确实通过的。这就需要我们在页面进行时间校验的时候以服务器的时间为准,防止出现这种比较奇葩的情况。(虽然大部分的电脑的时间都是与网络同步,但是不能保证所有的)
所以就想要用另一种方式去获取时间,于是就有了下面的这种用java脚本获取时间的代码
在页面尝试过之后,这种方式确实可以获取到服务器的时间,但是在调试的过程当中再次发现问题,因为这个使用java脚本语言获取的数据,那么这个数据获取的时间就是加载这个jsp页面的时间,而且这个时间在一次获取之后就不会发生变化,这就问js的判断增加了不准确的可能性,想要让时间更加精确,于是又想了一个办法,在这个变量在jsp加载之后,让一个方法去重复的更新这个变量
run()是让时间增加一秒的方法,下面的一句则是让run方法重复执行,执行的间隔是1000毫秒也就是1秒,这样就能够保证这个变量随时保持与服务器一致。
最后,值得注意的一点是,setInterval()方法是会有延时误差的,短时间的误差并不大,在可以接受的范
4000
围之内,如果页面停留的时间过长的话,就建议用其他的方法了
Date()进行校验的时候确实通过的。这就需要我们在页面进行时间校验的时候以服务器的时间为准,防止出现这种比较奇葩的情况。(虽然大部分的电脑的时间都是与网络同步,但是不能保证所有的)
所以就想要用另一种方式去获取时间,于是就有了下面的这种用java脚本获取时间的代码
var now = new Date(<%=new java.util.Date().getTime()%>);
在页面尝试过之后,这种方式确实可以获取到服务器的时间,但是在调试的过程当中再次发现问题,因为这个使用java脚本语言获取的数据,那么这个数据获取的时间就是加载这个jsp页面的时间,而且这个时间在一次获取之后就不会发生变化,这就问js的判断增加了不准确的可能性,想要让时间更加精确,于是又想了一个办法,在这个变量在jsp加载之后,让一个方法去重复的更新这个变量
function run() { now.setSeconds(now.getSeconds() + 1); } setInterval("run();", 1000);
run()是让时间增加一秒的方法,下面的一句则是让run方法重复执行,执行的间隔是1000毫秒也就是1秒,这样就能够保证这个变量随时保持与服务器一致。
最后,值得注意的一点是,setInterval()方法是会有延时误差的,短时间的误差并不大,在可以接受的范
4000
围之内,如果页面停留的时间过长的话,就建议用其他的方法了
相关文章推荐
- jsp页面获取服务器时间
- Java从服务器上获取时间动态显示在jsp页面实现思路
- Java从服务器上获取时间动态显示在jsp页面实现思路
- Java从服务器上获取时间,动态在jsp页面显示
- Java从服务器上获取时间,动态在jsp页面显示
- Java从服务器上获取时间,动态在jsp页面显示
- JSP页面获取系统当前时间
- jsp采用数据库连接池的方法获取数据库时间戳context.xml配置,jsp页面把时间格式化成自己需要的格式
- jsp页面动态显示服务器时间
- jsp页面使用jstl获取当前时间
- 如何在JSP页面中获取当前系统时间(转)
- jsp页面获取服务器端时间
- JSP页面获取系统时间
- 在jsp页面利用js函数获取当前时间
- jsp页面获取服务器信息
- jsp页面端获取时间日期,以及日期比较大小
- 在JSP页面中获取当前日期时间
- jsp页面如何获取服务器信息
- JSP页面获取系统时间
- 在JSP页面获取时间的两种方式