<%@ page contentType="text/html;charset=gb2312" %>
<html>
<h1>我的第一个JSP</h1><hr>
<head>
<script language="javascript">
<!--
function checkNum(){
if(form.num1.value==""){
window.alert("num1不能为空");
return false;
}
if(form.num2.value==""){
window.alert("num2不能为空");
return false;
}
if(Math.round(form.num1.value)!=form.num1.value){
window.alert("num1无效");
return false;
}
if(Math.round(form.num2.value)!=form.num2.value){
window.alert("num2无效");
return false;
}
if(form.num2.value==0&&form.flag.value=="/"){
window.alert("can不能为0");
return false;
}
}
-->
</script>
</head>
<body>
<%
String s_num1=request.getParameter("num1");
String s_num2=request.getParameter("num2");
String flag=request.getParameter("flag");
int num1=0;
int num2=0;
int result=0;
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
if(flag.equals("+")){
result=num1+num2;
}
else if(flag.equals("-")){
result=num1-num2;
}
else if(flag.equals("*")){
result=num1*num2;
}
else{
result=num1/num2;
}
%>
<form name="form" action="Result.jsp">
请输入第一个数:<input type="text" name="num1"><br>
<select name="flag">
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
</select><br>
请输入第二个数:<input type="text" name="num2"><br>
<input type="submit" value="计算" onClick="return checkNum();" >
</form><br>
<hr>
结果是:<%= result %>
</body>
</html>
大家帮我看看这个JSP哪里错了
答案:4 悬赏:20 手机版
解决时间 2021-05-01 10:36
- 提问者网友:心牵心
- 2021-04-30 10:35
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-04-30 11:28
你直接进入这个页面
String s_num1=request.getParameter("num1");
String s_num2=request.getParameter("num2");
String flag=request.getParameter("flag");
这些都是空的
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
这里就会报错了。。所以先判断一下
还有就是
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
最好都加上引号哈。
我给你改了下。。已经能正常运行了。。
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<h1>
我的第一个JSP
</h1>
<hr>
<head>
<script language="javascript">
<!--
function checkNum(){
if(form.num1.value==""){
window.alert("num1不能为空");
return false;
}
if(form.num2.value==""){
window.alert("num2不能为空");
return false;
}
if(Math.round(form.num1.value)!=form.num1.value){
window.alert("num1无效");
return false;
}
if(Math.round(form.num2.value)!=form.num2.value){
window.alert("num2无效");
return false;
}
if(form.num2.value==0&&form.flag.value=="/"){
window.alert("can不能为0");
return false;
}
}
-->
</script>
</head>
<body>
<%
String s_num1 = request.getParameter("num1");
String s_num2 = request.getParameter("num2");
String flag = request.getParameter("flag");
int num1 = 0;
int num2 = 0;
int result = 0;
if(s_num1 != null && s_num2 != null && flag != null) {
num1 = Integer.parseInt(s_num1);
num2 = Integer.parseInt(s_num2);
if (flag.equals("+")) {
result = num1 + num2;
} else if (flag.equals("-")) {
result = num1 - num2;
} else if (flag.equals("*")) {
result = num1 * num2;
} else {
result = num1 / num2;
}
}
%>
<form name="form" action="Result.jsp">
请输入第一个数:
<input type="text" name="num1">
<br>
<select name="flag">
<option value="+">
+
</option>
<option value="-">
-
</option>
<option value="*">
*
</option>
<option value="/">
/
</option>
</select>
<br>
请输入第二个数:
<input type="text" name="num2">
<br>
<input type="submit" value="计算" onClick="return checkNum();">
</form>
<br>
<hr>
结果是:
<%=result%>
</body>
</html>
String s_num1=request.getParameter("num1");
String s_num2=request.getParameter("num2");
String flag=request.getParameter("flag");
这些都是空的
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
这里就会报错了。。所以先判断一下
还有就是
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
最好都加上引号哈。
我给你改了下。。已经能正常运行了。。
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<h1>
我的第一个JSP
</h1>
<hr>
<head>
<script language="javascript">
<!--
function checkNum(){
if(form.num1.value==""){
window.alert("num1不能为空");
return false;
}
if(form.num2.value==""){
window.alert("num2不能为空");
return false;
}
if(Math.round(form.num1.value)!=form.num1.value){
window.alert("num1无效");
return false;
}
if(Math.round(form.num2.value)!=form.num2.value){
window.alert("num2无效");
return false;
}
if(form.num2.value==0&&form.flag.value=="/"){
window.alert("can不能为0");
return false;
}
}
-->
</script>
</head>
<body>
<%
String s_num1 = request.getParameter("num1");
String s_num2 = request.getParameter("num2");
String flag = request.getParameter("flag");
int num1 = 0;
int num2 = 0;
int result = 0;
if(s_num1 != null && s_num2 != null && flag != null) {
num1 = Integer.parseInt(s_num1);
num2 = Integer.parseInt(s_num2);
if (flag.equals("+")) {
result = num1 + num2;
} else if (flag.equals("-")) {
result = num1 - num2;
} else if (flag.equals("*")) {
result = num1 * num2;
} else {
result = num1 / num2;
}
}
%>
<form name="form" action="Result.jsp">
请输入第一个数:
<input type="text" name="num1">
<br>
<select name="flag">
<option value="+">
+
</option>
<option value="-">
-
</option>
<option value="*">
*
</option>
<option value="/">
/
</option>
</select>
<br>
请输入第二个数:
<input type="text" name="num2">
<br>
<input type="submit" value="计算" onClick="return checkNum();">
</form>
<br>
<hr>
结果是:
<%=result%>
</body>
</html>
全部回答
- 1楼网友:由着我着迷
- 2021-04-30 13:40
1.
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
if(flag.equals("+")){
result=num1+num2;
}
else if(flag.equals("-")){
result=num1-num2;
}
else if(flag.equals("*")){
result=num1*num2;
}
else{
result=num1/num2;
}
修改为:
if(s_num1!=null&&s_num2!=null&&flag!=null)
{
num1=Integer.parseInt(s_num1);
...
result=num1/num2;
}
}
2.
<form name="form" action="Result.jsp">
修改为:
<form method="GET" name="form" action=".">
3.
如果想输入的数不会被刷掉,则:
请输入第一个数:<input type="text" name="num1">
修改为:<input type="text" name="num1" value="<%=num1%>"/>
第二个数同样修改。
4.
而对于选择的符号也不想被刷掉的话,<option value=+>+</option>
修改为:<option value=+ selected="<%=(flag==null?false:flag.equals("+"))%>">+</option>
其它作相同修改。
- 2楼网友:蕴藏春秋
- 2021-04-30 12:49
因为初始化的时候
String s_num1=request.getParameter("num1");
String s_num2=request.getParameter("num2");
这两个参数都为空,所以需要在Integer.parseInt转换成整型的时候出错了,null不能转换成整型
只要在初始化的时候判断如果s_num1和s_num2为空就不执行下面的操作就可以了
- 3楼网友:夜余生
- 2021-04-30 12:03
缺少method=“post”
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯