一个令人困惑的servlet简单例子
输入一个数,用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>