-
server push------- tomcat实现问题20
现在项目(SSH架构的web系统,web服务器用的是tomcat)中有个需求:当一个登陆后的用户(比如用户a)在某个页面中修改了数据库中的一个数据时,服务器会给符合某一条件的、当前登陆的用户所在的系统页面中弹出一个提示框。
(1)现在我的思路是 使用server push技术实现
(2)我的实现步骤是:我在用户a修改数据的前台页面定义了一个函数,修改数据时调用这个函数:
<script> function CometEx() { var request = new XMLHttpRequest(); request.open("GET", '/CoalMine/servlet/cometServlet', true); request.onreadystatechange = function() { if (request.readyState == 3 && request.status == 200) { alert(request.responseText); } } request.send(null); } </script>
然后在业务逻辑层创建了一个对应的servlet:
package servlet; import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.*; import org.apache.catalina.CometEvent; import org.apache.catalina.CometProcessor; import org.apache.catalina.CometEvent.EventType; public class cometServlet extends HttpServlet implements CometProcessor { public void event(CometEvent e) throws IOException, ServletException { if(e.getEventType() == EventType.BEGIN) { // fill in code handling here HttpServletResponse response = e.getHttpServletResponse(); PrintWriter out = response.getWriter(); out.write("Hello world"); out.flush(); //System.out.println("message sent"); } if(e.getEventType() == EventType.READ) { // fill in code handling here } // and continue handing other events } }
tomcat 的server.xml也已经配置好了
(3)实际的运行情况是:修改操作结束时只能在当前页面弹出提示框。在其他机器上登陆的用户没有反应(我知道这是因为1)其他用户登陆时没有长连接建立;2)tomcat更没有给这些长连接发送response;但是我不知道怎么保持在登陆系统时创建的长连接,也不懂如何获得这些长连接并发送消息)。
(4)我的问题是:
1 不知道还有没有别的好点的办法(定时刷新的除外)?
2 如果使用tomcat配置的话,具体点的实现思路是什么?
3 我的思路如果不通或错误的话应该怎么改正?
问题补充:请问DWR能实现我这个需求吗?给个实现思路吧<div class="quote_title">OpenMind 写道</div><div class="quote_div">我以前用过DWR,好像比Comet好用一些,</div> <br /> <br />2012年1月03日 12:08
相关推荐
【标题】"android-push-server-tomcat.rar_andrewsjavaweb_android tomcat_ord" 提供的是一个基于JavaWeb的安卓推送服务源码,该服务运行在Tomcat服务器上。"AndrewsJavaWeb"可能是一个特定项目或者框架的名称,而...
此外,还支持Server Push,使得服务器可以主动将数据推送给客户端,而无需等待客户端请求。 2. **更好的性能**:通过优化内存管理和线程调度,8.5.x版本提高了Tomcat的性能。它还能更好地处理高并发场景,确保服务...
解决方法见:http://stackoverflow.com/questions/26893297/tomcat-8-throwing-org-apache-catalina-webresources-cache-getresource-unable-to 尊重他人成果, 转载于http://www.jmatrix.org/day/1186.html
此外,它还提供了服务器推送(server push)功能,使得服务器能够主动向客户端发送数据,而无需等待客户端的请求。 2. **HTTP/2支持**: Tomcat 9.0.0.M21包含了对HTTP/2协议的实现,这是一个重要的性能提升。...
这个"androidpn-tomcat-server端"是AndroidPN服务端的实现,它使用了Apache Tomcat作为应用服务器来托管Java代码。Tomcat是一个流行的开源Java Servlet容器,支持Java EE的Web应用程序。 首先,我们要理解推送服务...
总之,"androidpn-tomcat-0.5.0"项目是实现Android设备推送通知服务的一种解决方案,它结合了Tomcat服务器的稳定性和XMPP协议的实时性,为开发者提供了构建高效实时通信系统的基础。开发者可以通过深入理解和定制这...
这个压缩包文件"apache-tomcat-9.0.22.zip"是Tomcat服务器的第9个主要版本中的第22个小版本。在IT行业中,Tomcat因其轻量级、高效能和易于管理的特性而被广泛使用,尤其适用于中小型Web应用程序。 Tomcat 9.0引入了...
Apache Tomcat 8.5.0 是一个广泛使用的开源软件,用以部署和运行Java Servlets...在实际操作中,通常会将`apache-tomcat-8.5.0`解压后,配置相应的环境变量,启动服务器,并通过管理工具或命令行进行应用的部署和管理。
Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,是一个开放源代码的Servlet容器,主要实现了Java Servlet和JavaServer Pages(JSP)规范。由于其轻量级、高效和易于管理的特性,Tomcat在中小型应用中广泛...
**AndroidPN消息推送-Tomcat版**是一种用于Android设备的消息推送系统,它利用XMPP协议实现了客户端与服务器之间的实时通讯。本系统分为客户端和服务端两大部分,采用Java语言编写,并结合了Asmack库与Openfire...
解决arcgis server跨域问题: 1、停掉ArcGIS Server的服务。 2、 打开<ArcGIS Server> \framework\runtime\tomcat\conf\web.xml,注册跨域bean 3、lib下拷贝 cors-filter-2.5.jar java-property-utils-1.9.1.jar包 4...
"androidpn-server-app-master" 是一个基于Android的推送通知服务(Push Notification)的项目,它采用了Tomcat作为服务器端的应用程序容器。这个项目的核心目标是为Android设备提供实时的消息推送功能,使得应用...
在这个“androidPN server端源码eclipse tomcat版”中,我们主要关注的是如何在Eclipse集成开发环境中配置和运行基于Tomcat服务器的AndroidPN服务。 首先,`androidPN`这个文件夹很可能包含了整个项目源码,包括...
这个服务端代码主要用于实现Android设备上的实时消息推送功能,是AndroidPN(Android Push Notifications)的一部分。AndroidPN是一个开源项目,旨在帮助开发者轻松地在Android应用中集成远程通知服务。 一、...
- **解压与启动**: 将下载的`apache-tomcat-9.0.5`压缩包解压到任意目录,然后找到`bin`目录下的`startup.sh`(Unix/Linux)或`startup.bat`(Windows)脚本启动Tomcat服务。 - **管理界面**: 启动Tomcat后,可以...
3. **Server Push**:服务器主动推送技术,通常包括两种主要实现方式:长轮询(Long Polling)和流(Streaming)。在这个项目中,可能采用了长轮询的方式,即服务器接收到客户端请求后并不立即返回,而是保持连接...
分别到两个tomcat下,直接双击D:\server\apache-tomcat-6.0.39_1\bin\startup.bat启动tomcat1 D:\server\apache-tomcat-6.0.39_2\bin\startup.bat启动tomcat2 出现以下页面表示启动成功 在浏览器中输入 ...
这个项目包含“androidpn-server-bin-tomcat”可能是服务端实现,而“androidpn-client”可能为客户端应用。 二、服务端实现 1. Tomcat服务器:Tomcat是一个开源的Java Servlet容器,常用于部署Web应用。"androidpn...
- 下载并解压缩`apache-tomcat-6.0.33-windows-x86.zip`至`D:\server\`。 - 解压后的文件夹分别命名为`apache-tomcat-6.0.29_1`和`apache-tomcat-6.0.29_2`。 - 目录结构示意图:[略] #### 三、配置步骤 ##### ...
版本:apache-tomcat-9.0.88 以下是一些 Tomcat 9 中新增的主要功能: 1. Servlet 4.0支持:Tomcat 9 支持最新的 Servlet 4.0 规范,包括对 HTTP/2 和 HTTP/2 Server Push 的支持,以及对 HTTP 请求方法的扩展等。 2...