将我的applet链接到服务器目录以从那里接收或保存文件?

时间:2010-02-12 13:33:40

标签: applet

我正在寻找一个代码来保存在applet中创建的文件,通常是文本文件,我想将它们保存在服务器目录中,我该怎么办呢。

2 个答案:

答案 0 :(得分:1)

以下是如何发送String的示例。事实上,任何Object都可以发送给这个方法,只要它是可序列化的,并且applet和servlet上都存在相同版本的Object。

从小程序发送

    public void sendSomeString(String someString) {
        ObjectOutputStream request = null;
        try {
            URL servletURL = new URL(getCodeBase().getProtocol(),
                    getCodeBase().getHost(),
                    getCodeBase().getPort(),
                    "/servletName");

            // open the connection
            URLConnection con = servletURL.openConnection();
            con.setDoOutput(true);
            con.setUseCaches(false);
            con.setRequestProperty("Content-Type", "application/octet-stream");

            // send the data
            request =
                new ObjectOutputStream(
                new BufferedOutputStream(con.getOutputStream()));
            request.writeObject(someString);
            request.flush();

            // performs the connection
            new ObjectInputStream(new BufferedInputStream(con.getInputStream()));

        } catch (Exception e) {
            System.err.println("" + e);
        } finally {
            if (request != null) {
                try {
                    request.close();
                } catch (Exception e) {
                    System.err.println("" + e);
                };
            }
        }
    }

要在服务器端检索

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) {

        try {
            // get the input stream
            ObjectInputStream inputStream = new ObjectInputStream(
                    new BufferedInputStream(request.getInputStream()));

            String someString = (String)inputStream.readObject();

            ObjectOutputStream oos = new ObjectOutputStream(
                    new BufferedOutputStream(response.getOutputStream()));
            oos.flush();

            // handle someString....

        } catch (SocketException e) {
            // ignored, occurs when connection is terminated
        } catch (IOException e) {
            // ignored, occurs when connection is terminated
        } catch (Exception e) {
            log.error("Exception", e);
        }
   }

答案 1 :(得分:0)

没人会把它放在盘子上。您必须在applet中编写代码,以便将套接字连接回服务器并发送数据。解决此问题的一种方法是通过HTTP推送数据,并使用诸如commons-httpclient之类的库。这需要您的服务器处理适当的HTTP动词。

还有很多其他选项,正确的选项将取决于您尝试解决的问题的详细信息。