我对servlet有点陌生,我使用的是NetBeans,我有一个servlet,它接受用户的数字并打印乘法表
我有如下TableServlet.java
-->
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class TableServlet extends HttpServlet
{
@Override
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
PrintWriter out=response.getWriter();
response.setContentType("text/html");
String s=request.getParameter("t1");
int x= Integer.parseInt(s);
for(int i=1;i<=10;i++)
{
out.println(x+"x"+i+"="+i*x);
}
out.close();
}
}
我有如下newhtml.html
-->
<html>
<body>
<form action="TableServlet" method="get">
Enter any number
<input type="text" name="t1" />
<input type="submit" value="GetTable"/>
</form>
</body>
</html>
它已成功部署,但运行此项目后在浏览器上找不到任何输出。。相反,我只能在浏览器上看到这个-->
HTTP Status 500 -
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NumberFormatException: null
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.2.2 logs.
GlassFish Server Open Source Edition 3.1.2.2
原因可能是什么?
异常很可能是由以下行引发的:
int x = Integer.parseInt(s);
并且原因是CCD_ 3的值不是有效的整数。
事实上,这个信息:
java.lang.NumberFormatException: null
告诉我们s
的值是null
!这意味着正在处理的请求没有"t1"
参数。我不能马上看出是什么原因造成的,但最主要的怀疑是HTML表单
这里有几个想法:
- 尝试在浏览器的URL栏中编写请求URL
- 使用浏览器的web调试器可以查看使用表单时发送到服务器的请求URL