谢谢rrrr,今晚我试试吧!若在测试servlet出现下面的错误,是什么原因?? Location: /servlet/seevote Internal Servlet Error:java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:373) at java.lang.Integer.parseInt(Integer.java:454) at vote.doGet(vote.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404) at org.apache.tomcat.core.Handler.service(Handler.java:286) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Thread.java:484)原码如下: import java.io.*; import java.util.*; import javax.servlet.http.*; import javax.servlet.*; public class seevote extend HttpServlet { public void doGet(HttpservletRequest request,HttpServletResponse response) throws IOException ,ServletException {String[] mstr=new string[3]; int[] total=0; String[] name={"一般","不满意","满意"}; response.setContentType("text/html"); PrintWrinter out=response.getWrite(); out.println("<html>"); out.println("<head>"); out.println("<title>谢谢您的合作</title>); out.println("</head>"); out.println("<body>); try{
1,java.lang.NumberFormatException: null 数据转化的问题,如调用parseint之类的。 2,显示中文:response.setContentType("text/html;charset=gb2312"); response is a reference to instance of HttpServletResponse,you know.
PrintWriter writer=new PrintWriter(new FileWriter("f:\tomcat\bin\vote.txt",false));
BufferedReader read=new BufferedReader(new FileReader("/vote.txt"));vote.txt放在WEB-INF/classes下
PrintWriter writer=new PrintWriter(new FileWriter("f:\tomcat\bin\vote.txt",false));这个方法我试了,不行的!错误照旧!
out.println("Invalid input!!");
}这个抛出的是什么?
out.println("Invalid input!!");
}这个抛出的是你的checked的parse错误
你直接调用servlet的url不给参数checkbutton就会有这个错
Location: /servlet/seevote
Internal Servlet Error:java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:373)
at java.lang.Integer.parseInt(Integer.java:454)
at vote.doGet(vote.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)原码如下:
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class seevote extend HttpServlet
{
public void doGet(HttpservletRequest request,HttpServletResponse response)
throws IOException ,ServletException
{String[] mstr=new string[3];
int[] total=0;
String[] name={"一般","不满意","满意"};
response.setContentType("text/html");
PrintWrinter out=response.getWrite();
out.println("<html>");
out.println("<head>");
out.println("<title>谢谢您的合作</title>);
out.println("</head>");
out.println("<body>);
try{
BufferedReader read=new BufferedReader(new FileReader("vote.txt"));
for(int i=0;i<3;i++)
{
mstr[i]=Integer.parseInt(read.readLine()+""; }
read.close();
}
catch(IOException e){}
for(int i=0;i<3;i++)
total+=Integer.parseInt(mstr[i]);
out.println("font face=\"隶书\"size=\"4\">投票统计结果:</font>");
out.println("<hr>");
for(int i=0;i<3;i++)
{num[i]=Integer.parseInt(mstr[i])*400/total;
out.println("<font face=\"隶书\"size=\"4\">+name[i]+":</font>");
out.println("<img scr=\"c:\\progress.gif\"width="+"\""+num[i]+
"\""+height=\"20\">);
out.println(<br/>);}
out.println("</body></html>");
out.close();
}
} 还有在servlet中我怎么显示不出中文来!??
数据转化的问题,如调用parseint之类的。
2,显示中文:response.setContentType("text/html;charset=gb2312");
response is a reference to instance of HttpServletResponse,you know.
BufferedReader read=new BufferedReader(new FileReader("f:\\tomcat\\bin\\vote.txt"));
PrintWriter writer=new PrintWriter(new FileWriter("f:\\tomcat\\bin\\vote.txt",false));
for(int i=0;i<3;i++)
{
mstr[i]=Integer.parseInt(read.readLine()+""; }
read.close();
}
catch(IOException e){}
for(int i=0;i<3;i++)
total+=Integer.parseInt(mstr[i]);
你不觉得这句有问题吗?
捕获Io错误后不处理还继续往下执行。
看你前面的帖子可以知道你的Servlet程序找不到vote.txt文件,所以你想跳过它继续往下做,这样的后果就是mstr数组根本没值--都是"",所以执行total+=Integer.parseInt(..);
的时候就会抛出那个整型转换错误的异常,--你说""能转换成什么整型??至于前面找不到文件的原因,我由于很久没搞过WEB应用了也不太清楚,写绝对路径应该还是不行的,因为当时的程序是在WEB路径环境下,所以可能还是认不了。最简单的一个方法测试你应该把文件放在哪里的是:写一个同一目录下的servlet程序,调用它的结果就是生成一个文件,你再查一下这个文件在你机子上的哪个目录,再把vote.txt放在那里就应该可以啦。