不使用包,把jsp和applet放在同一目录下

解决方案 »

  1.   

    我想用JSP文件调用WEB-INF/classes/包 里的APPLET类文件.....恳请高手帮帮助...
      

  2.   

    那个web-inf目录在web bowser不能访问!你需要把applet的类放到其他目录,
    applet的工作原理是通过浏览器下栽到本地,然后通过bowser运行,bowser是它的容器!你可以在本地的临时文件夹中找到下载的jar or class文件。如果放到web-inf哪里不就不能直接访问到了么?
      

  3.   

    哦...是这样的...我明白了...谢谢楼上的..我想用APPLET操作WEB-INF/里的BEAN....如果真的不能的话...我还想问APPLET与JSP之间传值,可以传对象吗??
      

  4.   

    applet不能直接和server端的bean或者一般的class直接调用!需要通过URLConnection!??
    访问服务器控件,就是访问servlet,jsp本质就是servlet,通过servlet调用Bean 或者class,然后把结果传给applet!
    通过Object流传递对象只能传jdk1.0有的(IE好像只支持jdk1.0的类),好像不能传递自定义的对象!这就好像是通过rmi访问远程对象一样,需要applet中也要包含远程对象的实现。
    但是可以避开,把传递的数据放到合适的集合类中,传过来就可以了么!?比如:vector+hashtable!就是把bean的各个数据段放到hashtable中,然后n个bean都放到vector中,把vector传给applet!当然还要注意bean的序列化!
      

  5.   

    说得有些乱,不是把bean放到vector中,是把复制了bean数据的hashtable放到vector中!
      

  6.   

    是不是很难的....我听得不太明白...如果有个例子就好了...其实我是想做一个树控件在APPLET里在JSP里使...方法做好就.就差传值问题..
      

  7.   

    只能传JDK标准的可序列化类,因为applet不可能能知道服务器端自定义的类!
    把数据用合适的集合类封装好,通过对象流传给applet。applet分析其中的数据。
    就好像自己定义一套协议!
    如把一个bean的字段映射到hashtable
    那么hashtable的key就是bean中变量的名字 value就是值。
    applet收到这个hashtable后,从中按照你放到hashtable的变量名字得到相应的值!
    比如:
    bean中有两个变量
    string name;
    int age;
    那么在服务器端将bean映射到hashtable中就可以这么干:(Hashtable已经建立,就叫ht_bean)
    ht_bean.add("name","pig man");
    ht_bean.add("age",new Integer(20));applet通过对象流得到这个hashtable后,已知有两个key是name 和age
    String name = (String)ht_receivedbean.get("name");
    Intger age = (Integer)ht_receivedbean.get("age");对象流可以通过URLConnection对象得到InputStream->ObjectInputStream来得到!
    注意applet的方法只支持1.0的JDK!
    比如vector的add方法就不支持,只支持addElement方法!
      

  8.   

    改写bean映射到hashtable的例子:
    Server端会有类似代码吧:
    myBean abean = new myBean();
    abean.setName("pig man");
    abean.setAge(20);然后可以映射到hashtable
    ht_bean.add("name",abean.getName());
    ht_bean.add("age",new Integer(abean.getAge()));
      

  9.   

    首先谢谢 adolfdi(牛肉火锅)..你真得很好人..再助我看看吧..嘻嘻在我的BEAN 里有个方法返回DefaultTreeModel的方法
    我把整理好的数据封装到DefaultTreeModel里我想在APPLE得到那个DefaultTreeModel...在JSP上怎样把DefaultTreeModel传过去呢...
    DefaultTreeModel也实现有这个Serializable接口(序列化)...
      

  10.   

    DefaultTreeMode是你自己写的类吧,那就不能传了。
    因为applet不能知道你自己在服务器端自定义的类的类型!
    想象一下,你把DefaultTreeMode传到applet,得到的是Object类型,需要把它cast为DefaultTreeMode,但是DefaultTreeMode是在服务器上的类,不是applet的jar包中的类。
    怎么cast???所以需要传递两边都能获得的类才行呀!
    你把DefaultTreeMode的值都映射到hashtable,如果多层钱套,就用多个hashtable嵌套!
    模拟你的DefaultTreeMode结构!然后传这个哈西表!
      

  11.   

    是通过
    <param name="name" value="xxx" />来传值吗??  菜菜的问
      

  12.   

    这是写在html中的,在applet初始化时候读入的参数。
    你的树型菜单是静态的么?如果是到是可以。
    但是如果在操作中会改变,并且还要和服务器端交互,就不能这么用!
    只能动态和服务器进行数据传递!
    在applet中通过URLConnection对象,访问服务器的servlet,可以得到OutputStream and InputStream,你可以包输入输出流包装为对象流等其他的高级流,传递数据!
      

  13.   

    JSP里这样写
    <%
    ObjectOutputStream outObject;
    try {
    outObject=new ObjectOutputStream(response.getOutputStream());
    DataExam dd=new DataExam();
    outObject.writeObject("asdf");//e((Object)new String("HAHA"));

    outObject.close();

        }
        catch (Exception ex) {
        }%>APPLET里这样写public String getURL(){

    URL url = getCodeBase();
            
    String str=url.getProtocol()+"://"+url.getHost()+":"+url.getPort()+
    "/exam";

    return str;
    }
    public void getData()throws Exception{
    ObjectInputStream inObject;
    URL url=new URL(getURL());
    URLConnection urlCon=url.openConnection();

    urlCon.connect();
    urlCon.setDoInput(true);

    inObject=new ObjectInputStream(urlCon.getInputStream());

    //treeModel=(DefaultTreeModel)inObject.readObject();
    String aaa=(String)inObject.readObject();

    inObject.close();
    DefaultMutableTreeNode bbb=new DefaultMutableTreeNode(aaa);
    tree=new JTree(bbb);
    Container c=this.getContentPane();
    c.add(new JScrollPane(tree),BorderLayout.CENTER);
    }//
    出现了这样的错..
    D:\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\tree_jsp.java:58: illegal start of expression
          out.write("*/ %>\r\n");
                        ^
    是用response的OutputStream的吗
      

  14.   

    無效的開始表達式,不是代碼問題。
    你看看是不是<% %>有問題!擴的不對,
    將response的OutputStream包裝成對象流!你已經這麽做了!
      

  15.   

    <%
    ObjectOutputStream outObject;
    try {
    outObject=new ObjectOutputStream(response.getOutputStream());
    DataExam dd=new DataExam();
    outObject.writeObject("asdf");
    outObject.close();
        }
        catch (Exception ex) {
        }
    %>
    *****************************
    扩起来了....
    怎么会出理这个的...out.write("*/ %>\r\n");
    真不明白
    ******************************org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 5 in the jsp file: /tree.jspGenerated servlet error:
        [javac] Compiling 1 source fileD:\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\tree_jsp.java:58: illegal start of expression
          out.write("*/ %>\r\n");
                        ^An error occurred at line: 5 in the jsp file: /tree.jspGenerated servlet error:
    D:\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\tree_jsp.java:58: illegal character: \92
          out.write("*/ %>\r\n");
                          ^An error occurred at line: 5 in the jsp file: /tree.jspGenerated servlet error:
    D:\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\tree_jsp.java:58: illegal character: \92
          out.write("*/ %>\r\n");
                            ^An error occurred at line: 5 in the jsp file: /tree.jspGenerated servlet error:
    D:\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\tree_jsp.java:58: unclosed string literal
          out.write("*/ %>\r\n");
                              ^
    4 errors
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:127)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:553)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)