Javascript 使用JS从textarea获取值,并在不重新加载页面的情况下将其传递给服务器(jsp)

Javascript 使用JS从textarea获取值,并在不重新加载页面的情况下将其传递给服务器(jsp),javascript,html,jsp,Javascript,Html,Jsp,我使用这段代码在onclick事件后通过调用两个函数的按钮向JSP页面显示一个TextArea <textarea id="textarea"></textarea> <button style="float: right;" onclick="jQuery('#reDiv').load(' #reDiv'); doSth();">Get Text</button> 获取文本 职能1: <div id="reDiv"><%

我使用这段代码在onclick事件后通过调用两个函数的按钮向JSP页面显示一个TextArea

<textarea id="textarea"></textarea>

<button style="float: right;" onclick="jQuery('#reDiv').load(' #reDiv'); doSth();">Get Text</button>

获取文本
职能1:

<div id="reDiv"><%=new java.util.Date().toString()%></div>

职能2:

<script>
function doSth() {
var text = $("#textarea").val(); //value of textarea
<%=text%> //error
}
</script>

函数doSth(){
var text=$(“#textarea”).val();//textarea的值
//错误
}
功能1工作正常

在函数2中,我试图将刚从TextArea获得的值传递到我的服务器,而无需重新加载页面。我稍后的目标是调用一个方法并在不刷新页面的情况下显示数据

我知道错误在于JS是客户端,JSP是服务器端。
但我怎么才能解决这个问题呢

在jsp中使用Scriptlet(这些东西
)是非常糟糕的做法。它被和取代

但是是的,服务器在发送到客户端之前在jsp页面中运行java。javascript在java已经执行之后在客户端运行。除此之外,您不能使用scriptlet直接访问javascript变量。然而,你可以用另一种方式来做,但在这种情况下,它对你没有用处

您提到要将值从textarea传递到服务器,而无需重新加载页面。这就是AJAX的用途

<script>
function doSth() {
var text = $("#textarea").val(); //value of textarea
//<%=text%> //error
sendToServer(text);
}

function sendToServer(text){

  var params = {
      textarea: text
  };
  $.post("YourServletUrl", $.param(params), function(response) {
      // ... handle response here if you have any..
  });     

}
</script>

在jsp中使用Scriptlet是非常糟糕的做法(这些东西
)。它被和取代

但是是的,服务器在发送到客户端之前在jsp页面中运行java。javascript在java已经执行之后在客户端运行。除此之外,您不能使用scriptlet直接访问javascript变量。然而,你可以用另一种方式来做,但在这种情况下,它对你没有用处

您提到要将值从textarea传递到服务器,而无需重新加载页面。这就是AJAX的用途

<script>
function doSth() {
var text = $("#textarea").val(); //value of textarea
//<%=text%> //error
sendToServer(text);
}

function sendToServer(text){

  var params = {
      textarea: text
  };
  $.post("YourServletUrl", $.param(params), function(response) {
      // ... handle response here if you have any..
  });     

}
</script>