Servlet日記(1999/11/21)

本日の成果

 データベースは前回で一応終わったことにして、今回からAppletとServletの通信を試してみます。まずはHTTPでServletからAppletにテキスト形式で送ります。これは、Appletから送った文字列をServletで大文字にしてAppletに返すものです。AppletからServletに文字列を渡すのは、URLのQueryStringを用います。

 まず、Appletの主要部分は、こんな感じ。

  private String getHttpText(String s) {
    String res = null;
    try {
      URL url = new URL(getCodeBase(),"/servlet/Servlet1?str=" + URLEncoder.encode(s));
      URLConnection con = url.openConnection();
      con.setUseCaches(false);
      InputStream in = con.getInputStream();
      BufferedReader dis = new BufferedReader(new InputStreamReader(in));
      res = dis.readLine();
      in.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    return res;
  }

 Servletの方は、こんな感じ。

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/plain");
    PrintWriter out = response.getWriter();
    out.println(request.getParameter("str").toUpperCase());
  }

 今回は、JSDK2.1を使っています。なので、servletrunner(2.1の本当の名前は何でしょう?)のドキュメントルートにAppletを一式置いて、動作を確認しました。これは簡単で理解しやすいですね。

本日の教訓

 Applet-Servlet間通信の第一歩。HTTPによるテキスト通信なら簡単です。

Servlet日記(1999/11/14) Servlet日記の目次 Servlet日記(1999/11/27)