jsp和servlet之间传递vector的问题

asper 2003-06-11 12:57:40
为什么从servlet中返回的vector是空的?

服务器是weblogic 7.0

test.servlet源程序:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class test extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
Vector v=new Vector();
v.add("aa");
v.add("bb");
request.setAttribute("abc",v);
response.sendRedirect("http://cg:7001/clubsite/index.jsp");
}
}
index.jsp页面
<%@page import=java.util.*%>
asdfqasdf
<%
Vector a=(Vector)request.getAttribute("abc");
if(a==null){
out.println("<p>a is null");
}
%>
结果是页面上显示有:a is null

...全文
61 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
asper 2003-06-11
  • 打赏
  • 举报
回复
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class test extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
Vector v=new Vector();
v.add("aa");
v.add("bb");
request.setAttribute("abc",v);
this.getServletConfig().getServletContext().getRequestDispatcher("http://localhost:7001/clubsite/clubsite/publish.jsp").forward(request,response);
}

}
biggie 2003-06-11
  • 打赏
  • 举报
回复
刚实验,决对没错
---------
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class test extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
Vector v=new Vector();
v.add("aa");
v.add("bb");
request.setAttribute("abc",v);
this.getServletConfig().getServletContext().getRequestDispatcher("/test.jsp").forward(request,response);
//response.sendRedirect("/sohosystem/test.jsp");
}
}
---------------
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"
%>
<%

Vector a=(Vector)request.getAttribute("abc");
if(request.getAttribute("abc")!=null){
out.println("OK");
}
if(a==null){
out.println("<p>a is null");
}
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
</body>
</html>
biggie 2003-06-11
  • 打赏
  • 举报
回复
不可能 ,我测试了,你把你的错误代码贴出来
asper 2003-06-11
  • 打赏
  • 举报
回复
用你的也是一样的错误
biggie 2003-06-11
  • 打赏
  • 举报
回复
我和他的方法不一样的
---------------
我要100分给你解决方案,
把你的response.sendRedirect("http://cg:7001/clubsite/index.jsp");

改为:this.getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request,response)
biggie 2003-06-11
  • 打赏
  • 举报
回复
老兄用我的不就行了,
保证你没有问题
asper 2003-06-11
  • 打赏
  • 举报
回复

用了zhangbin_zhang(cat) 的程序
页面返回:
Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.

梦幻圣者 2003-06-11
  • 打赏
  • 举报
回复
在jsp或servlet把向量存放到session中或context中,然后在需要的地方取出来就可以了。
biggie 2003-06-11
  • 打赏
  • 举报
回复
我还以为没人回呢,没想到发完贴一看,好多人回复,呵呵,看得100分的一个简单问题,还挺难抢的
biggie 2003-06-11
  • 打赏
  • 举报
回复
没看到你贴出来,不好意思。我打开页,一直没刷新就去吃饭了,呵呵
zuoyangguang 2003-06-11
  • 打赏
  • 举报
回复
楼上的,别人不是已经做出来了么,你干嘛要一百分阿
biggie 2003-06-11
  • 打赏
  • 举报
回复
我要100分给你解决方案,
把你的response.sendRedirect("http://cg:7001/clubsite/index.jsp");

改为:this.getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request,response)

等你结果
zeeler 2003-06-11
  • 打赏
  • 举报
回复
你的request.setAttribute("abc",v)和Vector a=(Vector)request.getAttribute("abc")的request不是同一个
liusoft 2003-06-11
  • 打赏
  • 举报
回复
sendRedirect方法是服务器端返回一个代码告诉浏览器将地址重新定向到另外一个页面,当然没有办法通过setAttribute来传递参数。

另外Netscape是不支持java中的sendRedirect方法的
zhangbin_zhang 2003-06-11
  • 打赏
  • 举报
回复
test.servlet源程序:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class test extends HttpServlet {
protected ServletConfig servletConfig;
public void init(ServletConfig config) {
this.servletConfig = config;
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
Vector v=new Vector();
v.add("aa");
v.add("bb");
request.setAttribute("abc",v);
servletConfig.getServletContext().getRequestDispatcher("http://cg:7001/clubsite/index.jsp").forward(request,response);
}
}
TheTens 2003-06-11
  • 打赏
  • 举报
回复
对,试试这个。
RequestDispatcher dispatcher = null;
request.setAttribute("abc",v);
dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);
TheTens 2003-06-11
  • 打赏
  • 举报
回复
用v.addElment()方法再试试。
zhangbin_zhang 2003-06-11
  • 打赏
  • 举报
回复
request.setAttribute("abc",v);

response.sendRedirect("http://cg:7001/clubsite/index.jsp");
不能这样传参数,传不过去。
asper 2003-06-11
  • 打赏
  • 举报
回复
在线等待

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧