[急]JSP+Applet出错... 不使用包,把jsp和applet放在同一目录下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想用JSP文件调用WEB-INF/classes/包 里的APPLET类文件.....恳请高手帮帮助... 那个web-inf目录在web bowser不能访问!你需要把applet的类放到其他目录,applet的工作原理是通过浏览器下栽到本地,然后通过bowser运行,bowser是它的容器!你可以在本地的临时文件夹中找到下载的jar or class文件。如果放到web-inf哪里不就不能直接访问到了么? 哦...是这样的...我明白了...谢谢楼上的..我想用APPLET操作WEB-INF/里的BEAN....如果真的不能的话...我还想问APPLET与JSP之间传值,可以传对象吗?? 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的序列化! 说得有些乱,不是把bean放到vector中,是把复制了bean数据的hashtable放到vector中! 是不是很难的....我听得不太明白...如果有个例子就好了...其实我是想做一个树控件在APPLET里在JSP里使...方法做好就.就差传值问题.. 只能传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 和ageString name = (String)ht_receivedbean.get("name");Intger age = (Integer)ht_receivedbean.get("age");对象流可以通过URLConnection对象得到InputStream->ObjectInputStream来得到!注意applet的方法只支持1.0的JDK!比如vector的add方法就不支持,只支持addElement方法! 改写bean映射到hashtable的例子:Server端会有类似代码吧:myBean abean = new myBean();abean.setName("pig man");abean.setAge(20);然后可以映射到hashtableht_bean.add("name",abean.getName());ht_bean.add("age",new Integer(abean.getAge())); 首先谢谢 adolfdi(牛肉火锅)..你真得很好人..再助我看看吧..嘻嘻在我的BEAN 里有个方法返回DefaultTreeModel的方法我把整理好的数据封装到DefaultTreeModel里我想在APPLE得到那个DefaultTreeModel...在JSP上怎样把DefaultTreeModel传过去呢...DefaultTreeModel也实现有这个Serializable接口(序列化)... DefaultTreeMode是你自己写的类吧,那就不能传了。因为applet不能知道你自己在服务器端自定义的类的类型!想象一下,你把DefaultTreeMode传到applet,得到的是Object类型,需要把它cast为DefaultTreeMode,但是DefaultTreeMode是在服务器上的类,不是applet的jar包中的类。怎么cast???所以需要传递两边都能获得的类才行呀!你把DefaultTreeMode的值都映射到hashtable,如果多层钱套,就用多个hashtable嵌套!模拟你的DefaultTreeMode结构!然后传这个哈西表! 是通过<param name="name" value="xxx" />来传值吗?? 菜菜的问 这是写在html中的,在applet初始化时候读入的参数。你的树型菜单是静态的么?如果是到是可以。但是如果在操作中会改变,并且还要和服务器端交互,就不能这么用!只能动态和服务器进行数据传递!在applet中通过URLConnection对象,访问服务器的servlet,可以得到OutputStream and InputStream,你可以包输入输出流包装为对象流等其他的高级流,传递数据! 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的吗 無效的開始表達式,不是代碼問題。你看看是不是<% %>有問題!擴的不對,將response的OutputStream包裝成對象流!你已經這麽做了! <% 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) jxl修改表格中的数为空时出错 java编码问题 取月份的问题!急! 这个错误是什么意思啊?spring 的问题555555555555555 一个SWT的欢迎与登录界面实现 关于两点确定一个直线方程 Swing的一个问题 @#@!做了个画图可以保存和读取的java程序 但每次画的线都会覆盖上次画的 完美解决送100分啊 请问: *.pdg 文件用什么能打开? JTable真是差劲 jbuilder能不能把applet转换成application? 庆祝加星,给大家几篇文章,顺便散分!!
applet的工作原理是通过浏览器下栽到本地,然后通过bowser运行,bowser是它的容器!你可以在本地的临时文件夹中找到下载的jar or class文件。如果放到web-inf哪里不就不能直接访问到了么?
访问服务器控件,就是访问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的序列化!
把数据用合适的集合类封装好,通过对象流传给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方法!
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()));
我把整理好的数据封装到DefaultTreeModel里我想在APPLE得到那个DefaultTreeModel...在JSP上怎样把DefaultTreeModel传过去呢...
DefaultTreeModel也实现有这个Serializable接口(序列化)...
因为applet不能知道你自己在服务器端自定义的类的类型!
想象一下,你把DefaultTreeMode传到applet,得到的是Object类型,需要把它cast为DefaultTreeMode,但是DefaultTreeMode是在服务器上的类,不是applet的jar包中的类。
怎么cast???所以需要传递两边都能获得的类才行呀!
你把DefaultTreeMode的值都映射到hashtable,如果多层钱套,就用多个hashtable嵌套!
模拟你的DefaultTreeMode结构!然后传这个哈西表!
<param name="name" value="xxx" />来传值吗?? 菜菜的问
你的树型菜单是静态的么?如果是到是可以。
但是如果在操作中会改变,并且还要和服务器端交互,就不能这么用!
只能动态和服务器进行数据传递!
在applet中通过URLConnection对象,访问服务器的servlet,可以得到OutputStream and InputStream,你可以包输入输出流包装为对象流等其他的高级流,传递数据!
<%
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的吗
你看看是不是<% %>有問題!擴的不對,
將response的OutputStream包裝成對象流!你已經這麽做了!
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)