如何使用servlet运行简单的连接url程序?

时间:2012-10-09 13:44:00

标签: java url servlets connection

上存在以下代码

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

哪个是oracle教程网站。

我的问题是理解servlet。正如您在页面底部的文档中所看到的那样:

如果您的ReverseServlet位于http://example.com/servlet/ReverseServlet,那么当您使用

运行Reverse程序时

http://example.com/servlet/ReverseServlet“反向我”

要运行此示例,我使用此链接测试了我的程序

http://docs.oracle.com/javase/tutorial/networking/urls/examples/ReverseServlet.java“反向我”

我收到了这个错误:

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();

        }
    }

2 个答案:

答案 0 :(得分:2)

您使用的网址http://docs.oracle.com/javase/tutorial/networking/urls/examples/ReverseServlet.java不包含反向servlet的运行版本,只包含源代码。

如果要运行servlet,则需要编译它并在自己选择的servlet容器中自行部署servlet,例如TomcatJetty或类似的。 servlet容器处理接受请求,解析请求并将请求传递给servlet。

以下是如何(相对)轻松运行servlet Fastest way to deploy a Java servlet的说明。

答案 1 :(得分:1)

  

如果您的ReverseServlet位于http://example.com/servlet/ReverseServlet

这意味着您需要创建自己的Servlet。