麻烦帮我看一下代码的问题,我认为是以下两点错误,但是我不知道该怎么改进:
1.点击提交按钮后,页面刷新再次运行程序导致重新生成随机数,使得答案报错
2.文本框不输入数字时,点击提交或刷新会报错(因为空不能转换为整数),但是我明明限制了条件“if(A1!=null)”为什么还会运行条件里面的程序?
题目要求——点击提交可以判断对错/JAVAWEB
<%@page contentType="text/html" pageEncoding="UTF-8"%>
html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Pagetitle>
head>
<body bgcolor="#00FFFF">
<%! int random[]=new int [8];
int a[]=new int [4];
%>
<%
for(int i=0;i<8;i++){
random[i]=(int)(Math.random()*10);
}
%>
<form action="" method="post">
<%= random[0] %> + <%= random[1] %> =
<input type="text" name="answer_1"><br>
<%= random[2] %> + <%= random[3] %> =
<input type="text" name="answer_2"><br>
<%= random[4] %> + <%= random[5] %> =
<input type="text" name="answer_3"><br>
<%= random[6] %> + <%= random[7] %> =
<input type="text" name="answer_4"><br>
<input type="submit" name="submit" value="提交"><br><br>
<button onclick="">刷新button>
form>
<%
String A1=request.getParameter("answer_1");
String A2=request.getParameter("answer_2");
String A3=request.getParameter("answer_3");
String A4=request.getParameter("answer_4");
if(A1!=null){
a[0]=Integer.parseInt (A1);
a[1]=Integer.parseInt (A2);
a[2]=Integer.parseInt (A3);
a[3]=Integer.parseInt (A4);
for(int i=0;i<4;i++){
if(a[i]==random[i*2]+random[i*2+1]){
out.print("对");
}
else{
out.print("错");
}
}
}
%>
body>
html>
有可能获取到的值是空字符串,所以你还得判断下不为空字符串。!"".equal(A1)
第一个问题,如果你不想让它刷新,<input type="submit" name="submit" value="提交">
,这里不要用submit,用了的话一点页面就会刷新。印象中type改成button就行。