日期:2014-05-16 浏览次数:20625 次
/** * Created by IntelliJ IDEA. * User: 赵光鹏 * Date: 2011-11-24 * Time: 10:51:15 * To change this template use File | Settings | File Templates. */ public class Stock { private double yesterday; private double today ; private double now; private String name; private String id; public Stock( double yesterday, double today, String name, String id){ this.yesterday = yesterday; this.today = today; this.name = name; this.id = id; this.now = today; } public String toString(){ return this.name+":"+this.now; } } Servlet: GetStocksInfo.java import ... /** * Created by IntelliJ IDEA. * User: 赵光鹏 * Date: 2011-11-24 * Time: 10:52:01 * To change this template use File | Settings | File Templates. */ public class GetStocksInfo extends HttpServlet { private HashMap<String,Stock> stocks; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet( request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //返回两只股票的价格信息 //1.计算随机数 double sz = Math.random() + 20; double pf = Math.random() + 0.5; //通过随机数是奇数还是偶数来判断股票上涨还是下跌 boolean flagsz = ((int)(Math.random() * 10))%2 ==0; boolean flagpf = ((int)(Math.random() * 10))%2 ==0; //2.将随机数和当前价格进行加减的操作 //2.1首先获取到先前实例化好的两个数据 Stock szzs = stocks.get("300001"); Stock pfyh = stocks.get("000001"); double temp; if(flagsz){ temp = szzs.getNow() + sz; } else{ temp = szzs.getNow() - sz; } //对新的书进行小数位数进行处理,只保留小数点后后两位 temp = (int)(temp*100)/100.0; szzs.setNow(temp); if(flagpf){ temp = pfyh.getNow() + pf; } else{ temp = pfyh.getNow() - pf; } temp = (int)(temp*100)/100.0; pfyh.setNow(temp); //采用json数据格式返回股票的信息 StringBuilder builder = new StringBuilder(); //采用数组的形式 在此处略过 //采用对象的方式回传两个股票对象 //前台效果:{ // 300001:{name:"上证指数",yes:3000.0",tod:2990.0,now:3010.02}, // 000001:{name:"浦发银行",yes:23.22",tod:23.55,now:24.4} // } builder.append("({") .append("\"") .append(szzs.getId()).append("\":{name:\"").append(szzs.getName()) .append("\",yes:").append(szzs.getYesterday()).append(",tod:").append(szzs.getToday()) .append(",now:").append(szzs.getNow()) .append("},") .append("\"") .append(pfyh.getId()).append("\":{name:\"").append(pfyh.getName()) .append("\",yes:").append(pfyh.getYesterday()).append(",tod:").append(pfyh.getToday()) .append(",now:").append(pfyh.getNow()) .append("}})"); response.setContentType("text/html;charset=gb2312"); PrintWriter out = response.getWriter(); out.print(builder); } //在服务器启动时(配置文件中配置好),执行该方法,虚拟出两条股票信息 @Override public void init(ServletConfig servletConfig) throws ServletException { stocks = new HashMap<String, Stock>(); Stock szzs = new Stock(3000.0, 2990.0, "上证指数", "300001"); Stock pfyh = new Stock(23.22, 23.55, "浦发银行", "000001"); //将两支股票保存在Stock的Map中 stocks.put(szzs.getId(),szzs); stocks.put(pfyh.getId(),pfyh); System.out.println(stocks); } }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text