vector是不能这样传的,?变量名=值的方法只适用于字符串或数字等简单类型,而vector是对象。你可以试着把它放在session里,在servlet里再从session中把它取出来就可以了
解决方案 »
- 求一个 js 验证 url 格式的函数。搜到一个,不好使。
- 如何实现web页面上表格排序
- 请给我推荐一款能在WIN7下正常使用的多媒体教室软件?
- 如何在STRUTS1中实现后台和DWR共同向下拉框输入数据集
- 谁能帮帮我-----Hibernate
- 请教大家,这个错误怎么解决?谢谢
- Apache Tomcat/4.0.6 新建目录问题?
- 请大家讨论一个分段换行的问题
- Eclipse和Tomcat的问题,高分!!!
- (各新,老用户必看)本人今天检查了web论坛所有可以显示的"已解决问题"中的贴子,发现很多倒分的贴子。。。及web板块的制度
- 请问一个关于checkbox显示的问题????
- 问一个关于import类的问题
Vector变量太大了
然后在servlet中用Vector vct = (Vector) request.getAttribute("vct")
这种做法相当于是调用request.setParameter,只能传递字符串类型的数据
想传Vector等类数据的话,可以调用request.setAttribute,或者放到session里用session.setAttribute
然后用相应的getAttribute接收
<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>一开始我是这么做的但传不过去呀
谁有原码贴上来参考一下
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();
}
}