我在eclipse中的run applet,可以生成文件
在classes目录下
然后在html文件中写<applet>,打开程序界面都能出来,也能运行,就是最后不能生成文件了
请问这是为什么呢?

解决方案 »

  1.   

    有些道理
    但是
    虽然我没怎么用过applet
    不过applete应该可以在本地保存文件的吧
    玩过一个人用applete写的梦幻。叫javaXYQ
    那么多资源文件都是从服务器上下下来的啊 
    而且,还有用户信息都会保存在客户端上。
      

  2.   

    Applet若加签了数字证书,则可以做越权动作。
      

  3.   

    我现在在自己机器上做测试,已经设置安全数字证书
    <applet codebase="..\WEB-INF\classes" code="test.class" width="800" height="300" />
    编译后的class在目录\web-app\WEB-INF\classes目录下,但是运行起来,就找不到test.class,
    报错
    Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/myGrails/WEB-INF/classes/test/class.class请教一下大家
      

  4.   

    需要打jar包。<applet
    code="YourClass" archive="xxx.jar"
    width="400" height="500" /> 
    code属性中.class后缀不需要
      

  5.   

    谢谢楼上的以及前面所有的兄弟们
    目前还有个问题 /********************************
     * 功能:获取与服务器的连接
     * 
     * @return:HttpURLConnection
     * @param urlString
     *            服务器的url *
     * @param filename
     *            上传的文件名称 *
     * @throws Exception
     *             *
     ********************************/
    private HttpURLConnection getConnection(String urlString, String filename)
    throws Exception {
    URL server = new URL(urlString + "?filename=" + filename);
    reportMSG("url= " + urlString + "?filename=" + filename);
    HttpURLConnection con = (HttpURLConnection) server.openConnection(); // 获取服务器端连接
    con.setDoInput(true);
    con.setDoOutput(true);
    con.setUseCaches(false);
    con.setDefaultUseCaches(false); return con;
    } /****************************************
     * 功能:上传文件到服务器 *
     * 
     * @param con
     *            与服务器的连接 *
     * @param path
     *            需要上传的文件的路径 *
     * @throws IOException
     *             *
     ****************************************/
    private void sendServletObject(HttpURLConnection con)
    throws Exception { FileInputStream fis = null;
    BufferedInputStream bis = null;
    con = this.getConnection(baseUrl, recorderFilename); BufferedOutputStream bos = null;
    byte[] buf = new byte[4096]; // 定义一个4M的缓存区
    int len = 0; try {
    bos = new BufferedOutputStream(con.getOutputStream());
    fis = new FileInputStream(recordFile);
    bis = new BufferedInputStream(fis);
    while ((len = bis.read(buf)) != -1) {
    bos.write(buf, 0, len); // 上传文件
    bos.flush(); // 缓存刷新
    } } catch (Exception e) {
    e.printStackTrace();
    } finally {
    if (bis != null) {
    bis.close();
    }
    if (fis != null) {
    fis.close();
    }
    if (bos != null) {
    bos.flush();
    bos.close();
    }
    buf = null;
    }
    }这是上传到服务器的代码,urlString的值我是通过applet中自带的getCodeBase()获取的,我想直接传入到这个目录下,但是无法写入到该目录下,请教一下大家
      

  6.   

    考虑这几方面?
    1、Applet只能跟自己所下载的服务器联系(这一点似乎你做到的)
    2、Server是不是需要开http put权限?
    3、Applet是不是也需要明确使用http put方法?谈不上请教,我也没做过你这活。我想如果要我做我会这样去展开。
      

  7.   

    HttpURLConnection con = (HttpURLConnection) server.openConnection(); // 获取服务器端连接
    con.setDoInput(true);
    con.setDoOutput(true);
    con.setUseCaches(false);
    con.setDefaultUseCaches(false);这里放开了server端的http put权限了现在的问题是通过applet来连接 程序中的URL server = new URL(urlString + "?filename=" + filename);
    但是不能上传文件;我直接在ie中输入这个URL server = new URL(urlString + "?filename=" + filename);
    ,可以上传文件,不过这是个空文件了
    不知道为什么在applet里不能实现
    还是请教大家了
      

  8.   

    已经解决了,在生成audiostream的时候需要客户端的权限控制
    需要修改或者生成有权限的.java.policy文件
    谢谢楼上的各位兄弟
    结贴了