servlet中的这种解析逻辑是不安全的:
int number1=Integer.parseInt(req.getParameter("num1"));
int number2=Integer.parseInt(req.getParameter("num2"));
Java将无法解析
int
如果参数为
null
或者不是数字。在您的特定情况下,其中一个参数是
无效的
。但通常情况下,由于这是用户输入,您需要验证参数
num1
和
num2
可以被解析,或者你需要捕获一个异常并处理它(显示有意义的错误,如“请输入正确的数据”等)。你可以检查
question
,你会明白的。
你在HTML中也有一个错误,
=
缺少,所以您的输入没有名称,在这里您已经丢失了参数,它们将无法正确地到达servlet。代码应该如下所示:
<form action="servlet1" method="post">
<label>Enter the first number:</label>
<input type="text" name="num1"/>
<label>Enter the second number:</label>
<input type="text" name="num2"/>
<button type="submit">Submit</button>
</form>