在论坛里 看到了这方面的贴子 可以 用了 不对 下面是:我在 一个页面里 定义一个数组
用 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]);
%>
用 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]);
%>
楼主【wzw200】截止到2008-06-29 16:54:24的历史汇总数据(不包括此帖):
发帖数:27 发帖分:880
结贴数:23 结贴分:860
未结数:4 未结分:20
结贴率:85.19 % 结分率:97.73 %
楼主加油
String [] AN=new String[100];
%>
<%
pageContext.setAttrIbute("array",AN,PageContext.REQUEST_SCOPE);//这个试一下,将它定义为请求域的变量
response.setHeader("Refresh","1;url=./Submit.jsp");
%>
2 forward 的方式,在服务器端进行传递才行。链接是不行的!
<jsp:forward page="=./Submit.jsp"/>不确定是这个问题,貌似还有其他的问题,你把你的异常贴出来
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.
--------------------------------------------------------------------------------好的 我试下 上面说的
[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 错误
是“pageContext.setAttrIbute("array",AN,PageContext.REQUEST_SCOPE); ”这行有书写错误吧。
pageContext.setAttribute.楼主再查试一下呢,这块应该不用引入jar包。
改
out.println(AN[0]);
看看什么结果
就是 在线答题的小系统 两个 页面 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
<input type=radio name=answer value=B> B
<input type=radio name=answer value=C> C
<input type=radio name=answer value=D> D 
</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;
取里面的值 取不出来
下面是 用到了 数库 用图上传上来了
先谢谢 楼上的各位了