0

リクエストパラメータを使用してJavaScriptからサーブレットを呼び出していますが、サーブレットが呼び出されていません。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title>Test</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
</style>
</head>
<body>
  <table border="1" cellpadding = "15">
    <tr><td>1</td><td>2</td><td>3</td></tr>
    <tr><td>4</td><td>5</td><td>6</td></tr>
    <tr><td>7</td><td>8</td><td>9</td></tr>
  </body>
</table>
<script>
$('td').click(function(){
    var colIndex = $(this).parent().children().index($(this));
    var rowIndex = $(this).parent().parent().children().index($(this).parent());
    alert('Row: ' + rowIndex + ', Column: ' + colIndex);
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://localhost:8080/TestFinalWebApp/MyServlet?rowIndex=' + rowIndex + "&colIndex=" + colIndex, true);
    xhr.send(null);
});
</script>
</body>
</html>

これはデプロイメント記述子です。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
    <servlet-name>GetParameters</servlet-name>
    <servlet-class>com.example.web.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>GetParameters</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>  
</web-app>

編集:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String rowIndex = request.getParameter("rowIndex");
        String colIndex = request.getParameter("colIndex");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.print("rowIndex:" + rowIndex + "  colIndex:" + colIndex);
    }

サーブレットが呼び出されない理由を教えてください。

4

1 に答える 1

3

いくつかのコメント:

  1. すでにjQueryが含まれているため、ajax()関数を使用します。エラー処理がはるかに優れており、多くのコーナーケースを解決します。

  2. jQueryの最新バージョンに更新します。最新のリリースは1.7.2です。

  3. localhostサーバーがブラウザと同じマシン上にある場合にのみ機能します。開発中はOKですが、デプロイすると壊れます。それを取り除くか(ブラウザが先頭に追加します)、URLがサーブレットコンテキストから生成されていることを確認します。

于 2012-05-15T10:40:27.103 に答える