javaWeb 系统维护更新提醒!
来源:互联网 发布:悉尼出租车软件 编辑:程序博客网 时间:2024/05/29 02:25
2013/5/3 15:52 By Leo
1. 设置时间页面 (setTime.htm)[有日历Calendar插件]
<!DOCTYPE html><html> <head> <title>设置系统维护时间</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--><script src="../js/calendar/WdatePicker.js" type="text/javascript"/></script> </head> <body> <form name="form1" action="/serverTime.do?action=addServerTiem" method="post"> <div align="center"> 维护时间: <input type="text" class="text" id="time" name="time" onClick="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="" /><br/> 提醒内容:<input type="text" id = "content" name="content" value="系统将进行维护,请用户保存好数据!" /><br> 提醒时间:<select id="preTime" name = "preTime"> <option value="5" selected="selected">5分钟</option> <option value="10">10分钟</option> <option value="15">15分钟</option> </select> <br><br> <input type="submit" vlaue = "设置"/> <input type="reset" vlaue = " 重置 "/> </div> </from> </body></html>
2.主要的servlet,设置的时间保存在全局参数application里面,也可以根据需要持久化到数据库中,或是properties文件中。。。
文件名:ServerTimesServlet.java
package cn.qtone.xxt.mh.admin.notice.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ServerTimesServlet extends HttpServlet {/** * Constructor of the object. */public ServerTimesServlet() {super();}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String action = request.getParameter("action");if ("addServerTiem".equals(action)) {setTime(request, response);} else if ("getServerTime".equals(action)) {getServerTime(request, response);}}/** * 获取系统维护时间 * * @param request * @param response */private String getServerTime(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {System.out.println("*************获取系统维护的时间***************");ServletContext application = getServletContext();String reString = "";// 获取设置的系统维护时间String time = (String) application.getAttribute("serverTime");if (time != null && !time.equals("")) {time = (String) application.getAttribute("serverTime");String preTime = (String) application.getAttribute("preTime");System.out.println("设置的时间是:" + time);reString = time + "|" + preTime;response.setContentType("text/html;charset=gbk");PrintWriter out = response.getWriter();out.print(reString);out.flush();out.close();return reString;} else {return null;}}/** * 设置系统维护时间 * * @param request * @param response * @throws ServletException * @throws IOException */private void setTime(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");// 获取设置的时间String time = request.getParameter("time"); // 系统更新时间String preTime = request.getParameter("preTime"); // 提前的时间// String content = "温馨提示:系统将在"+preTime+"分钟后进行维护,请及时保存你的文件!";System.out.println("*******时间:" + time + " 提前时间:" + preTime+ "*******");try {// 添加系统维护信息设置成系统全局参数ServletContext application = getServletContext();application.setAttribute("serverTime", time);application.setAttribute("preTime", preTime);} catch (Exception e) {e.printStackTrace();}}}
3.在web.xml配置文件中添加:
<servlet> <servlet-name>ServerTimesServlet</servlet-name> <servlet-class>cn.qtone.xxt.mh.admin.notice.servlet.ServerTimesServlet</servlet-class></servlet><servlet-mapping> <servlet-name>ServerTimesServlet</servlet-name> <url-pattern>/serverTime.do</url-pattern></servlet-mapping>
4.使用ajax异步请求 【index.js】
源码 :
//定时发出请求,ajax原生//创建httpRequestvar request;function createRequest() {try {request = new XMLHttpRequest();} catch (trymicrosoft) {try {request = new ActiveXObject("Msxml2.XMLHTTP");} catch (othermicrosoft) {try {request = new ActiveXObject("Microsoft.XMLHTTP");} catch (failed) {request = false;}}}}function getServerTime() {// 获得xmlhttprequestcreateRequest();var url = "serverTime.do?action=getServerTime"; // 请求的URLrequest.open("POST", url, true);request.onreadystatechange = updatePage;/* 设置回调方法 */request.send(null); /* send中可以发送参数,也可以使用url中的参数传递方式 */}// 处理返回的数据function updatePage() {if (request.readyState == 4) /* 注意HTTP的5中就绪状态4.表示响应已完成,可以访问服务器响应并使用它。 */if (request.status == 200) {/* 检查 HTTP 状态。我们期望的状态码是 200,它表示一切顺利 */var response = request.responseText.split("|");// 获取返回的数据var timeString = response[0];// 设置的时间var preTime = response[1];// 提前的时间//设置的服务器时间格式:2013-05-03 09:22:00var date = timeString.substring(0,10).split("-");//日期var time = timeString.substring(10,19).split(":"); //时间var serverDate = new Date(date);//现在的时间var nowDate = new Date();var year = nowDate.getFullYear().toString(); //4位年份 date[0]var month = (nowDate.getMonth()+1).toString(); //月份 date[1]if(month < 10){ //补0month ="0"+month;}var day = nowDate.getDate().toString(); //日 date[2]if(day < 10){ //补0day = "0"+day;}//比较日期if(year == date[0] && month == date[1] && day == date[2]){var hour = nowDate.getHours().toString();if(hour < 10){ // 补0hour = "0"+hour;}var minute = nowDate.getMinutes();var serverHour = parseInt(time[0])+""; var serverMinute = parseInt(time[1]);var tempMinute = serverMinute - minute;//比较时间if( hour == serverHour && tempMinute <= parseInt(preTime) && tempMinute > 0){alert("亲爱的用户,系统将在"+tempMinute+"分钟后进行维护,请及时保存您的资料!");if(tempMinute > 0){delayCheck();}}else {delayCheck();}}} else if (request.status == 404)alert("Request URL does not exist");elsealert("服务器暂时维护,请稍后再试!");}// 发起请求getServerTime();// 延时请求function delayCheck() {setTimeout("getServerTime()", 60000); // 单位毫秒,一分钟监听一次}
5.在要进行提醒的主框架页面上添加index.js的链接
<script src="../js/index.js" type="text/javascript"/></script>
- javaWeb 系统维护更新提醒!
- 系统维护
- App Version更新提醒
- app版本更新, 提醒
- app版本更新提醒
- 关闭sublime更新提醒
- 苹果提醒更新 修改
- 版本的更新提醒
- 提醒系统更新图库
- 如何提醒用户更新应用?
- app版本更新提醒方案
- iOS开发 版本更新提醒
- iOS 的更新提醒教程
- iphone/ipad应用的升级更新提醒和评分提醒
- Google Keep 更新,整合时间提醒、地点提醒、Google Now
- iphone/ipad应用的升级更新提醒和评分提醒
- iphone/ipad应用的升级更新提醒和评分提醒
- ios应用的升级更新提醒和评分提醒
- enq: TS - contention 等待事件
- JAVA 与文件读取的相关内容
- MAC修改主机名、计算机名
- 计算N天前的日期的bat脚本
- 联通VAC接口
- javaWeb 系统维护更新提醒!
- x264-1.29 x264_scan8
- Linux基本安全配置手册
- 资讯站难度不小 为何那么多站长在做
- linux和windows双系统设置默认启动系统
- mfc activex ocx控件内嵌窗体
- 3.字符反转 输入一串字符,比如"abcd",以倒序的方式将它打印出来
- 博客搬家至自己的服务器
- urlrewrite 地址重写