输入一个数,用servlet求它的平方根,如果输入一个两位数,程序运行正常;如果输入一位整数,程序出错:empty string.输入一位整数时,需在数前加一个空格才能使程序正确运行.请高手指点迷津!!!代码如下inputNum.jsp:
<%@page contentType="text/html;charset=GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
 <HEAD>
  <TITLE> sqrt </TITLE>
  
 </HEAD> <BODY>
   输入一个数,用servlet求这个数的平方根:
   <form method="post" action="sqrt/">
<input type="text" name="num">
<input type="submit" value="提交">
   </form>
 </BODY>
</HTML>sqrt.java:package org.mhn.test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class sqrt extends HttpServlet{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void service(HttpServletRequest req,HttpServletResponse rsp) throws IOException
{
PrintWriter out=rsp.getWriter();
rsp.setContentType("text/html;charset=GB2312");
out.println("<html><body>");
String number=req.getParameter("num");
double n=0;
try
{
n=Double.parseDouble(number);
out.println("<br>"+ Math.sqrt(n));
}
catch (NumberFormatException e)
{
out.print("<h1>"+ e.toString() +"</h1>");
}
out.println("</html></body>");
}
}配置文件: 
  <servlet>
        <servlet-name>sqrt</servlet-name>
        <servlet-class>org.mhn.test.sqrt</servlet-class>
  </servlet>  <servlet-mapping>
        <servlet-name>sqrt</servlet-name>
        <url-pattern>/sqrt/*</url-pattern>
  </servlet-mapping>

解决方案 »

  1.   

    没有问题!我帮你测试过的。你重启web容器试下。只有当你没有输入任何值的时候才报出“empty String”的错误,其他情况下都是可以正常运行的!
      

  2.   

    out.println("</html></body>");这一句结束反了吧
    应该是这样的吧out.println("</body></html>");
      

  3.   

    没问题啊!清理一下工程,tamcat,关闭浏览器重试下看!
      

  4.   

    楼主把tomcat清空一下,找到work那个文件夹,删除掉里面所有的东西,重新部署启动试试。
      

  5.   

    程序确实没有问题。呵呵。把你的工程clean 一下。