1

これは私の現在のMidletです

 if (display.getCurrent() == mainform) {

            selectedparam = activity.getString(activity.getSelectedIndex());

            url = "http://localhost:8080/TOMCATServer/RetrieveServlet?";
            parameter = "activity=" + selectedparam;



            System.out.println(url + parameter);

            try {
                hc = (HttpConnection) Connector.open(url + parameter);
                hc.setRequestMethod(HttpConnection.POST);
                hc.setRequestProperty("CONTENT_TYPE", "application/x-www-from-urlencoded");
                hc.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");

                out = hc.openOutputStream();
                byte[] postmsg = parameter.getBytes();
                for (int i = 0; i < postmsg.length; i++) {
                    out.write(postmsg[i]);
                }
                out.flush();
                in = hc.openInputStream();


                int ch;
                while ((ch = in.read()) != -1) {
                    b.append((char) ch);
                }

                String result = b.toString().trim();

                System.out.println(result);
                activitiesform.deleteAll();
                activitiesform.append(result);
                display.setCurrent(activitiesform);


            } catch (Exception c) {
                Alert alert = new Alert("Error", "The connection has failed. Please try again.", null, AlertType.ERROR);
                display.setCurrent(alert);
            }

そして、これが私の現在のサーブレットです

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        String activityparam = request.getParameter("activity");
        String[] sports = new String[5];
        sports[0] = ("Football competition");

        if (activityparam.equals("Sports")) {
            out.println("These are the list of sporting activities \n");
            for (int i = 0; i < 5; i++) {

                out.println(sports[i]);
                //Wanted to output the images of different sports here
   }

私が達成したかったのは、クエリ要求が送信された後、サーブレットがスポーツ [i] の文字列と共に画像を Midlet に表示できるようにすることです。現在、PrintWriter を使用して文字列テキストのみを処理しています。画像ファイルはローカルに保存されるため、絶対パスで問題ありません。私を助けてください。ありがとう。

4

1 に答える 1

2

2 つのサーブレットを使用する必要があると思います。1 つは文字列用、もう 1 つはイメージ用です (一度に 1 つずつ)。

MIDlet は、次の方法で画像を取得できます。

    画像 img = Image.createImage(in);

画像データをキャッシュする必要がある場合は、次を使用できます。

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    byte buff[] = new byte[1024];
    int len = in.read(buff);

    ながら (長さ > 0) {
        baos.write(buff, 0, len);
        len = in.read(バフ);
    }
    baos.close();
    buff = baos.toByteArray();
    // レコードストアに書き込みます
    画像 img = Image.createImage(新しい ByteArrayInputStream(buff));

于 2012-04-09T20:19:46.720 に答える