是否有可能在JSP页面中获取Javascript数组

时间:2015-04-11 11:20:41

标签: java javascript jsp

我正在开发一个Web应用程序,其中我有一个JavaScript数组,我想在JSP页面中使用这个数组并迭代它将数据保存在数据库中。

var value = response;
  for (var key in value) {
      if (value.hasOwnProperty(key)) {
        alert(key + " -> " + value[key]);
        var sample = new Array();
        sample=value[key];
        console.log(sample);
        // document.getElementById('');
      }
    }
});

我希望我的JSP页面上的这些数据是可能的。如果有可能,那怎么样?

4 个答案:

答案 0 :(得分:1)

你可以在jsp中使用javascript但是它总是在客户端执行。因此,如果您想在浏览器中触发某些事件时保存一些内容,您可以通过进行ajax调用或表单提交来实现。 Ajax是首选方式,因为它为用户提供了更快更好的体验

但是如果你打算在服务器端执行不可能的javascript

答案 1 :(得分:0)

Java脚本客户端脚本,而jsp是服务器端脚本,因此您不能简单地执行此操作。

您可以做的是通过表单提交,使用URL参数或使用AJAX调用将计算的变量从javascript提交到服务器,然后您可以将其提供给服务器以存储在数据库中。

客户端:

<script type="text/javascript">
var n = document.getElementById("data");
var f=new Array( "apple", "orange", "mango" );
n.value = f;
</script>
<form action="Your_JSP.jsp" method="POST">
<input type="hidden" id="data" name="data" value="" />
<input type="submit" />
</form>

服务器端:

<%
String val = request.getParameter("data");
String aa[]=val.split(",");
for(String x : aa )
out.println(x);
//now hereyou can use aa array tostore in database or do whatever you want  
%>

答案 2 :(得分:0)

是的,它可以做到这一点。你可以在HTML标签中显示数组

<!DOCTYPE html>
<html>
 <head>
<script>
var value=response;
 for (var key in value) {
  if (value.hasOwnProperty(key)) {
    alert(key + " -> " + value[key]);
    var sample = new Array();
    sample=value[key];
    console.log(sample);
   // do here as 
    document.getElementById("array").innerHTML = sample;
     // here array is <p> tag in html and sample is array which will be shown in jsp page.
  }
}
</script> 
</head>
<body>
  <form action="get.jsp" method="POST">
     <p id="array" name="array" type="hidden"></p>
   <input type="submit" />
</body>
</html>
在get.jsp中

,您将能够从array获取值:

 <%
String []array = request.getParameter("array").split(",");
//this String array you can use to store data in DB  
%>

答案 3 :(得分:0)

如果您有两个不同的jsp,请尝试此操作:

first.jsp

<script>
var response = [];
...
var put = function(form) {
  form.resp.value = response.join(','); //using comma as separator
};
</script>
<form onsubmit='put(this)' method='next.jsp' method='post'>
  <input type='hidden' name='resp' />
  <button>Submit</button>
</form>

next.jsp

<%
    String[] resp = request.getParameter("resp").split(",");
%>
Response is: ${param.resp} <!-- debugging -->
相关问题