アプレットを使用して投票フォームを作成するために、アプレットがサーブレットとどのように通信できるかを知りたいと思っていました。このサーブレットは、サーバー上のテキスト ファイルに結果を書き込むためのものです。どうすればこれができるのかわかりません。
3 に答える
これに使用できますjava.net.URLConnection
。
/myservlet
サーブレットがのURLパターンにマップされ、アプレットがコンテキストルートから提供されると仮定すると、これは次のようになります。
InputStream servletResponse = new URL(getCodeBase(), "myservlet").openStream();
// ...
それで全部です。はクラスgetCodeBase()
から継承されApplet
、アプレットのコードベースURL(アプレットがダウンロードされた場所)を動的に返します。には、サーブレットに書き込んだもの、またはサーブレットservletResponse
に書き込んだものがすべて含まれます。たとえば、「ok」文字列や、XMLやJSONなどの簡単に解析できる形式です。リクエストパラメータは、GETリクエストURLまたはPOSTリクエスト本文のクエリ文字列として渡すことができます。response.getOutputStream()
response.getWriter()
参照:
アプレットとサーブレットは別物です。魔法を使ってこれを簡単にする簡単な方法はありません。
サーブレットは、Web サーバー上の正しい URL に対して HTTP 要求が行われたときに実行される、Web サーバー内のスニペットです。したがって、サーブレットが実行されている Web サーバー上の正しい URL に対して HTTP 要求を行う必要があります。
これは、アプレットから他の HTTP 要求を行うのと同じ方法で行われます。これは、自立型アプリケーションから HTTP 要求を行うのと同じ方法で行われます。
アプレット/サーブレット通信にはいくつかのオプションがあります....
- http リクエスト。(これが一番簡単かもしれません)。このために、Apache HTTP コンポーネントを使用できます。
- リモート メソッド呼び出しRMI。これは http リクエストより複雑かもしれませんが、何を達成したいかによって異なります。
- ソケット。(httpリクエストはユースケースに十分柔軟だと思いますが、念のため)
- ジャバスクリプト。アプレットから javascript 関数を呼び出し、javascript 関数が ajax、websockets などを介してサーブレットに情報を送信できるようにします。
もちろん、他にも多くのオプションがありますが、これらはいくつかのアイデアであり、アプレットに署名する必要がある場合があることを覚えておいてください。
あなたの質問がファイルへの書き込み方法に関するものであれば、多くのチュートリアルがあります。ここに良いものがあります