用ajax和javaservlet读取输入

用ajax和javaservlet读取输入,java,ajax,servlets,Java,Ajax,Servlets,我不熟悉java、ajax和servlet。我编写了一个程序,在一些教程的帮助下读取用户的输入,并将字典的意思打印到网页上 当我在servlet的doPost方法中从网页读取输入时,它无法读取并返回null。可能它正在尝试在提交按钮之前读取输入。我该怎么解决这个问题?以下是我的jsp文件的相关代码: function ajaxFunction() { if(xmlhttp) { var inword = document.getElementById("inputWord");

我不熟悉java、ajax和servlet。我编写了一个程序,在一些教程的帮助下读取用户的输入,并将字典的意思打印到网页上

当我在servlet的doPost方法中从网页读取输入时,它无法读取并返回null。可能它正在尝试在提交按钮之前读取输入。我该怎么解决这个问题?以下是我的jsp文件的相关代码:

function ajaxFunction() {
  if(xmlhttp) {
  var inword = document.getElementById("inputWord");
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.open("GET","gettime?inputWord="+ inword.value , true ); //gettime will be the servlet name
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send(null);
  }
}

每次我尝试运行项目
request.getParameter(“inputWord”)返回null

我在这里尝试了一些代码组合
xmlhttp.open(“GET”、“gettime”inputWord=“+inword.value,true)
xmlhttp.open(“GET”,“gettime”,true)但不起作用

我还调用doPost(请求、响应)在我的doGet方法中


非常感谢您的帮助。

由于您使用的是document.getElementById(),请尝试在HTML中的inputWord控件上设置id属性:

<form name="myForm">
Enter the word: <input type="text" name="inputWord" id="inputWord" />
<br />
Meaning:<input type="text" name="time" />
<br />
<input type="button" onClick="javascript:ajaxFunction();" value="Click to get the Meaning on Textbox"/>
<br />
</form>

输入单词:

意思是:

有关document.getElementById()的详细信息:


我发现,对于AJAX问题,有时能够看到实际发送到服务器的内容非常有用,这样您就可以验证它是否符合预期

我通常使用和一个名为的有用插件(没有它我不会进行任何web开发)。它允许您在发出Ajax请求时查看这些请求,以便您可以检查发送的信息是否正确,以及其结构是否正确

在这种情况下,您可能已经注意到您没有正确发送“inputWord”,因为您在输入时没有ID:

<input type="text" name="inputWord" id="inputWord" />


如果没有AJAX,您能让它工作吗?嗯,您在AJAX调用中执行GET请求,doPost不应该被触发。或者您的doGet是否转发到doPost?字典部分工作正常,但我应该使用ajax来完成它:(哦,我忘了我在doGet方法中称为'doPost(请求,响应);'
<form name="myForm">
Enter the word: <input type="text" name="inputWord" id="inputWord" />
<br />
Meaning:<input type="text" name="time" />
<br />
<input type="button" onClick="javascript:ajaxFunction();" value="Click to get the Meaning on Textbox"/>
<br />
</form>
<input type="text" name="inputWord" id="inputWord" />