vector是不能这样传的,?变量名=值的方法只适用于字符串或数字等简单类型,而vector是对象。你可以试着把它放在session里,在servlet里再从session中把它取出来就可以了

解决方案 »

  1.   

    楼上的可行。。不过你也可以把vector转换成字符串阿
      

  2.   

    如果转换成字符串怎么处理?
    Vector变量太大了
      

  3.   

    可以把vector转换成特殊符号分割的字符串,servlet接受后再转换回来
      

  4.   

    在jsp先request.setAttribute("vct", vct);
    然后在servlet中用Vector vct = (Vector) request.getAttribute("vct")
      

  5.   

    不能直接在url后跟?的形式传
    这种做法相当于是调用request.setParameter,只能传递字符串类型的数据
    想传Vector等类数据的话,可以调用request.setAttribute,或者放到session里用session.setAttribute
    然后用相应的getAttribute接收
      

  6.   

    <%@ page contentType="text/html; charset=GBK" %>
    <html>
    <head>
    <title>this is a chart demo
    </title>
    </head>
    <body bgcolor="#ffffff">
    <%
    Vector vct = (Vector) request.getAttribute("vct");
    vct = (vct==null ? new Vector() : vct);
    String graphURL = request.getContextPath() + "/servlet//chartdemoservlet";
    request.setAttribute("vct",vct);
    %>
    <img  src="<%=graphURL%>" />
    </body>
    </html>一开始我是这么做的但传不过去呀
    谁有原码贴上来参考一下
      

  7.   

    可以在session中传,但如果数据量太大的话,还是通过流传比较好以下是通过流在servlet中传对象的一个最简单的例子public class testreturn extends HttpServlet {
        static final private String CONTENT_TYPE = "application/octet-stream";
        //Initialize global variables
        public void init() throws ServletException {
        }
        //Process the HTTP Get request
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    DataObj testObj = new DataObj();
    DataObj inObj = new DataObj();
    testObj.setName("smith");
    testObj.setFlag("false");
    Hashtable hs = new Hashtable();
    hs.put("1","1111");
    hs.put("2","2222");

    testObj.setValue(hs); ObjectInputStream ois = new ObjectInputStream(request.getInputStream()); try
    {
        inObj = (DataObj)ois.readObject();
        String name1 = inObj.getName();
        Hashtable hs = inObj.getValue();
        String id = "";
        String value = "";
        if(hs != null)
        {
     java.util.Enumeration en = hse.keys();
     while(en.hasMoreElements())
        {
    id = en.nextElement().toString();
    value = hs.get(id).toString();
    System.out.println("id + value = " + id + "11" + value);
        }
        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    //ois.close();
    ObjectOutputStream oos = new ObjectOutputStream(response.getOutputStream());
    oos.writeObject(testObj);
    oos.close();
        }}在这个例子中,外部调用会给该servlet船一个对象,在servlet中对该对象作一定处理,处理完后,在返回一个对象////////////////////////////
    下面是调用该serlvet的例子public static void main(String[] args)
        {
    testRusult testRusult1 = new testRusult(); DataObj passdata = new DataObj();
    passdata.setFlag("test give a object ");
    passdata.setName("nama is give a object"); Hashtable passValue = new Hashtable(1);
    passValue.put("aaaaaaaaaa","aaaaaaaaaa");
    passdata.setValue(passValue);
    try
    {
        URL url = new URL("http://localhost:8080/testLanguage/testreturn");
        URLConnection urlcon = url.openConnection();
        urlcon.setDoOutput(true);
        //禁用cache
        urlcon.setUseCaches(false);      urlcon.connect();
        //取出输出流
        OutputStream outs=urlcon.getOutputStream();
        //将该输出流转换为对象输出流
        ObjectOutputStream objout = new ObjectOutputStream(outs);
        //将要传输的对象写入该对象输出流中
        objout.writeObject(passdata);     ObjectInputStream ois=new ObjectInputStream(urlcon.getInputStream());
        DataObj d = (DataObj)ois.readObject();
        ois.close();
        String name = d.getName();
        System.out.println("name is " + name);     String flag = "";
        flag = d.getFlag();
        System.out.println("flag is " + flag);     Hashtable hs = d.getValue();
        java.util.Enumeration en = hs.keys();
        String id = "";
        String value = "";     while(en.hasMoreElements())
        {
    id = en.nextElement().toString();
    value = hs.get(id).toString();
    System.out.println("id + value = " + id + "11" + value);     }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
        }