📄 hqservlet.java
字号:
package wyf;
import dojox.cometd.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
public class HQServlet extends HttpServlet
{
Bayeux b;
Channel c;
double[][] gpz=new double[][]
{
{13.44,1.1},
{77.88,1.2},
{23.5,3.4},
{56.4,-3.5},
{34.4,3.5},
{54.4,4.5}
};
@Override
public void init()
{
//初始化服务器推送信道
b = (Bayeux)getServletContext().getAttribute(Bayeux.DOJOX_COMETD_BAYEUX);
c = b.getChannel("/HQ",true);
//打开一个线程,每隔500ms随机生成股票行情
(
new Thread()
{
@Override
public void run()
{
while(true)
{
//随机生成当前涨跌的股票编号
double d1=Math.random();
int id=(int)Math.floor(d1*gpz.length);
//随机生成涨跌百分比
double d2=Math.random()*2-1;
String bfbStr=((d2>=0)?"+":"")+(Math.round(d2*1000)/100.0);
gpz[id][1]=d2*10.0;
//修改股票值
gpz[id][0]=gpz[id][0]*(1+d2/10);
System.out.println("id="+id+" gpz="+gpz[id][0]+" zd="+bfbStr);
//发送股票实时行情
Map<String,Object> message = new HashMap<String,Object>();
message.put("hqStr", id+"#"+bfbStr+"#"+(Math.round(gpz[id][0]*100)/100.0));
c.publish(
b.newClient("server_user"),//发送的客户
message, //消息
"new_server_message" //消息id
);
HQServlet.this.getServletContext().setAttribute("gpz",gpz);
//休息500ms
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
).start();
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html");
res.setCharacterEncoding("GBK");
PrintWriter out=res.getWriter();
out.println("<a href=\"HQ.jsp\">查看股票行情</a>");
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException
{
doGet(req,res);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -