0

次のコードが存在します

http://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html

これは、OracleチュートリアルのWebサイトです。

私の問題はサーブレットを理解することです。ページの下部にあるドキュメントでわかるように、次のように書かれています。

ReverseServletがhttp://example.com/servlet/ReverseServletにある場合、Reverseプログラムを次のように実行すると

http://example.com/servlet/ReverseServlet「ReverseMe

この例を実行するために、このリンクを使用してプログラムをテストしました

http://docs.oracle.com/javase/tutorial/networking/urls/examples/ReverseServlet.java "Reverse Me"

そして私はこのエラーを受け取りました:

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://docs.oracle.com/javase/tutorial/networking/urls/examples/ReverseServlet.java
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
    at DemoURL.main(DemoURL.java:28)

それは私のReverseServletが置かれている場所ですか、それとも私は完全に間違っています。これが正しい方法ではない場合、チュートリアルでこの例を確認するためにこのプログラムを実行するにはどうすればよいですか?

クラス名を変更したコードは次のとおりです。

    import java.io.*;
    import java.net.*;
    public class DemoURL {
        public static void main(String[] args) throws Exception {

            if (args.length != 2) {
                System.err.println("Usage:  java Reverse "
                    + "http://<location of your servlet/script>"
                    + " string_to_reverse");
                System.exit(1);
            }

            String stringToReverse = URLEncoder.encode(args[1], "UTF-8");

            URL url = new URL(args[0]);
            URLConnection connection = url.openConnection();
            connection.setDoOutput(true);

            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());

            out.write("string=" + stringToReverse);
            out.close();



            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String decodedString;
            while ((decodedString = in.readLine()) != null) {
                System.out.println(decodedString);
            }
            in.close();

        }
    }
4

2 に答える 2

2

使用するURLhttp://docs.oracle.com/javase/tutorial/networking/urls/examples/ReverseServlet.javaには、実行中のバージョンのリバースサーブレットは含まれていません。ソースのみが含まれています。

サーブレットを実行する場合は、サーブレットをコンパイルして、 TomcatJettyなどの選択したサーブレットコンテナに自分でサーブレットをデプロイする必要があります。サーブレットコンテナは、リクエストの受け入れ、解析、およびリクエストのサーブレットへの受け渡しを処理します。

これは、サーブレットを(比較的)簡単に実行する方法の説明です。Javaサーブレットをデプロイするための最速の方法です。

于 2012-10-09T13:49:46.313 に答える
1

ReverseServletがhttp://example.com/servlet/ReverseServletにある場合

これは、独自のサーブレットを作成する必要があることを意味します。

于 2012-10-09T13:51:23.597 に答える