jsp怎么实现消息提醒

互联网 19-5-15
如果你是平台级别的系统,可以考虑消息队列的中间件,例如:阿里巴巴的rocketmq,用这个来做消息订阅与分发。

如果你只是简简单单的需要提示到web(jsp)页面,可以用js定时ajax访问后台,后台来确定是否有数据更新,无论这个数据是哪来的。

推荐课程:Java教程。

这里就使用在JSP页面上通过JS实现消息弹出框,样式可根据要求修改,这边只是一个简单的示范例子,自定义了两条消息,弹框效果如下:

代码实现并未连接后台:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@page import="java.util.*"%> <html>   <head> 	<style type="text/css"> 		#winpop { width:250px; height:0px; position:absolute; right:0; bottom:0; border:1px solid grey; margin:0; padding:1px; overflow:hidden; display:none; background:#FFFFFF} 		#winpop .title { width:100%; height:20px; line-height:20px; background:#0AB0FF ; font-weight:bold; text-align:center; font-size:12px;color:white} 		#winpop .con { width:100%; height:360px; line-height:80px; font-weight:bold; font-size:12px; color:#FF0000; text-decoration:underline; text-align:center} 		.close { position:absolute; right:4px; top:-1px; color:#FFFFFF; cursor:pointer} 	</style>   </head> <%          //未读消息unreadList根据实际情况取     List<Map> unreadList = new ArrayList<Map>(); 	Map<String,String> map1=new HashMap<String,String>(); 	map1.put("msgId","1"); 	map1.put("msgContent","message111111"); 	unreadList.add(map1); 	Map<String,String> map2=new HashMap<String,String>(); 	map2.put("msgId","2"); 	map2.put("msgContent","message222222"); 	unreadList.add(map2);     int num=unreadList.size(); %>   <body>     <script language="javascript" type="text/javascript"> 		window.onload = function tanchuang() { //加载 			document.getElementById('winpop').style.height = '0px';//要初始化这个高度,虽然CSS里已经初始化了 			 				setTimeout("tips_pop()",0); //调用tips_pop()这个函数 		} 		 		function tips_pop() { 			var MsgPop = document.getElementById("winpop");//获取窗口这个对象,即ID为winpop的对象 			var popH = parseInt(MsgPop.style.height);//用parseInt将对象的高度转化为数字,以方便下面比较 		 			if (popH == 0) { //如果窗口的高度是0 				MsgPop.style.display = "block";//那么将隐藏的窗口显示出来 				show = setInterval("changeH('up')", 2);//开始以每0.002秒调用函数changeH("up"),即每0.002秒向上移动一次 			} else { //否则 				hide = setInterval("changeH('down')", 2);//开始以每0.002秒调用函数changeH("down"),即每0.002秒向下移动一次 			} 		} 		function changeH(str) { 			var MsgPop = document.getElementById("winpop"); 			var popH = parseInt(MsgPop.style.height); 			if (str == "up") { //如果这个参数是UP 				if (popH <= 100) { //如果转化为数值的高度小于等于100 					MsgPop.style.height = (popH + 4).toString() + "px";//高度增加4个象素 				} else { 					clearInterval(show);//否则就取消这个函数调用,意思就是如果高度超过100象度了,就不再增长了 				} 			} 			if (str == "down") { 				if (popH >= 4) { //如果这个参数是down 					MsgPop.style.height = (popH - 4).toString() + "px";//那么窗口的高度减少4个象素 				} else { //否则 					clearInterval(hide); //否则就取消这个函数调用,意思就是如果高度小于4个象度的时候,就不再减了 					MsgPop.style.display = "none"; //因为窗口有边框,所以还是可以看见1~2象素没缩进去,这时候就把DIV隐藏掉 				} 			} 		} 	</script> 	 	<%if(num>0){ %> 		<div id="winpop"> 		<div class="title" >系统信息<br> 		共有<font color="red"><big><%=num %></big></font>条未读消息 		<span class="close" onclick="tips_pop()">X</span></div> 		<%for(int i=0;i<num;i++) { %> 		<!-- 点击信息标题链接到信息明细,传递信息编号参数 --> 		      <a href="/XXXAction.do?msgId=<%=unreadList.get(i).get("msgId") %>"> 				<%if(String.valueOf(unreadList.get(i).get("msgContent")).length()>16) {%> 					<%=String.valueOf(unreadList.get(i).get("msgContent")).substring(0,16)+"..." %> 					<%} else{ %> 					<%=String.valueOf(unreadList.get(i).get("msgContent")) %> 					<%} %> 			  </a><br> 			<% 				if(i>=1){//最多显示两条 					break; 				} 			} %> 			<center> 			<!-- 点击查看更多未读消息 --> 			<a href="/XXXAction.do %>"><font color="red">更多未读消息...</font></a></center> 		</div> 		<%} %>   </body> </html>

以上就是jsp怎么实现消息提醒的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: jsp
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:tomcat怎么运行jsp文件

相关资讯