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表達式少有的不帶引號的情況,其他不帶引號的情況,目前還沒見過,歡迎來補充。

 

  最后說一點,我們作為程序員,研究問題還是要仔細深入一點的。當你對原理了解的有夠透徹,開發起來也就得心應手了,很多開發中的問題和疑惑也就迎刃而解了,而且在面對其他問題的時候也可做到觸類旁通。當然在開發中沒有太多的時間讓你去研究原理,開發中要以實現功能為前提,可等項目上線的后,你有大把的時間或者空余的時間,你大可去刨根問底,深入的去研究一項技術,為覺得這對一名程序員的成長是很重要的事情。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM