源代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%
int testno=0;
int romad = 0;
int num= 0;
int t = 0;
int j = 0;
String title = "";
String keya = "";
String keyb = "";
String keyc = "";
String keyd = "";
String daan = "";
%>
<form id="form1" name="form1" method="post" action="processing.jsp">
<%
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
PreparedStatement p2 = con.prepareStatement("select count(testno) from ceshiti");
rs2=p2.executeQuery();
rs2.next();
t=rs2.getInt(1);
rs2.close();
p2.close();
rs=sql.executeQuery("select testno,title,keya,keyb,keyc,keyd,daan from ceshiti");
Random rand = new Random();
int[] n = new int[10];
for(int i=0;i<10;i++)
{
j = rand.nextInt(t-1)+1;
int x=0;
while(x<i){
if((j == n[x])||(n[x]==0)){
j = rand.nextInt(t);
x = 0;
}
else x++;
}
n[i] = j;
}
for(int i=1;i<11;i++)
{
rs.absolute(n[i]);
%>
<table width="75%" height="45" border="0" align="center" cellpadding="0" cellspacing="1" class="table">
<tr>
<td bgcolor="#D5FFAA"><div align="left"><%out.print(i);%>.<%out.print(rs.getString("title"));%>答案选择:
<select name="select<%=i%>" id="select<%=i%>">
<option value="A" selected>A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
</div></td>
</tr>
<tr>
<td><div align="left">
A.<%out.print(rs.getString("keya"));%></div></td>
</tr>
<tr>
<td><div align="left">
B.<%out.print(rs.getString("keyb"));%></div></td>
</tr>
<tr>
<td><div align="left">
C.<%out.print(rs.getString("keyc"));%></div></td>
</tr>
<tr>
<td><div align="left">
D.<%out.print(rs.getString("keyd"));%>
<input name="yesDaan<%=i%>" type="hidden" id="yesDaan<%=i%>" value="<%=rs.getString("daan").trim()%>">
</div></td>
</tr>
<tr>
<td><hr align="center" width="80%" size="1" color="#CC9900"></td>
</tr>
</table>
<p>
<%
}
%>
</p>
<label></label>
<input type="submit" name="Submit" value="提交" align="absmiddle" />
</form>
<p>但运行很慢,认为是循环的原因,所以把中间代码改成
Random rand = new Random();
int[] n = new int[10];
j = rand.nextInt(t-10);
for(int i=0;i<10;i++)
{
n[i] = ++j;
}
但还是很慢,查看任务管理器,显示tomcat的cpu占用为98%,而且只能显示前5条记录,有人能解释下到底是什么原因吗?
<%@ page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%
int testno=0;
int romad = 0;
int num= 0;
int t = 0;
int j = 0;
String title = "";
String keya = "";
String keyb = "";
String keyc = "";
String keyd = "";
String daan = "";
%>
<form id="form1" name="form1" method="post" action="processing.jsp">
<%
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
PreparedStatement p2 = con.prepareStatement("select count(testno) from ceshiti");
rs2=p2.executeQuery();
rs2.next();
t=rs2.getInt(1);
rs2.close();
p2.close();
rs=sql.executeQuery("select testno,title,keya,keyb,keyc,keyd,daan from ceshiti");
Random rand = new Random();
int[] n = new int[10];
for(int i=0;i<10;i++)
{
j = rand.nextInt(t-1)+1;
int x=0;
while(x<i){
if((j == n[x])||(n[x]==0)){
j = rand.nextInt(t);
x = 0;
}
else x++;
}
n[i] = j;
}
for(int i=1;i<11;i++)
{
rs.absolute(n[i]);
%>
<table width="75%" height="45" border="0" align="center" cellpadding="0" cellspacing="1" class="table">
<tr>
<td bgcolor="#D5FFAA"><div align="left"><%out.print(i);%>.<%out.print(rs.getString("title"));%>答案选择:
<select name="select<%=i%>" id="select<%=i%>">
<option value="A" selected>A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
</div></td>
</tr>
<tr>
<td><div align="left">
A.<%out.print(rs.getString("keya"));%></div></td>
</tr>
<tr>
<td><div align="left">
B.<%out.print(rs.getString("keyb"));%></div></td>
</tr>
<tr>
<td><div align="left">
C.<%out.print(rs.getString("keyc"));%></div></td>
</tr>
<tr>
<td><div align="left">
D.<%out.print(rs.getString("keyd"));%>
<input name="yesDaan<%=i%>" type="hidden" id="yesDaan<%=i%>" value="<%=rs.getString("daan").trim()%>">
</div></td>
</tr>
<tr>
<td><hr align="center" width="80%" size="1" color="#CC9900"></td>
</tr>
</table>
<p>
<%
}
%>
</p>
<label></label>
<input type="submit" name="Submit" value="提交" align="absmiddle" />
</form>
<p>但运行很慢,认为是循环的原因,所以把中间代码改成
Random rand = new Random();
int[] n = new int[10];
j = rand.nextInt(t-10);
for(int i=0;i<10;i++)
{
n[i] = ++j;
}
但还是很慢,查看任务管理器,显示tomcat的cpu占用为98%,而且只能显示前5条记录,有人能解释下到底是什么原因吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货