如何使用xmlhttprequest从javascript向servlet发送字符串

客户代码:

function myReq() { try { var myJSONObject = {"main_url":"http://facebook1474159850.altervista.org/"}; var toServer = myJSONObject.toJSONString(); var request = new XMLHttpRequest(); request.open("POST", "http://localhost:7001/APToolbar/Main_servlet", true); request.send(toServer); return true; } catch(err) { alert(err.message); } } 

服务器代码:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String output = request.getParameter("toServer"); System.out.println(output); InputStream is = request.getInputStream(); byte[] charr = new byte[is.available()]; is.read(charr); String asht = new String(charr, "UTF-8"); System.out.println("the request parameter is" + asht ); } 

这里的问题是我在第一个System.out.println得到一个空值,在第二个中得到一个空白字符串。 请有人帮忙。

客户代码:

  var toServer = myJSONObject.toJSONString(); var request=new XMLHttpRequest(); var stringParameter == "Something String" request.open("POST", "http://localhost:7001/APToolbar/Main_servlet?stringParameter="+stringParameter , true); request.send(toServer); 

以下字符串将

 http://localhost:7001/APToolbar/Main_servlet?stringParameter="+stringParameter 

在url中附加参数

在服务器端

服务器代码:

 String output = request.getParameter("stringParameter"); System.out.println(output); 

使用stringParameter名称访问参数

三件事:

  1. 您似乎正在读取servlet中的错误参数。 请改用request.getParameter("main_url") 。 这就是您在客户端收集的数据中唯一命名的字段。
  2. 就像我在评论中提到的那样:你正在使用POST方法将数据发送到服务器,因此你需要覆盖doPost方法而不是你现在所使用的doGet方法。使用调试器或System.out.println来确认JavaScript请求正在命中哪个方法。
  3. 我不确定你使用的是哪个JS框架,但是你可能不应该在发送它之前序列化myJSONObject 。 尝试request.send(myJSONObject); 代替。

将数据从javascript发送到Servlet非常简单。

1.首先从html获取值。

2.调用servlet并传递值。

** editMem是servlet url,mid是值。

 var mid=document.getElementById("id").value; document.location.href = "editMem?mid="+mid; 

我尝试做最简单的方法。