这两天在项目中引入了Pushlet,用来解决Server Push的问题。 不过在使用的过程中,发现Java Client 向 Pushlet Servlet 发送中文内容出错的问题。之后将Pushlet源代码copy到工程目录下,打断点调试,终于找到了问题所在。 在这里将解决方法记录一下:
问题原因:
Pushlet ->Event 对象在做数据转url请求时没有做编码转换:
解决方法:
在ul.justobjects.pushlet.core.Event中找到 toQueryString()
方法,
添加ISO-8859-1 to UTF-8的转换代码:
public String toQueryString() {
String queryString = "";
String amp = "";
for (Iterator iter = getFieldNames(); iter.hasNext();) {
String nextAttrName = (String) iter.next();
String nextAttrValue = getField(nextAttrName);
//将 ISO-8859-1 转成 UTF-8
nextAttrValue = StringUtility.toUTF8(nextAttrValue);
queryString = queryString + amp + nextAttrName + "=" + nextAttrValue;
// After first add "&".
amp = "&";
}
return queryString;
}
ISO-8859-1 转 UTF-8 :
/**
* "ISO-8859-1"格式字符转换成"UTF-8"
* @param str "ISO-8859-1"格式字符
* @return "UTF-8"格式字符
*/
public static String toUTF8(String str) {
try {
str = new String(str.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
return str;
}
分享到:
相关推荐
在"Pushlet点对点发送消息"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **Pushlet框架**:Pushlet是Apache Cocoon项目的一部分,它提供了一种基于HTTP长连接的推送机制。Pushlet使用了Servlet和Java...
这个"pushlet定时向页面发送消息demo"是一个实例,展示了如何使用Pushlet库来实现定时向用户页面发送更新信息。 首先,理解Pushlet的基本工作原理。Pushlet采用了一个叫做Comet的技术,Comet是长连接的一种实现方式...
本实例将介绍如何使用Pushlet实现服务端推送,并解决中文推送时出现的问题。 首先,我们来看Pushlet的基本原理。Pushlet基于Servlet和JSP技术,通过HTTP连接保持来实现实时通信。当客户端(浏览器)与服务器建立...
Pushlet 是由Caucho公司开发的,其核心思想是基于HTTP长连接的服务器推送,解决了传统HTTP协议中客户端必须发起请求才能获取数据的问题。Pushlet框架包括服务器端组件和客户端组件,通过简单的API和协议,使得开发者...
Pushlet的核心组件是Pushlet Server和Pushlet Client。Pushlet Server作为服务端,接收并处理客户端的连接,当有新的数据可用时,会主动将数据推送到已经建立连接的客户端。Pushlet Client则是在用户端运行的程序,...
Pushlet 是一个基于 Comet ...总的来说,Pushlet 提供了一个高效且易于集成的解决方案,用于实现服务器端到客户端的数据实时推送。通过正确配置和理解其工作原理,你可以有效地利用 Pushlet 构建实时互动的 Web 应用。
分析这个文件可以帮助你更好地理解和使用Pushlet框架,例如,你可以找到服务器如何处理推送事件,客户端如何建立连接,以及如何调试和解决问题的线索。 总之,Pushlet作为Comet的一种实现,提供了高效且灵活的...
服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet
java web开发中服务器推送pushlet.jar解决中文乱码
事件源是实现了`EventSource`接口的类,它们负责生成和发送事件到客户端。 3. **消息源配置**:在`sources.properties`中,你需要列出所有可用的消息源。这些源在服务器启动时会被自动加载并激活。例如,配置文件中...
【基于Pushlet_Chat技术的群聊实现及中文乱码问题解决方案】 Pushlet_Chat是一种实时通信技术,常用于构建即时消息系统(IM),尤其在B/S架构中广泛应用。它基于HTTP长连接,通过服务器向客户端推送数据,实现了低...
Pushlet项目是由Peter Mularien开发的,它提供了一个简单、轻量级的解决方案,允许服务器端主动向浏览器或其他客户端应用程序发送数据,而无需客户端不断地发起HTTP请求(即长轮询或短轮询)。 在Pushlet框架中,...
总之,Pushlet技术为实时通信提供了一种高效且灵活的解决方案,特别适合需要实时更新数据的场景,如在线聊天、股票行情、游戏等。通过学习和实践"pushlet实现简单的用户聊天",开发者可以掌握这种技术,并将其应用于...
总的来说,Comet框架的Pushlet实现是一种高效的服务器推送技术,它通过持久化连接解决了传统Web应用实时性不强的问题,对于需要实时数据更新的应用场景具有显著的优势。开发者可以利用Pushlet轻松构建出实时交互的...
7. **安全性**:在实际应用中,Pushlet需要考虑安全性问题,如身份验证、授权和加密通信等,以防止未授权访问和数据泄露。 通过上述机制,Pushlet服务器推技术实例能够实现高效的实时通信,尤其适用于需要实时交互...
Pushlet是Comet技术的一种具体实现,它们都旨在解决Web应用中的实时性问题。在服务器端,Pushlet使用`EventSource`和`EventSourceManager`来管理和处理事件,`EventSource`实现了`Runnable`接口,可以在多线程环境中...
总结来说,Pushlet是早期服务器推送技术的一个实例,它为Web实时通信提供了一个解决方案,但随着技术的发展,现在有更多的选择,如WebSocket和HTTP/2 Server Push,它们在性能和兼容性上都有所改进。
Pushlet是一种基于Java的实时数据推送技术,它允许服务器向客户端主动推送数据,而无需客户端持续不断地轮询请求。在Web应用中,Pushlet能够显著提高用户体验,因为它减少了延迟并优化了服务器资源的使用。本示例...
标题中的"pushlet 扩充,sessionid 采用userid"涉及到的是一个实时通信技术的应用,Pushlet 是一种基于服务器推送(Server-Sent Events, SSE)的技术,它允许服务器主动向客户端(通常是Web浏览器)发送数据,而不是...