我是java和ajax和servlets的新手。我编写了一个程序来读取用户的输入,并在一些教程的帮助下将字典打印到网页上。
当我在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);
}
}
...
<form name="myForm">
Enter the word: <input type="text" name="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>
以下是我试图在servlet中获取输入的代码部分:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String inWord = request.getParameter("inputWord"); // word to search in the dictionary
PrintWriter out = response.getWriter();
...
每次我尝试运行项目request.getParameter("inputWord");
都会返回null。
我尝试了xmlhttp.open("GET","gettime?inputWord="+ inword.value , true );
这里的代码的某些组合,例如xmlhttp.open("GET","gettime", true );
,但没有效果。
我也在我的doGet方法中调用了doPost(request,response);
。
感谢任何帮助。
答案 0 :(得分:1)
由于您正在使用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()的更多信息:
http://www.tizag.com/javascriptT/javascript-getelementbyid.php
答案 1 :(得分:1)