大家帮我看看这个程序为什么不行

maokki 2011-03-17 04:12:19
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;

public class vote extends HttpServlet implements Runnable {
long candidate1=0;
long candidate2=0;
long candidate3=0;
boolean stopflag=false;
Thread t;
public void init(){
t=new Thread(new vote());
t.start();


}
public void run() {
while(true){
candidate1=100;
candidate2=(long) (candidate2+ Math.random()*10);
candidate3=(long) (candidate3+ Math.random()*10);
System.out.println("c1:"+candidate1);

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}



}


public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html");
response.setHeader("refresh","5");
PrintWriter out =response.getWriter();
System.out.println(candidate1);
out.println(
"<html>"+
"<head><title> show vote rate! </title></head>"+
"<body><center>"+
"<h1> Vote</h1>"+
new Date()+"<br>"+
"candidate1:"+candidate1+"<br>"+
"candidate2:"+candidate2+"<br>"+
"candidate3:"+candidate3+"<br>"+
"</center></body></html>"

);
}


}

就是线程里面产生的数在doGet里面读不到
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
原来如此啊原来结贴才给分啊!!!
perryzheng2000 2011-03-18
  • 打赏
  • 举报
回复
问题已说清,楼主快结贴,给分。。
perryzheng2000 2011-03-18
  • 打赏
  • 举报
回复
t=new Thread(new vote());
t.start();
这里new了一个新的vote对象, 你当前的doGet()中用的还是本voite的值。。。。。肯定一直都是0了
还有你这种写法,long candidate1=0;
long candidate2=0;
long candidate3=0; 这3个变量在多线程下是非线程安全的
bluhar 2011-03-17
  • 打赏
  • 举报
回复
看到无格式代码就头大..
goingdown_ 2011-03-17
  • 打赏
  • 举报
回复
是啊,表单get提交用doGet(),post提交用doPost()
yelwen000 2011-03-17
  • 打赏
  • 举报
回复
你是get 提交的吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧