我通过jsp的请求传递到servlet中后,再通过bean的序列化把对象传到applet中,问:
如何运行这个applet?我是把它嵌套在jsp中的
其中:
servlet代码:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException,NotSerializableException {

graphdata gd;
ObjectOutputStream oos;
ArrayList  time = new ArrayList();
ArrayList  cpu = new ArrayList();
String startime = new String();
String jgtime = new String();

String projectname = request.getParameter("projectname");
String testname = request.getParameter("testname");
ProjectDAO pdao = new ProjectDAO(request, response);
TestDAO tdao = new TestDAO(request, response);
DatamonitorDAO ddao = new DatamonitorDAO(request, response);
//如果项目名或测试名有一个为空,则返回请求页面
if(projectname.equals("")|| testname.equals("")){   
response.sendRedirect("./tabledisplay.do?flag=1");
}else{
List plist = pdao.findByName(projectname);
Project pro = (Project)plist.get(0);
Integer pid = pro.getId();
List tlist = tdao.findByProidAndName(pid, testname);
Test test = (Test)tlist.get(0);
Integer tid = test.getId();
//从datamonitor表中获取相应的test数据,传递到applet中去
List dlist = ddao.findByProperty("testid", tid);
for(int i = 0; i < dlist.size(); i++){
Datamonitor dm = (Datamonitor)dlist.get(i);
time.add(dm.getTimes());  //把测试次数保存到list中
cpu.add(dm.getCpu());     //把cpu的数值保存到list中
}
if(test.getStarttime() != null)startime = test.getStarttime().toString();
if(test.getOncetime() != null)jgtime = test.getOncetime().toString();
//实例化,保存到bean中
gd = new graphdata(time,cpu,startime,jgtime);
ObjectOutputStream oos1 = new ObjectOutputStream(response.getOutputStream());
oos1.writeObject(gd);
oos1.flush();
oos1.close();

} }applet代码:
package com.jadecenter.graph;import java.applet.*;
import java.awt.*;
import java.net.*;
import java.util.ArrayList;
import java.io.*;
import javax.swing.*;
import com.jadecenter.hibernateBean.graphdata;//在applet中从servlet取出数据,并且生成折线图
public class CpuLineApplet extends JApplet{

URLConnection con = null;
String servletUrl = "com/jadecenter/servlet/dgraphServlet";
graphdata gd;

public void init(){
//连接servlet
try{
String serverUrl = getParameter("serverUrl");
//URL url = new URL(serverUrl+servletUrl);
URL url = new URL("http://localhost:8080/JadeCenter/dgraphServlet");
con = url.openConnection();

con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
con.setDefaultUseCaches(false);
}catch(Exception e){
e.printStackTrace();
}
    }    public void start(){
     //从servlet中取数据
     try{
     InputStream is = con.getInputStream();
     ObjectInputStream ois = new ObjectInputStream(is);
     //从servlet中读取取数据
     gd = (graphdata)ois.readObject();
     ois.close();
    
     }catch(Exception ee){
     ee.printStackTrace();
     }
    
     DynamicDataDemo1 dd =new DynamicDataDemo1(gd.xlist,gd.ylist,gd.startime,gd.jgtime);
    add(dd);
    }
 
}

解决方案 »

  1.   

    能到达servlet,而到  public void start(){
            //从servlet中取数据
            try{
                InputStream is = con.getInputStream();
                ObjectInputStream ois = new ObjectInputStream(is);
                //从servlet中读取取数据
                gd = (graphdata)ois.readObject();
                ois.close();
                
            }catch(Exception ee){
                ee.printStackTrace();
            }
            
            DynamicDataDemo1 dd =new DynamicDataDemo1(gd.xlist,gd.ylist,gd.startime,gd.jgtime);
            add(dd);
        }
         
    }
    这里DynamicDataDemo1 dd =new DynamicDataDemo1(gd.xlist,gd.ylist,gd.startime,gd.jgtime);
    就不行了,改成DynamicDataDemo1 dd =new DynamicDataDemo1(null,null,null,null);也可以,难道是接受数据问题!请高手解答下
      

  2.   

    没报错哦,就是不出图。估计是数据没传好。后来就直接用jsp传给applet了,没用servlet,这样就都把数据处理也放applet中了,哎