1

私はJavaとajaxとサーブレットが初めてです。ユーザーからの入力を読み取り、いくつかのチュートリアルの助けを借りて辞書の意味を Web ページに出力するプログラムを作成しました。

サーブレットの doPost メソッドで Web ページから入力を読み取ると、読み取りに失敗して 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>

そして、これが私のサーブレットで入力を取得しようとしているコードの一部です:

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 );たが、うまくいきませんでした。

doPost(request,response);また、doGet メソッドを呼び出します。

どんな助けでも大歓迎です。

4

2 に答える 2

1

AJAX の問題については、サーバーに実際に何が送信されているかを確認できると、期待どおりであることを確認できると便利な場合があります。

私は通常、FirefoxとFirebugという便利なアドオンを使用します(これなしでは Web 開発を行いません)。送信された Ajax リクエストを確認できるため、正しい情報を送信しており、正しく構造化されていることを確認できます。

この場合、入力に ID がないため、「inputWord」を正しく送信していないことに気付いたかもしれません。

<input type="text" name="inputWord" id="inputWord" />
于 2012-05-04T13:26:41.270 に答える
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

于 2012-05-04T12:35:16.663 に答える