`

如何在MIDlet中POST文本数据给Servlet

阅读更多

下边代码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与Servlet的通信是移动应用与服务器端交互的重要方式,常用于实现数据同步、远程服务调用等功能。 在MIDLet中,由于硬件和资源限制,无法直接访问HTTP协议,因此通常需要通过JSR-82(Java API for Wireless ...

    midlet_servlet.rar_midlet-servlet

    标题中的"midlet_servlet.rar_midlet-servlet"暗示了这是一个关于Java ME(Midlet)与Servlet交互的项目。在移动设备(如早期的智能手机)上,Java ME(Micro Edition)提供了一个名为Midlet的框架,用于开发移动...

    J2ME开发资料整理-在MIDlet中使用图标(附范例)

    **J2ME开发资料整理-在MIDlet中使用图标** 在Java 2 Micro Edition (J2ME)的开发环境中,MIDlet是用于移动设备和嵌入式系统的应用程序框架。MIDlet提供了丰富的功能,使得开发者能够创建交互式的、功能强大的移动...

    MIDlet控件实例项目(mvc)

    MIDlet是J2ME中的一个关键概念,它是一个可下载的移动应用单元,能够在小型设备如手机或PDA上运行。通过MIDlet,开发者可以创建丰富的、交互式的移动应用。 1. **MIDlet基础** MIDlet是由两个主要组件构成:MIDlet...

    MIDlet程序自签名方法

    - **权限声明标签**:在MIDlet的JAD文件中,需要声明MIDlet所需的权限。例如,如果MIDlet需要访问网络资源,应包含相应的权限声明。 - **通过Carbide.j进行权限声明**:Carbide.j提供了友好的图形界面,可以在其中...

    MIDlet与Servlet通信的研究与设计

    前者是关于特定手持设备的Java API 集合的规格说明,包括运行特定设备中应用 所需的JVM 的规格说明;后者指出基本的J2ME 运行时环境,包括一组来自J2SE 的类。MIDP(Mobile Information Device Profile,移动 信息...

    RMS-MidLet例子

    总的来说,这个RMS-MidLet例子是一个很好的起点,可以帮助初学者理解J2ME中的RMS系统,以及如何在实际项目中使用它来实现数据持久化。通过深入研究这个例子,你可以学习到如何在资源有限的移动设备上有效地管理和...

    Midlet Signing

    本文将详细介绍Midlet程序签名的相关概念、原理以及在实际开发中的应用。 #### 二、Midlet程序签名概述 ##### 1. 信任域的概念 在Java ME平台中,信任域(Trust Domain)是指一组具有相同信任级别的应用程序集合。...

    基于HTTP的网络编程

    在实际网络编程中,HTTP GET方法常用于获取资源,它的请求参数通常包含在URL中,而POST方法则用于提交数据,如表单数据,其参数包含在请求体中。在MIDlet与Servlet交互时,可能需要根据应用场景选择合适的方法。 ...

    MIDlet通过蓝牙与电脑通信的案例

    在Java 2 Micro Edition (J2ME)平台上,MIDlet是移动设备上运行的应用程序。这个案例聚焦于如何让MIDlet利用蓝牙技术与电脑进行数据通信。蓝牙技术允许设备间短距离无线通信,使得MIDlets可以扩展其功能,如传输文件...

    Midlet2.rar_midlet_simple

    MIDlet是J2ME中的一个核心概念,它是运行在移动设备或嵌入式系统上的Java应用程序。LWUIT则是一个轻量级的UI框架,用于简化和优化移动设备上的图形用户界面设计。 【描述】"this is simple example of j2me midlet ...

    MIDlet-Test.zip_midi_midlet

    文件名称列表只给出了一项"248147",这可能是一个错误或者遗漏,通常在这样的列表中,我们期望看到的是具体的文件名,比如Java源代码文件(.java)、JAR文件(.jar)或者资源文件(如MIDI文件)。如果"248147"代表一...

    读取MIDlet的系统属性

    本文将详细讲解如何在J2ME中读取MIDlet的系统属性,并解释这些属性的含义。 首先,让我们看一个简单的示例代码,该代码创建了一个名为`DetectMIDlet`的MIDlet,它展示了一些关键的系统属性: ```java import javax...

    黑莓MIDlet开发指南

    1. **项目创建**:在集成开发环境中新建一个MIDlet项目。 2. **UI设计**:根据需求设计用户界面,可以使用AWT/SWT组件库或自定义组件。 3. **功能实现**:编写业务逻辑代码,实现所需的功能模块。 4. **调试与测试**...

    midlet2.zip_png

    标题“midlet2.zip_png”暗示这可能是一个与Java MIDP(Mobile Information Device Profile)相关的压缩文件,MIDP是Java Micro ...核心代码集中在`midlet2.java`中,涉及图像处理、用户界面创建和事件响应等多个方面。

    基于Java ME和Servlet的移动成绩查询系统的实现.pdf

    在本系统中,MIDlet程序用于实现客户端与服务器端的连接,并将用户输入信息发送到服务器端。 6. 移动设备的应用 移动设备已经成为高校学生的生活必需品,因此基于移动设备的应用程序可以更好地满足高校学生的需求。...

    如何将MIDlet应用移植到BlackBerry

    除了使用rapc之外,还可以直接在BlackBerry开发环境中导入MIDlet项目。这种方式更加方便,尤其是在处理复杂的项目结构时。具体步骤如下: 1. **准备MIDlet项目**: 确保你的MIDlet项目是完整的,包含了所有的源代码...

    BlackBerry 应用和MIDlet之间的交互

    #### 一、通过RMS在MIDlet与BlackBerry应用间共享数据 对于很多初次接触BlackBerry应用的开发者或是那些使用J2ME系统的开发者而言,如何以最小的成本实现与BlackBerry应用的交互,是一个值得探讨的话题。而RMS...

    tcp.rar_chat_j2me tcp_midlet tcp server

    在TCP中,数据被分割成小的数据块,并在接收端重新组装以确保数据的完整性。TCP提供了错误检测和纠正机制,确保数据无误地从发送方传输到接收方。 J2ME是Java的一个版本,主要用于嵌入式设备和移动设备,如早期的...

Global site tag (gtag.js) - Google Analytics