apache作为接入的情况下对后端web应用是否可用的页面控制

apache作为前端接入,后端转到基于tomcat的web应用,有的时候,因为系统升级或者别的原因,某一个时间段后端web应用无法使用的情况下,为了友好地通知用户系统暂时无法使用,在index.html页面里用javascript进行判断目前是否可用,根据判断结果转到service_stop.html,或者web app的index.html页面.

<HTML>

<HEAD>

<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">

<script type="text/javascript">

	var stopFlag = false;
		
	var sysDateTime = new Date();
	
	var sysYear = sysDateTime.getFullYear();
	
	var sysMonth = sysDateTime.getMonth() + 1;
	if(sysMonth < 10){
		sysMonth = '0' + sysMonth;
	}

	var sysDate = sysDateTime.getDate();
	if(sysDate < 10){
		sysDate = '0' + sysDate;
	}
	
	var sysHour = sysDateTime.getHours();
	if(sysHour < 10){
		sysHour = '0' + sysHour;
	}
	
	var sysMinute = sysDateTime.getMinutes();
	if(sysMinute < 10){
		sysMinute = '0' + sysMinute;
	}
	
	var sysSecond = sysDateTime.getSeconds();
	if(sysSecond < 10){
		sysSecond = '0' + sysSecond;
	}
	
	var sysYmd = sysYear + '/' + sysMonth + '/' + sysDate;
	var sysHms = sysHour + ':' + sysMinute + ':' + sysSecond;
	
	if(sysYmd == '2017/01/15' && sysHms > '08:00:00'){
		stopFlag = true;
	} else if (sysYmd == '2017/01/03'){
		stopFlag = true;
	} else if(sysYmd == '2016/11/11'){
		stopFlag = true;
	} else if(sysYmd == '2017/02/12' && sysHms > '08:00:00' && sysHms < '18:30:00'){
		stopFlag = true;
	} else if( (sysYmd == '2016/10/16' && sysHms > '22:00:00') || (sysYmd == '2016/10/27' && sysHms < '20:00:00') ){
		stopFlag = true;
	} else if(sysYmd >= '2016/10/10' && sysYmd <= '2016/10/11'){
		stopFlag = true;
	} else if( (sysYmd == '2016/10/30' && sysHms > '22:00:00') || (sysYmd == '2017/01/04' && sysHms < '09:30:00') ){
		stopFlag = true;
	} else if(sysYmd >= '2016/12/30' && sysYmd <= '2016/12/31'){
		stopFlag = true;
	}

	if(stopFlag){
		document.write("<META HTTP-EQUIV='Refresh' content='0;URL=./service_stop.html'>");
	} else {
		document.write("<META HTTP-EQUIV='Refresh' content='0;URL=/application/index.html'>");
	}

</script>

<TITLE>Home</TITLE>
</HEAD>

<BODY>

</BODY>
</HTML>

当然,这个方案不是最佳实现,比如:

1>时间的判断是在client端进行,如果client和server端有时差的话,会出现偏差

2>先返回index.html,然后再进行redirect,效率不是很高,用户体验不是很好

3>javascript代码直接暴露给了client端,不是很安全

猜你喜欢

转载自blogzhoubo.iteye.com/blog/2358685