急救!jsp和servlet
破轮胎 2001-11-03 01:39:03 我在search.jsp页面是一个查询页面,当中import了自己定义的一个类MyObject,search.jsp页面提交到一个servlet(ServletSearch)执行查询,Servlet在查询后,查出一批MyObject,将其加入到一个Vector(searchResult)中,然后用
request.setAttribute("isSearchOK", "Y");
request.setAttribute("searchResult", searchResult);
response.addHeader("Pragma","no-cache");
response.addHeader("Cache-Control","no-cache");
response.addHeader("Expires","-1");
RequestDispatcher rd=getServletContext().getRequestDispatcher("search.jsp");
rd.forward(request,response);
forward到原来的search.jsp页面,
search.jsp页面中有如下处理:
<%
String isSearchOK = (String)request.getAttribute("isSearchOK");
if (isSearchOK != null && isSearchOK.equals("Y")) {
Vector myObjects = (Vector)(request.getAttribute("searchResult"));
if (myObjects != null) {
for (int i = 0; i < myObjects.size(); i++) {
if (myObjects.elementAt(i) instanceof MyObject) {
out.println("It's an instance of MyObject."); //位置1
} else {
out.println(myObjects.elementAt(i).toString()); //位置2
}
MyObject myObj = (MyObject)myObjects.elementAt(i); //位置3
%>
<%
...
%>
这个jsp有时候会执行到位置1,有时候又会执行到位置2,如果执行到位置2以后,执行位置3时会报一个java.lang.ClassCastException,
而事实上在servlet中查到的对象已经加到这个Vector里面去了。
这是为什么,怎么办?