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

标签 java url servlets connection

下面的代码存在于

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

这是oracle教程网站。

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

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

运行反向程序时

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

        }
    }

最佳答案

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

如果您想运行 servlet,您需要编译它并自行将 servlet 部署到您选择的 servlet 容器中,例如 Tomcat , Jetty或类似的。 servlet 容器负责接受请求、解析请求并将请求传递给 servlet。

这里描述了如何(相对)轻松地运行 servlet Fastest way to deploy a Java servlet .

关于java - 如何使用servlet运行一个简单的连接url程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801491/

相关文章:

java - 如何处理多个密码

c# - 使用 HtmlAgilityPack C# 检索特定 URL

javascript - 如何检测 URL 位置是否在此页面以及同一域的任何其他子文件夹上

java - 客户端和服务器端应用程序之间的通信

java - 没有 Spring Boot 的 Spring Boot 执行器

java - 链表中的虚拟节点

java - for 循环的时间复杂度为 O(c^k) - 指数时间复杂度

javascript - 如何操作正则表达式从文本返回 URL 数组?

java - Struts 到 servlet 或集成 struts 和 servlet

jsp - JSP Servlet 中的最佳实践错误处理