使用Servlet+JSON实现股票信息实时更新-创新互联

使用servlet+json实现股票信息实时更新

一、服务端代码

1、Stock.java

package bean;
public class Stock {
    private String code;
    private String name;
    private int price;
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
}

2、ActionServlet.java

package web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.Stock;
import net.sf.json.JSONArray;

public class ActionServlet extends HttpServlet{
    public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        System.out.println("service()");
        //获得请求路径
        String uri=request.getRequestURI();
        System.out.println(uri);
        //分析请求路径
        String action=uri.substring(uri.lastIndexOf("/"),uri.lastIndexOf("."));
        System.out.println(action);
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        if("/quoto".equals(action)){
            //模拟生成几支股票信息
            List<Stock> stocks=new ArrayList<Stock>();
            Random r=new Random();
            for(int i=0;i<8;i++){
                Stock s=new Stock();
                s.setCode("600877"+r.nextInt(10));
                s.setName("中国嘉陵"+r.nextInt(100));
                s.setPrice(10+r.nextInt(1000));
                stocks.add(s);
            }   
            //fromObject方法的参数可以是属猪或者结合
            JSONArray jsonArr=JSONArray.fromObject(stocks);
            String jsonStr=jsonArr.toString();
            System.out.println(jsonStr);
            out.println(jsonStr);
        }
    }
}

3、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>ajax-day02</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>web.ActionServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

4、pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.qiuuuu</groupId>
  <artifactId>ajax-day02</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
      <dependency>
          <groupId>net.sf.json-lib</groupId>
          <artifactId>json-lib</artifactId>
          <version>2.4</version>
          <classifier>jdk15</classifier>
    </dependency>
  </dependencies>
</project>

二、客户端代码

1.stock.jsp

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <script src="js/jquery-1.11.1.js"></script>
        <script type="text/javascript">
            $(function(){//页面加载完成就会执行此代码
                setInterval(quoto,50);//每隔5秒钟执行quoto函数
            });
            function quoto(){//该函数通过调用ajax对象(AMLHttpRequest)向服务器发送异步请求,服务器返回一个描述股票信息的字符串,通过解析json字符串,获得股票信息,然后更新表格
                $.ajax({//利用jQuery提供的方法向服务器发送异步请求
                    "url":"quoto.do",
                    "type":"post",
                    "dataType":"json",
                    "success":function(stocks){
                        //$.ajax会自动将json字符串转换成JavaScript对象
                        //清空tbody
                        $('#tb1').empty();
                        for(i=0;i<stocks.length;i++){
                            var s=stocks[i];
                            //更新表格
                            $('#tb1').append('<tr><td>'+s.code+'</td><td>'+s.name+'</td><td>'+s.price+'</td></tr>');

                        }
                    }
                });
            }
        </script>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Insert title here</title>
        <style type="text/css">
            #d1{
                width:450px;
                height:350px;
                background-color:black;
                margin-left:300px;
                margin-top:20px;
            }
            #d2{
                height:40px;
                background-color:red;
                color:yellow;
            }
            table{
                color:white;
                font-style:italic;
                font-size:24px;
            }
        </style>
    </head>
    <body >
        <div id="d1">
            <div id="d2">股票行情</div>
            <div id="d3">
                <table width="100%">
                    <thead>
                        <tr>
                            <td>代码</td>
                            <td>名称</td>
                            <td>价格</td>
                        </tr>
                    </thead>
                    <tbody id="tb1">

                    </tbody>
                </table>
            </div>
        </div>
    </body>
</html>

三、实现效果

使用Servlet+JSON实现股票信息实时更新

10年积累的做网站、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有恩施土家免费网站建设让你可以放心的选择与我们合作。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

网页标题:使用Servlet+JSON实现股票信息实时更新-创新互联
转载来于:https://www.cdcxhl.com/article42/dgsiec.html

成都网站建设公司_创新互联,为您提供网站维护品牌网站设计定制网站用户体验微信公众号电子商务

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设