我对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
如下 - &gt;
<html>
<body>
<form action="TableServlet" method="get">
Enter any number
<input type="text" name="t1" />
<input type="submit" value="GetTable"/>
</form>
</body>
</html>
它已成功部署,但在运行此项目后浏览器上未找到任何输出。 相反,我只能在浏览器上看到这一点 - &gt;
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
可能是什么原因?
答案 0 :(得分:3)
此行很可能抛出异常:
int x = Integer.parseInt(s);
原因是s
的值不是有效整数。
确实,这条消息:
java.lang.NumberFormatException: null
告诉我们s
的值是null
!这意味着正在处理的请求没有"t1"
参数。我无法立即看到导致这种情况的原因,但主要的嫌疑人是HTML表单。
以下是一些想法: