servlet与J2me Project通信?

时间:2010-07-22 11:57:58

标签: java eclipse servlets java-me

我正在使用Eclipse在J2ME中开发应用程序。在这个应用程序中,我正在使用一个名为HitServlet的servlet和一个J2me类HitMIDlet。 我想使用Eclipse运行这个项目。但我不知道目录结构是什么 以及我如何制作目录结构。 我在我的eclipse中配置了J2ME插件和Tomcat。 但我不知道我的日食中的类的目录结构是什么。 为了得到适当的出局。 我想当我运行j2me类(HitMIDlet)时,它命中了servlet(HitServlet)并将其输出 放。

这是我的J2me类代码:

import java.io.*;

import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class HitMIDlet
    extends MIDlet 
    implements CommandListener {
  private Display mDisplay;
  private Form mMainForm;
  private StringItem mMessageItem;
  private Command mExitCommand, mConnectCommand;

  public HitMIDlet() {
    mMainForm = new Form("HitMIDlet");
    mMessageItem = new StringItem(null, "");
    mExitCommand = new Command("Exit", Command.EXIT, 0);
    mConnectCommand = new Command("Connect",
        Command.SCREEN, 0);
    mMainForm.append(mMessageItem);
    mMainForm.addCommand(mExitCommand);
    mMainForm.addCommand(mConnectCommand);
    mMainForm.setCommandListener(this);
  }

  public void startApp() {
    mDisplay = Display.getDisplay(this);
    mDisplay.setCurrent(mMainForm);
  }

  public void pauseApp() {}

  public void destroyApp(boolean unconditional) {}

  public void commandAction(Command c, Displayable s) {
    if (c == mExitCommand)
      notifyDestroyed();
    else if (c == mConnectCommand) {
      Form waitForm = new Form("Waiting...");
      mDisplay.setCurrent(waitForm);
      Thread t =  new Thread() {
        public void run() {
          connect();
        }
      };
      t.start();
    }
  }

  private void connect() {
    HttpConnection hc = null;
    InputStream in = null;
    String url = getAppProperty("HitMIDlet.URL");

    try {
      hc = (HttpConnection)Connector.open(url);
      in = hc.openInputStream();

      int contentLength = (int)hc.getLength();
      byte[] raw = new byte[contentLength];
      int length = in.read(raw);

      in.close();
      hc.close();

      // Show the response to the user.
      String s = new String(raw, 0, length);
      mMessageItem.setText(s);
    }
    catch (IOException ioe) {
      mMessageItem.setText(ioe.toString());
    }
    mDisplay.setCurrent(mMainForm);
  }
}

和servlet(HitServlet)

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;

public class HitServlet extends HttpServlet {
  private int mCount;

  public void doGet(HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException, IOException {
    String message = "Hits: " + ++mCount;

    response.setContentType("text/plain");
    response.setContentLength(message.length());
    PrintWriter out = response.getWriter();
    out.println(message);
  }
}  

1 个答案:

答案 0 :(得分:0)

让Eclipse生成目录结构。创建两个项目。一个用于J2ME的 JavaME> MIDlet项目(假设您已正确安装了Mobile Tools插件),其他用于JavaEE的 Web>动态Web项目(假设您正在使用Eclipse for Java EE和/或单独安装了Web Tools插件)。在移动客户端上运行J2ME项目并在Tomcat服务器上运行JavaEE项目。

另见: