對於WEB程式來說,前端(JavaScript)和後端(JSP/Servlet)是沒法共用資料的,只能是後端程式(JSP)把資料輸出,產生頁面到前端,這時候產生的頁面中的JavaScript代碼才有可能得到所謂JSP資料。同樣的,只有把JavaScript資料提交給後端JSP代碼,JSP程式中才能得到JavaScript資料。
那如何?在頁面的JavaScript中使用JSP資料或是在JSP中使用頁面的JavaScript資料呢。
一、頁面中的JavaScript資料如何提交給背景JSP程式
1.可以將JavaScript的資料以xxx.JSP?var1=aaa&var2=bbb的形式作為URL的參數傳給JSP程式,此時在JSP中用
<%String strVar1=request.getParameter("var1");%>
就可以擷取到JavaScript指令碼傳遞過來的資料;
2.使用JavaScript通過在表單裡加入隱藏欄位資訊,然後用表單提交的方式把資料傳遞給JSP程式。
參考下面的指令碼: <script language="JavaScript"> <!-- JavaScript指令碼,放置在頁面中的任何位置都可以 insertclick()函數擷取JSP傳遞到頁面中的變數varMC, 然後就可以在JavaScript中修改這個變數的值,再通過 post的方式提交給JSP程式來使用。 function insertclick(){ var1 = document.all.mc.value; //擷取頁面form中的變數值 var1var1 = var1 + "名稱"; document.insertForm.submit(); } //--> </script> <!-- html頁面form表單,放置在html頁面中的位置不限 --> <form name="insertForm" method="post" action="yourJSP"> <!-- 下面這一句是擷取JSP程式中傳遞過來的變數值 --> <input type="hidden" name="mc" value="<%=varMC%>"> <input type="button" value="提交" onclick="insertclick()"> </form>
二、頁面中的JavaScript資料如何使用背景JSP資料
這個比較簡單,直接在JavaScript指令碼中用<%=strVar1%>就可以把JSP程式中的資料傳遞給JavaScript指令碼使用了。
參考下面的指令碼:
<!-- html頁面form表單,放置在html頁面中的位置不限 --> <form name="insertForm" method="post" action="yourJSP"> <input type="hidden" name="mc" value=""> </form> <script language="JavaScript"> <!-- JavaScript指令碼,放置在頁面中form以後的任何位置都可以 使用JavaScirpt擷取JSP傳遞到頁面中的變數varMC, 然後就可以在JavaScript中使用這個變數的值,通過 JavaScript指令碼賦值給form中的隱藏欄位。 var1 = "<%=varMC%>"; //擷取JSP中的變數值 document.all.mc.value = var1; //--> </script>