下边代码POST文本数据给Servlet,然后显示响应结果
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.Vector;
public class MidletServlet extends MIDlet implements CommandListener {
Display display = null;
Form form = null;
TextField tb = null;
String str = null;
String url = "http://localhost:8080/servlets-examples/servlet/getText";
Command backCommand = new Command("Back", Command.BACK, 0);
Command submitCommand = new Command("Submit", Command.OK, 2);
Command exitCommand = new Command("Exit", Command.STOP, 3);
private Test test;
public MidletServlet() {}
public void startApp() throws MIDletStateChangeException {
display = Display.getDisplay(this);
form = new Form("Request Servlet");
tb = new TextField("Please input text: ","",30,TextField.ANY );
form.append(tb);
form.addCommand(submitCommand);
form.addCommand(exitCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
destroyApp(true);
notifyDestroyed();
} else if (c == backCommand) {
display.setCurrent(form);
} else if (c == submitCommand) {
str = tb.getString();
test = new Test(this);
test.start();
test.getServlet(str);
}
}
class Test implements Runnable {
MidletServlet midlet;
private Display display;
String text;
public Test(MidletServlet midlet) {
this.midlet = midlet;
display = Display.getDisplay(midlet);
}
public void start() {
Thread t = new Thread(this);
t.start();
}
public void run() {
StringBuffer sb = new StringBuffer();
try {
HttpConnection c = (HttpConnection) Connector.open(url);
c.setRequestProperty(
"User-Agent","Profile/MIDP-1.0, Configuration/CLDC-1.0");
c.setRequestProperty("Content-Language","en-US");
//ÉèÖÃÇëÇó·½·¨ÎªPOST
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty("Content-Length", Integer
.toString((text.trim()).getBytes().length));
DataOutputStream os =
(DataOutputStream)c.openDataOutputStream();
os.writeUTF(text.trim());
os.flush();
os.close();
//»ñµÃÏìÓ¦
DataInputStream is =(DataInputStream)c.openDataInputStream();
int ch;
sb = new StringBuffer();
while ((ch = is.read()) != -1) {
sb.append((char)ch);
}
showAlert(sb.toString());
is.close();
c.close();
} catch (Exception e) {
showAlert(e.getMessage());
}
}
/* ²É¼¯Êý¾ÝÈ»ºó´«µÝ¸øServlet */
public void getServlet(String text) {
this.text = text;
}
/* Display Error On screen*/
private void showAlert(String err) {
Alert a = new Alert("");
a.setString(err);
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
}
};
}
//Servlet ´úÂë
import java.io.*;
import java.text.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class getText extends HttpServlet {
public void init() {
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
DataInputStream in =
new DataInputStream((InputStream)request.getInputStream());
String text = in.readUTF();
String message;
try {
message = "100 ok";
} catch (Throwable t) {
message = "200 " + t.toString();
}
response.setContentType("text/plain");
response.setContentLength(message.length());
PrintWriter out = response.getWriter();
out.println(message);
in.close();
out.close();
out.flush();
}
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
doPost(request,response);
}
}
分享到:
相关推荐
MIDLet与Servlet的通信是移动应用与服务器端交互的重要方式,常用于实现数据同步、远程服务调用等功能。 在MIDLet中,由于硬件和资源限制,无法直接访问HTTP协议,因此通常需要通过JSR-82(Java API for Wireless ...
标题中的"midlet_servlet.rar_midlet-servlet"暗示了这是一个关于Java ME(Midlet)与Servlet交互的项目。在移动设备(如早期的智能手机)上,Java ME(Micro Edition)提供了一个名为Midlet的框架,用于开发移动...
**J2ME开发资料整理-在MIDlet中使用图标** 在Java 2 Micro Edition (J2ME)的开发环境中,MIDlet是用于移动设备和嵌入式系统的应用程序框架。MIDlet提供了丰富的功能,使得开发者能够创建交互式的、功能强大的移动...
MIDlet是J2ME中的一个关键概念,它是一个可下载的移动应用单元,能够在小型设备如手机或PDA上运行。通过MIDlet,开发者可以创建丰富的、交互式的移动应用。 1. **MIDlet基础** MIDlet是由两个主要组件构成:MIDlet...
- **权限声明标签**:在MIDlet的JAD文件中,需要声明MIDlet所需的权限。例如,如果MIDlet需要访问网络资源,应包含相应的权限声明。 - **通过Carbide.j进行权限声明**:Carbide.j提供了友好的图形界面,可以在其中...
前者是关于特定手持设备的Java API 集合的规格说明,包括运行特定设备中应用 所需的JVM 的规格说明;后者指出基本的J2ME 运行时环境,包括一组来自J2SE 的类。MIDP(Mobile Information Device Profile,移动 信息...
总的来说,这个RMS-MidLet例子是一个很好的起点,可以帮助初学者理解J2ME中的RMS系统,以及如何在实际项目中使用它来实现数据持久化。通过深入研究这个例子,你可以学习到如何在资源有限的移动设备上有效地管理和...
本文将详细介绍Midlet程序签名的相关概念、原理以及在实际开发中的应用。 #### 二、Midlet程序签名概述 ##### 1. 信任域的概念 在Java ME平台中,信任域(Trust Domain)是指一组具有相同信任级别的应用程序集合。...
在实际网络编程中,HTTP GET方法常用于获取资源,它的请求参数通常包含在URL中,而POST方法则用于提交数据,如表单数据,其参数包含在请求体中。在MIDlet与Servlet交互时,可能需要根据应用场景选择合适的方法。 ...
在Java 2 Micro Edition (J2ME)平台上,MIDlet是移动设备上运行的应用程序。这个案例聚焦于如何让MIDlet利用蓝牙技术与电脑进行数据通信。蓝牙技术允许设备间短距离无线通信,使得MIDlets可以扩展其功能,如传输文件...
MIDlet是J2ME中的一个核心概念,它是运行在移动设备或嵌入式系统上的Java应用程序。LWUIT则是一个轻量级的UI框架,用于简化和优化移动设备上的图形用户界面设计。 【描述】"this is simple example of j2me midlet ...
文件名称列表只给出了一项"248147",这可能是一个错误或者遗漏,通常在这样的列表中,我们期望看到的是具体的文件名,比如Java源代码文件(.java)、JAR文件(.jar)或者资源文件(如MIDI文件)。如果"248147"代表一...
本文将详细讲解如何在J2ME中读取MIDlet的系统属性,并解释这些属性的含义。 首先,让我们看一个简单的示例代码,该代码创建了一个名为`DetectMIDlet`的MIDlet,它展示了一些关键的系统属性: ```java import javax...
1. **项目创建**:在集成开发环境中新建一个MIDlet项目。 2. **UI设计**:根据需求设计用户界面,可以使用AWT/SWT组件库或自定义组件。 3. **功能实现**:编写业务逻辑代码,实现所需的功能模块。 4. **调试与测试**...
标题“midlet2.zip_png”暗示这可能是一个与Java MIDP(Mobile Information Device Profile)相关的压缩文件,MIDP是Java Micro ...核心代码集中在`midlet2.java`中,涉及图像处理、用户界面创建和事件响应等多个方面。
在本系统中,MIDlet程序用于实现客户端与服务器端的连接,并将用户输入信息发送到服务器端。 6. 移动设备的应用 移动设备已经成为高校学生的生活必需品,因此基于移动设备的应用程序可以更好地满足高校学生的需求。...
除了使用rapc之外,还可以直接在BlackBerry开发环境中导入MIDlet项目。这种方式更加方便,尤其是在处理复杂的项目结构时。具体步骤如下: 1. **准备MIDlet项目**: 确保你的MIDlet项目是完整的,包含了所有的源代码...
#### 一、通过RMS在MIDlet与BlackBerry应用间共享数据 对于很多初次接触BlackBerry应用的开发者或是那些使用J2ME系统的开发者而言,如何以最小的成本实现与BlackBerry应用的交互,是一个值得探讨的话题。而RMS...
在TCP中,数据被分割成小的数据块,并在接收端重新组装以确保数据的完整性。TCP提供了错误检测和纠正机制,确保数据无误地从发送方传输到接收方。 J2ME是Java的一个版本,主要用于嵌入式设备和移动设备,如早期的...