我通过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);
}
}
如何运行这个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);
}
}
//从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);也可以,难道是接受数据问题!请高手解答下