對於WEB程式來說,前端(JavaScript)和後端(JSP/Servlet)是沒法共用資料的,只能是後端程式(JSP)把資料輸出,產生頁面到前端,這時候產生的頁面中的JavaScript代碼才有可能得到所謂jsp的資料。同樣的,只有把JavaScript裡的資料提交給後端JSP代碼,JSP程式中才能得到JavaScript的資料。
那如何?在頁面的JavaScript中使用jsp中的資料或是在JSP中使用頁面的JavaScript資料呢?
一、頁面中的JavaScript的資料如何提交給背景JSP程式
① 可以將JavaScript的資料以xxx.JSP?var1=aaa&var2=bbb的形式作為URL的參數傳給JSP程式,此時在jsp中用
<%String strVar1=request.getParameter("var1");%>
就可以擷取到JavaScript指令碼傳遞過來的資料;
② 使用JavaScript通過在表單裡加入隱藏欄位資訊,然後用表單提交的方式把資料傳遞給JSP程式。
參考下面的指令碼:
<script language="JavaScript">
<!--
/***************************************************************
* JavaScript指令碼,放置在頁面中的任何位置都可以
* insertclick()函數擷取JSP傳遞到頁面中的變數varMC,
* 然後就可以在JavaScript中修改這個變數的值,再通過
* post的方式提交給JSP程式來使用。
***************************************************************/
function insertclick(){
var1 = document.all.mc.value; //擷取頁面form中的變數值
var1 = 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指令碼中用就可以把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>