J2MP如何Post数据在网上可以搜到不少例子,代码虽然有一些差别,但是一般都是可以用的,其中搜索的个别帖子提到了写入提交数据后必须用flush,代码如下:
if(!postData.equals("")){
System.out.println(postData);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty( "Content-Length",String.valueOf(postData.length()));
DataOutputStream dos = conn.openDataOutputStream();
dos.write(postData.getBytes("UTF-8"));
dos.flush();
dos.close();
}
测试发现,无论模拟器还是实机,调用flush后服务器完全无法获取参数,不用flush则正常,后来在网上找到不用flush的原因:
在servlet端使用request.getContentLength();语句得不到数据长度的问题
原因主要是flush()语句的使用问题,flush方法即使在缓冲区中没有满的情况下,也会将缓冲区内的内容强制写到外设,也就是所谓的刷新。flush方法不是对所有的OutputStream子类起作用,只对那些使用缓冲区的OutputStream子类有效。。。。,因此在使用flush()方法时,发出的数据包就无法确定长度,这时底层自动使用chunked编码,就不会有"Content-Length"这个头域,因此在服务器端就没法获取长度。所以你在程序中要注意对flush的调用,不然可能碰到奇怪的问题。。。
其实调用close方法,系统在关闭这个流前,也会将缓冲区的内容写到外设上,所以一般必须使用close()方法就行。
分享到:
相关推荐
其次,POST请求则更为灵活,常用于向服务器提交数据。与GET类似,我们首先建立`HttpConnection`,但这次需要设置请求方法为"POST",并使用`OutputStream`写入请求体数据。同时,可能需要设置Content-Type头部来指定...
最后,基于J2ME开发的手机测量数据处理程序在教学和实际工作中显示出与传统编程计算器程序相比的明显优势,这可能体现在便携性、易用性、计算速度和准确性等方面。这也体现了在移动设备上进行数据分析处理的潜力和...
**J2ME API 2.0 - J2ME使用手册 - J2ME帮助文档** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专为资源有限的设备如移动电话、智能手表和家用电器等设计。J2ME API 2.0 提供了在这些小型设备上开发应用...
5. **线程安全**:在J2ME中,必须特别注意线程安全,确保对全局变量和共享数据结构的操作是线程安全的。 6. **生命周期管理**:创建线程后,需管理其生命周期,包括启动、暂停、恢复和停止线程,以避免资源浪费。 ...
"J2ME开发.pdf"可能包含J2ME的详细教程或者最佳实践,涵盖从基础语法到高级特性的讲解,包括UI设计(如Form和Canvas类)、数据持久化(RecordStore)、网络编程(HttpConnection和Socket)以及事件处理等。...
标题中的“j2me 与jsp通信”涉及的是在移动设备上使用Java 2 Micro Edition (J2ME)平台与服务器端的JavaServer Pages (JSP)进行数据交互的技术。J2ME通常用于开发功能手机和嵌入式系统的应用程序,而JSP则是Web开发...
5. **图形与多媒体**:J2ME支持丰富的图形和多媒体处理,教程会讲解如何使用Graphics类进行绘图,以及如何播放音频和视频。 6. **存储管理**:由于移动设备的存储资源有限,教程会讲述如何有效地使用RecordStore...
Java 2 Micro Edition(J2ME)是一种针对嵌入式设备和移动设备的Java平台,它主要用于开发在手机、智能手表、电视等设备上的应用程序。点阵字库是J2ME应用中一种特殊的字体资源,尤其对于游戏开发来说,非常重要。...
在J2ME应用中,`HttpConnection`类支持三种主要的HTTP请求:GET、POST和HEAD。 1. GET请求用于请求数据,比如网页或多媒体文件。数据可以包含在URL中,但数量有限,且明文可见,不适合传输敏感信息。 2. POST请求...
以上就是基于J2ME、Servlet和MySQL查询数据的基本过程和涉及的关键知识点。在实际应用中,应考虑更多的细节,例如错误处理、性能优化、安全性等方面。对于初学者来说,这是一个很好的起点,可以从中学习到Web服务和...
在J2ME中,我们通常使用Canvas类作为画布,绘制游戏的各个元素。Canvas继承自Displayable,允许我们自定义绘制函数,实现游戏画面的更新。例如,在飞机游戏中,我们需要绘制飞机、敌人、子弹以及背景等元素。 事件...
1. **基础概念**:讲解J2ME的基本架构、开发环境设置,如NetBeans或Eclipse IDE的使用,以及如何创建和部署J2ME项目。 2. **MIDP API**:深入解释MIDP库,包括用户界面组件(如 LCDUI)、网络通信(WAP和HTTP)、...
在"J2ME游戏开发中的地图设计与绘制.txt"文件中,可能详细讲解了如何规划地图结构,如何使用二维数组存储地图数据,以及如何利用J2ME的图形API高效地渲染地图。同时,文件可能还讨论了如何实现动态加载和滚动地图,...
由于硬件限制,j2me手机浏览器必须进行大量优化,例如通过减少图像质量和压缩文本来降低数据传输量。此外,它们可能不支持某些HTML元素和属性,或者对页面大小和复杂性有限制。 总的来说,“j2me手机浏览器”是J2ME...
J2ME应用通常打包为JAR(Java Archive)文件和jad(Java Application Descriptor)文件,jad文件包含了应用的元数据,如版本信息和依赖关系。然后,这些文件可以通过WAP或者OTA(Over The Air)方式分发到移动设备上...
6. **用户界面**:在J2ME中,用户界面通常通过Wireless Toolkit(WTK)提供的模拟器进行设计和测试,使用轻量级的User Interface API,如Canvas和Form,来创建屏幕布局和交互。 7. **网络编程**:J2ME支持HTTP和TCP...
4. **网络通信与安全**: 如果应用涉及网络通信,需了解如何使用JSR 82(蓝牙API)或JSR 118(无线连接API)等规范,同时注意数据加密和安全问题。 通过以上步骤,你已经成功配置了J2ME的开发环境,可以开始创建自己...
例如,你可以使用 `putNextEntry()` 方法添加新的条目到 ZIP 输出流,然后用 `write()` 方法写入数据,最后用 `closeEntry()` 关闭当前条目。 2. **GZIP 算法**: GZIP 是另一种压缩格式,主要用于单个文件的压缩...
介绍了J2ME(Java 2 Micro Edition)平台上实现数据的DES(Data Encryption Standard)加密的基本原理和具体实施方法。J2ME是Java平台的一个版本,专门设计用于资源受限的设备,如移动电话、个人数字助理(PDA)和...