`
willvvv
  • 浏览: 328422 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JSP动态显示服务器时间和客户端时间

阅读更多

server-time.jsp内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%
String path = request.getContextPath(); String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'test.jsp' starting page</title>
<script language="javascript" type="text/javascript">
	//因程序执行耗费时间,所以时间并不十分准确,误差大约在2000毫秒以下
	var xmlHttp = false;
	//获取服务器时间
	try {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e2) {
			xmlHttp = false;
		}
	}

	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
		xmlHttp = new XMLHttpRequest();
	}

	xmlHttp.open("GET", "null.txt", false);
	xmlHttp.setRequestHeader("Range", "bytes=-1");
	xmlHttp.send(null);

	severtime = new Date(xmlHttp.getResponseHeader("Date"));

	//获取服务器日期
	var year = severtime.getFullYear();
	var month = severtime.getMonth() + 1;
	var date = severtime.getDate();
	//获取服务器时间
	var hour = severtime.getHours();
	var minu = severtime.getMinutes();
	var seco = severtime.getSeconds();
	//获取客户端时间
	localtime = new Date();
	//取得时间差
	var jtime = Math.abs(localtime.getTime() - severtime.getTime());
	var jdate = jtime / (24 * 60 * 60 * 1000);
	var jhour = jtime % (24 * 60 * 60 * 1000) / (60 * 60 * 1000);
	var jminu = jtime % (24 * 60 * 60 * 1000) % (60 * 60 * 1000) / (60 * 1000);
	var jsecond = jtime % (24 * 60 * 60 * 1000) % (60 * 60 * 1000)
			% (60 * 1000) / 1000;

	//格式化输出客户端时间
	function getClientTime() {
		localtime = new Date();
		var cyear = localtime.getFullYear();
		var cmonth = localtime.getMonth() + 1;
		var cdate = localtime.getDate();
		var chour = localtime.getHours();
		var cminu = localtime.getMinutes();
		var cseco = localtime.getSeconds();

		ccyear = addZero(cyear);
		ccmonth = addZero(cmonth);
		ccdate = addZero(cdate);
		cchour = addZero(chour);
		ccminu = addZero(cminu);
		ccseco = addZero(cseco);

		cinnerdata = "当前客户端时间:";
		document.getElementById("clienttime").innerHTML = cinnerdata + ccyear
				+ "-" + ccmonth + "-" + ccdate + " " + cchour + ":" + ccminu
				+ ":" + ccseco;
		document.getElementById('xctime').innerHTML = "时间相差:"
				+ Math.round(jdate) + "天" + Math.round(jhour) + "小时"
				+ Math.round(jminu) + "分钟" + jsecond + "秒 总计:" + jtime + "毫秒";
	}
	//格式化输出服务器时间
	function getSeverTime() {
		seco++;
		if (seco == 60) {
			minu += 1;
			seco = 0;
		}
		if (minu == 60) {
			hour += 1;
			minu = 0;
		}
		if (hour == 24) {
			date += 1;
			hour = 0;
		}
		//日期处理
		if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
				|| month == 10 || month == 12) {
			if (date == 32) {
				date = 1;
				month += 1;
			}
		} else if (month == 4 || month == 6 || month == 9 || month == 11) {
			if (date == 31) {
				date = 1;
				month += 1;
			}
		} else if (month == 2) {
			if (year % 4 == 0 && year % 100 != 0) {//闰年处理
				if (date == 29) {
					date = 1;
					month += 1;
				}
			} else {
				if (date == 28) {
					date = 1;
					month += 1;
				}
			}
		}
		if (month == 13) {
			year += 1;
			month = 1;
		}
		sseco = addZero(seco);
		sminu = addZero(minu);
		shour = addZero(hour);
		sdate = addZero(date);
		smonth = addZero(month);
		syear = year;

		innerdata = "当前服务器时间:";
		document.getElementById("servertime").innerHTML = innerdata + syear
				+ "-" + smonth + "-" + sdate + " " + shour + ":" + sminu + ":"
				+ sseco;
		setTimeout("getSeverTime()", 1000);
		setTimeout("getClientTime()", 100);
	}

	function addZero(num) {
		num = Math.floor(num);
		return ((num <= 9) ? ("0" + num) : num);
	}
</script>
</head>
<body onload="getSeverTime();">
	<p id="servertime"></p>
	<p id="clienttime"></p>
	<p id="xctime"></p>
</body>
</html>

 

运行效果如图:


 

另外一个JS效果的动态显示当前客户端时间client-time.html,可以通过修改客户端时间查看这两种的区别

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>当前日期</title>
当前时间:
<div  id="time" style="color:red;">
<script>
document.getElementById('time').innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());
setInterval("document.getElementById('time').innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);
</script>
</div>
</body>
</html>
 

 

  • 大小: 6.1 KB
分享到:
评论
1 楼 zhengqiweiyi 2015-10-26  
请问这里的客户端和服务器是指同一台电脑上的吗?

相关推荐

    动态网页JSP技术探究

    早期传统的浏览器客户端的程序是基于客户机、服务器的应用程序,但是这种服务技术随着现代网络和现代电子商务的发 展,这些技术的弊端逐渐显现出来了,如何能够在任何WEB 或...关键词:JSP JAVA Servlet 服务器客户端

    动态网页制作技术jsp的研究

    :早期传统的浏览器客户端的程序是基于客户机、服务器的应rfl程序,但是这种服务技术随着现代网络和现代电子商务的发 展,这些技术的弊端逐渐显现出来了,如何能够在任何WEB或应用程序服务器上运行,如何将应用程序...

    JavaServer Pages (JSP)

    JavaServer Pages (JSP) 技术提供了一种简单快速的方法来创建显示动态生成内容的 Web 页面。由业界处于领先地位的 Sun 公司制定了相关的 JSP 技术规范,该规范定义了如何在服务器和 JSP 页面间进行交互,还描述了...

    JSP 代码生成工具 JSP Maker 1.1 英文免费版.zip

    JSP Maker 是一款强大易用的代码生成器,可从MySQL和Oracle中快速生成一套完整JSP(JAVA服务器页)代码.使用生成的JSP,用户可以轻松查看,编辑,搜索以及添加删除网页上的数据库记录。生成的代码清洁并易于用户定制.JSP...

    基于JSP的精品课程设计网站

    JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有...

    图片动画JSP目录直读程序-jsp-mlzd.rar

    "目录直读程序"可能是指一个能够读取并显示服务器上特定目录结构的JSP应用程序。这样的程序可能允许用户浏览文件和文件夹,查看文件列表,甚至可能包括下载、上传或管理这些文件的功能。这个资料包可能包含了实现这...

    JSP验证码动态生成方法

    在登录应用中,为防止恶意登录,常常需要服务器动态生成验证码并存储在session作用范围中,最后以图像形式返回给客户端显示 下边的代码实现的功能:写一个JSP页,动态生成一个验证码,存储在session作用范围内,并以...

    一个Android平台的美食网APP客户端源码.rar

    这个例子中涉及到ListView、各个界面UI控件的使用、TabHost、跑马灯字符串、获取经纬度、Spinner内容适配器、气球图片、全屏显示、标题栏跑马灯的实现、捕获和打印异常、从TabActivity上面获取放置Tab的TabHost、...

    《JSP简明教程》课件

    JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 这个白皮书提供了JSP技术的全面概述,描述了其开发背景以及这项技术的...

    ScholarShipSystem.rar

    JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    JSPExample7.jsp text.html页面提交至该页,并显示提交数据 text.html 页面数据提交至JSPExample7.jsp JSPExample8.jsp 不同类型混合运算自动转换 JSPExample9.jsp 不同类型混合运算强制...

    学生成绩管理系统 是基于JSP技术的现代完美组合

    本系统采用Servlet+Jsp+JavaBean+SQL2000 设计方式,其中Servlet担当主要逻辑控制,通过接受Jsp传来的用户请求,调用以及初始化JavaBean,在通过Jsp传到客户端,本系统中SqlBean担当主要的与数据库的连接与通信,...

    计算机专业毕业设计

    JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码...

    ASP.NET 程序设计习题答案 尚俊杰 编著(完整版含代码)

    4.静态网页和动态网页在客户端看来是除了发送请求是的后缀名外没有其它任何区别,主要是服务器端的区别。静态网页服务器在接收了客户端的请求后直接读取相应的网页文件返回给客户端,而动态网页服务器在接收到了...

    计算机毕设Java学生课绩管理系统 jsp + servlet + javaBean (源码+数据库)

    2. **Servlet**: Servlet是运行在服务器端的Java程序,它用于接收客户端的请求并生成响应。在学生课绩管理系统中,Servlet主要负责处理业务逻辑,例如成绩的增删改查。 3. **JavaBean**: JavaBean是一种特殊的Java...

    在线考试系统文献综述

    是未来开发动态网站的主流技术,与其它技术相比有一定的优势,如JSP页面可重用跨平台的组件(JavaBean或Enterprise JavaBean)来执行应用程序所要求更为复杂的处理,能将页面的逻辑和页面显示进行分离, 页面开发人员可以...

    JSP动态生成验证码存储在session作用范围内

    (1)在登录应用中,为防止恶意登录,常常需要服务器动态生成验证码并存储在session作用范围中,最后以图像形式返回给客户端显示 (2)下边的代码实现的功能:写一个JSP页,动态生成一个验证码,存储在session作用...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

Global site tag (gtag.js) - Google Analytics