zoukankan      html  css  js  c++  java
  • JSON(五)——同步请求中使用JSON格式字符串进行交互(不太常见的用法)

      在同步请求中使用JSON格式进行数据交互的场景并不多,同步请求是浏览器直接与服务器进行数据交互的大多是用jsp的标签jstl和el表达式对请求中的数据进行数据的渲染。我也是在一次开发中要从其它服务器提供的接口中调取json格式的字符串数据然后把数据渲染到本服务器的jsp页面中发现这种做法的。

      当然对于从其他服务器中取得的json格式字符串数据你也可以使用异步请求的方式直接把数据返回,在前端使用js对数据进行渲染,还有就是使用json-lib或者jackson把json格式的字符串转换成javaBean然后使用jsp的标签jstl和el表达式画页面,这种方法也很常见(不过比较麻烦,你要准备javaBean,还要对数据进行解析)。

      下面介绍一种不太常见的做法,同步请求中使用JSON格式字符串进行前后端数据直接交互。

      index.jsp页面代码。

    <body style="background-color: #90EE90;">
        <input type="button" value="测试按钮1" onclick="sendSyn();"/>
    </body>
    <script type="text/javascript">
     function sendSyn(){
        window.location.href = "<%=basePath%>/manage/test/syn";
    }    
     }
    </script>

    java代码

    @RequestMapping("/syn")
        public void testSyn(HttpServletRequest request, HttpServletResponse response){
            try {
           //这里模拟从其他服务器接口中取到的json格式字符串 String jsonstr
    = "{"name" : "张三"}"; request.setAttribute("jsonstr", jsonstr); request.getRequestDispatcher("/temp.jsp").forward(request, response); } catch (ServletException | IOException e) { e.printStackTrace(); } }

    temp.jsp页面代码

    <script type="text/javascript">
    var jsonstr = ${jsonstr};
    alert(jsonstr.name);
    </script>

    注意这里

    var jsonstr = ${jsonstr};

    不可以这样如下写:

    var jsonstr = "${jsonstr}";因为json中带有双引号,会引起语法冲突。

    另外这也是在<script></script>使用el表达式少有的不带引号的情况,其他不带引号的情况,目前还没见过,欢迎来补充。

      最后说一点,我们作为程序员,研究问题还是要仔细深入一点的。当你对原理了解的有够透彻,开发起来也就得心应手了,很多开发中的问题和疑惑也就迎刃而解了,而且在面对其他问题的时候也可做到触类旁通。当然在开发中没有太多的时间让你去研究原理,开发中要以实现功能为前提,可等项目上线的后,你有大把的时间或者空余的时间,你大可去刨根问底,深入的去研究一项技术,为觉得这对一名程序员的成长是很重要的事情。

  • 相关阅读:
    actf_2019_babystack
    Exp9 Web安全基础
    Exp 8 Web基础
    Exp7 网络欺诈防范
    pwn堆总结
    基于OpenSSL的asn.1分析工具设计与实现 20175219罗乐琦 个人报告
    Exp6 MSF基础应用
    glibc free源码分析
    glibc malloc源码分析
    exp5 信息收集与漏洞扫描
  • 原文地址:https://www.cnblogs.com/cdf-opensource-007/p/6399488.html
Copyright © 2011-2022 走看看