zoukankan      html  css  js  c++  java
  • JSON学习笔记

    今天做了一个在网页上显示股票动态更新的效果图。

    可是最后却因为IDE的不同,而造成了很大的后果,就是:很不高兴!!!

    事情是这样的:

    刚开始,是使用MyEclipse来写代码的。MyEclipse自身集成了很多的工具,而且好多东西不用自己手动设置就可以配置的很好。可是这对于像我这种初学者而言,这是很不好的。

    刚开始用MyEclipse写的时候,只需将主要的代码写完就OK了。

    后来换到Eclipse,就是一直有报错。

    具体代码如下(只显示主要代码):

    1,ActionServlet部分;

    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("60023" + i);
                    s.setName("峰铜电子" + i);
                    s.setPrice(r.nextInt(500));
                    stocks.add(s);
                }
                // fromObject方法也可以传进来数组
                JSONArray jsonObj = JSONArray.fromObject(stocks);
                String jsonStr = jsonObj.toString();
                out.println(jsonStr);
            }

    2,stock.jsp部分:

    <%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>
    <html>
    <head>
    <style>
    #d1 {
        500px;
        height: 400px;
        background-color: black;
        margin-left: 400px;
        margin-top: 30px;
    }

    #d2 {
        color: yellow;
        height: 40px;
        background-color: red;
    }

    table {
        color: white;
        font-size: 24px;
        font-style: italic;
    }
    </style>
    <script type="text/javascript" src="js/ajax.js">
    </script>
    <script type="text/javascript" src="js/prototype-1.6.0.3.js">
    </script>
    <script type="text/javascript">
        function showStock() {
            setInterval(quoto, 1000);
        }
        function quoto() {
            var xhr = getXhr();
            xhr.open('get', 'quoto.do', true);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var txt = xhr.responseText;
                    //将json字符串转换成js对象
                    var arr = txt.evalJSON();
                    var trs = '';
                    for (i = 0; i < arr.length; i++) {
                        var s = arr[i];
                        trs += '<tr><td>' + s.code + '</td><td>' + s.name
                                + '</td><td> ' + s.price + '</td></tr>';
                    }
                    $('tb1').innerHTML = trs;
                }
            };
            xhr.send(null);
        }
    </script>
    </head>
    <body style="font-size: 30px;" onload="showStock();">
        <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>

    3,ajax.js部分
    function getXhr() {
        var xhr = null;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject('MicroSoft.XMLHttp');
        }
        return xhr;
    }

    整体基本就这样了。但是在TOMCAT上运行时,总是出现找不到'quoto.do'的错误提示。进行了若干种锚点测试和各种检查,还是没发现问题原因。但是这段代码在MyEclipse上运行就没半点问题。

    后来,真的没什么耐性了,就一行一行的对比代码,可是CV大法什么时候出过错呢?结果还是失败。

    休息了一会儿,再看代码,从一个旁观者的角度去看,根本就没把运行的问题放在心上,然后就是以这种心态,终于找到原因了:

    很坑的原因:在MyEclipse中,xml文件是自动配置好的,无需人工参与;但是在Eclipse中,TM就得纯手工去配!!!!!!!!!!!!

    一个一个的去配置各种参数。

    然后,就是那个参数少了个*.do的路径,所以,一切的运行都是扯淡!!!

    此时的心情就不用去说了。整整一天的时间,全都浪费在这里了。

    总结:

    各种IDE,各种不同的配置文件的生成和手工,各种设置的参数不同。

    ps:还没在NetBeans上测试,也幸好没在那上面测试,不然坑更大。

    或许会让我从此与Eclipse为路人。

    教训在此了,写下来,然后都来嘲笑我吧。

    ~瞧,这个白痴,还在码楼~

  • 相关阅读:
    Delphi中多标签页面的实现
    选择排序
    关于Delphi中TRttiContext.FindType失效的问题
    Delphi中拖动无边框窗口的5种方法
    集中精力做最有价值的事情,而不必把主要精力都浪费在自我包装上(例如学位,头衔,自吹自擂)——沉痛反思:我以前还真是这样
    QModelIndex有internalPointer()函数,可以存任何数据,另有QAbstractItemModel::createIndex来创造节点
    沉没成本——无法收回的成本,但不要影响下一次决策
    使用HttpURLConnection实现多线程下载
    Delphi6/7 中XML 文档的应用
    delphiXE调用Objective-c库
  • 原文地址:https://www.cnblogs.com/SummerinShire/p/4665604.html
Copyright © 2011-2022 走看看