不知道为什么我运行这个JSP的时候总出现500错误 不知道哪错了望指教~!~
我用TOMCAT5.0。在线等解~!~
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
<form method="post" action="test1.jsp">
<table width="122">
<tr>
<td width="100">
<p align="right">请输入一个数字(0~~9):</p>
</td>
<td width="50">
<input type="text" name="num" size="2"></td>
</tr>
</table>
<p align="center"><input type="submit" value="提交" name="B1">
<input type="reset" value="全部重写" name="B2"></p>
</form><%
 
String mystr=request.getParameter("num");
String thestr="0123456789";
if(thestr.indexOf(mystr)== -1)
{ out.println("your input not a number");
  out.println("<br>");
  out.println("your input is"+mystr);
}
else{out.println("your input is"+mystr+"!");}
%></body>
</html>

解决方案 »

  1.   

    String mystr=request.getParameter("num");为null,后面又用了mystr,当然要报错了
      

  2.   

    String mystr=request.getParameter("num");
    这里指示要从request的scope中接收一个名为"num"的变量;页面报的是空指针异常也就是thestr.indexOf(mystr)的问题,其原因是mystr=null
    所以你得检查到达本页时request中是不是有"num"这变量,注意变量名的拼写。
      

  3.   

    晕 先不说你错哪里 
    你的功能可以换一个方式实现,你这么做有一半是没有用的
    表单验证用javascript写 这样就减轻了后台操作的压力啊
    再说 这么写代码也清晰了
    <script language="javascript">
    function checkSubmit()
    {
    var Dates = "1234567890";
    for(i=0;i<document.form1.num.value.length;i++)
    {
    var CheckChar = document.form1.num.value.charAt(i);
    if(Dates.indexOf(CheckChar)==-1)
    {
    alert("必须是数字!");
    return false;
    }
    }
    if(document.form1.num.value==""||document.form1.num.value==null)
    {
    alert("不可以为空!!");
    return false;
    }
    }
    </script>
    把这个加进去
    然后
    <form method="post" action="test1.jsp" onSubmit="return checkSubmit()">再然后你把代码改成这样不就简单多了:
    <%
     
    String mystr=request.getParameter("num");
      out.println("your input not a number");
      out.println("<br>");
      out.println("your input is"+mystr);
    %>