在论坛里 看到了这方面的贴子 可以  用了 不对 下面是:我在 一个页面里  定义一个数组   
用  request.setAttribute("array",AN);   传到另一个页面里去  为什么会错呢?1页面
<%!
    String [] AN=new String[100];
%><%
 request.setAttribute("array",AN); 
 response.setHeader("Refresh","1;url=./Submit.jsp");
%>2页面     <%
         int i;
         request.setCharacterEncoding("GB2312");   
         String[]  AN=(String[])request.getAttribute("array");
  //for(i=0;i<AN.length;i++)
          out.println(AN[1]);
    %>

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【wzw200】截止到2008-06-29 16:54:24的历史汇总数据(不包括此帖):
    发帖数:27                 发帖分:880                
    结贴数:23                 结贴分:860                
    未结数:4                  未结分:20                 
    结贴率:85.19 %            结分率:97.73 %            
    楼主加油
      

  2.   

    <%!
        String [] AN=new String[100];
    %> 
    <%
    pageContext.setAttrIbute("array",AN,PageContext.REQUEST_SCOPE);//这个试一下,将它定义为请求域的变量
    response.setHeader("Refresh","1;url=./Submit.jsp");
    %> 
      

  3.   

    request.setAttribute必须用1 include
    2 forward 的方式,在服务器端进行传递才行。链接是不行的!
      

  4.   


    <jsp:forward page="=./Submit.jsp"/>不确定是这个问题,貌似还有其他的问题,你把你的异常贴出来
      

  5.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.TestJsp.Submit_jsp._jspService(Submit_jsp.java:62)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
    --------------------------------------------------------------------------------好的 我试下 上面说的 
      

  6.   

    2 楼的这个方法  用了 用这个错 是不是 那个包没加载进来  小弟对 JAVA 类库 不太了解      [javac] C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\test\org\apache\jsp\TestJsp\Fisrt_jsp.java:110: 找不到符号
        [javac] 符号: 方法 setAttrIbute(java.lang.String,java.lang.String[],int)
        [javac] 位置: 类 javax.servlet.jsp.PageContext
        [javac] pageContext.setAttrIbute("array",AN,PageContext.REQUEST_SCOPE);
        [javac]            ^
        [javac] 1 错误
      

  7.   


    是“pageContext.setAttrIbute("array",AN,PageContext.REQUEST_SCOPE); ”这行有书写错误吧。
    pageContext.setAttribute.楼主再查试一下呢,这块应该不用引入jar包。
      

  8.   

    out.println(AN[1]); 

    out.println(AN[0]);
    看看什么结果
      

  9.   

    我晕,空指针,你AN这个数组没有初始化,传过去是个null,明白吗?给AN赋值就行了
      

  10.   

    前面的回答 都一位lz里边的数组是有东西的。我感觉 不是那个问题。应该是 用自动刷新传不过去值 需要 forword incolude
      

  11.   

    可能 我的   String [] AN=new String[100]; 数组没能赋上值  那位有空帮 忙 看下
    就是  在线答题的小系统  两个   页面 1)
    <%@page contentType="text/html"%>
    <%@page pageEncoding="GB2312"%>
    <%@page import="java.sql.*"%><html>
    <head><title>在线答题系统</title></head>
    <body><%!
        String [] AN=new String[100];
       
    %>
    <%! int num=1;%>
    <%! String Q,A,B,C,D; %><% 
       String ew=request.getParameter("ew");
       if(ew!=null)
       { 
       num=Integer.parseInt(ew);
       }
    %><%   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Connection   con=DriverManager.getConnection("jdbc:odbc:member1");   con.setAutoCommit(false);   ///////设置交易开始   Statement smt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
        Statement Insert=con.createStatement();
      
       String QID="",AID="";
       String sql1="select * from qestion";   String sql2 = "";
       ResultSet rs=smt.executeQuery(sql1);   rs.last();   int last=rs.getRow();
       String view=request.getParameter("view");   if(view!=null)
       { 
       int select=Integer.parseInt(view);
       switch(select)
       {
       case 1:
       num=1; break;
                             
       case 2:
       if(num==1)num=1;else num--;break;
       case 3:
                              //SQL
                               AN[num]=request.getParameter("answer");
       if(num==last)num=last;else num++;break;
       case 4:
       num=last; break;
       case 5:
       request.setAttribute("array",AN); 
    //pageContext.setAttrIbute("array",AN,PageContext.REQUEST_SCOPE);                           response.setHeader("Refresh","1;url=./Submit.jsp");
       default:
       }
       }   String input=request.getParameter("input");
       if(input!=null)
           num=Integer.parseInt(input);   if (num<=last)
       {
                   rs.absolute(num);
               Q=rs.getString(2);
               A=rs.getString(3);
               B=rs.getString(4);
               C=rs.getString(5);
               D=rs.getString(6);
       }
    %>
    <table width=98% align=center cellpadding=0 cellspacing=0>
    <%
      out.println("<tr><td>"+num+"."+Q+"</td></tr>");
      out.println("<tr><td>"+"------------------"+"</td></tr>");
      out.println("<tr><td>"+"A."+A+"</td></tr>");
      out.println("<tr><td>"+"B."+B+"</td></tr>");
      out.println("<tr><td>"+"C."+C+"</td></tr>");
      out.println("<tr><td>"+"D."+D+"</td></tr>");
    %>
    </table><table width=98% align=center cellpadding=0 cellspacing=0>
    <tr height=36>
         <td width=40%><hr size=1></td>
     <td align=center class=style2>答题区</td>
     <td width=40%><hr size=1></td>
    <tr height=36>
        <td align=center>
           <input type=radio name=answer value=A> A&nbsp;
           <input type=radio name=answer value=B> B&nbsp;
           <input type=radio name=answer value=C> C&nbsp;
           <input type=radio name=answer value=D> D&nbsp
        </td>
    </tr>
    <tr height=36>
      <td align=center>
       <a href="Fisrt.jsp?view=2">上一题</a>
       <a href="Fisrt.jsp?view=3">下一题</a>
       //<a href="Fisrt.jsp?view=1">复查</a>
       <a href="Fisrt.jsp?view=5">交卷</a>
       <a href="Fisrt.jsp?view=2">放弃</a>
    </tr>
    </table>
    </body>
    </html>2)<%@page contentType="text/html"%><%@page pageEncoding="GB2312"%><%@page import = "java.sql.*"%><html>
        <head><title>Submit</title></head>
        <body>
        <%   int i;
            
             request.setCharacterEncoding("GB2312");   
             String[]  AN=(String[])request.getAttribute("array");
      //for(i=0;i<AN.length;i++)
              out.println(AN[0]); // out.println(sql); //smt.execute(sql);
    //con.close(); 
       

        %>       </body>
    </html>
    点交卷   LINK 到  第2个页面  本来想更新到数库里面去 的  我先打印出来 看看里面值  好像都是NULL可能是  页面1)出错 
       case 3:
                              //SQL
                               AN[num]=request.getParameter("answer");
       if(num==last)num=last;else num++;break;
    取里面的值  取不出来  
      下面是 用到了 数库  用图上传上来了  
    先谢谢 楼上的各位了