2017-11-29 17 views
1

これはちょっと疑問に思えるかもしれませんが、私はJavaサーブレットとTomcatをかなり新しくしています。私はjavascriptファイルの.postメソッドでサーブレットメソッドを呼び出そうとしています。 javascriptは.jspファイルで使用されます。サーブレットがjspと同じディレクトリにある限り、すべて正常に動作しますが、ファイルのパスを変更すると、私が何をしても動作させることができません。私はこれらを試してみました:javascript ajax postメソッドからJavaサーブレットを呼び出す

$.post("./classes/myServlets/WEB-INF/order", $.param(data), function(response) { 
    document.getElementById("Table").innerHTML = "Considered table number " + response + " for you"; 
}); 

または

$.post("/classes/myServlets/WEB-INF/order", $.param(data), function(response) { 
    document.getElementById("Table").innerHTML = "Considered table number " + response + " for you"; 
}); 

または

$.post("order", $.param(data), function(response) { 
    document.getElementById("Table").innerHTML = "Considered table number " + response + " for you"; 
}); 

または

$.post("/classes/myServlets/WEB-INF/order.java", $.param(data), function(response) { 
    document.getElementById("Table").innerHTML = "Considered table number " + response + " for you"; 
}); 

私は、これは非常に簡単である必要があります知っているが、私は指示を見つけることができませんどこでも。前もって感謝します。

答えて

3

サーブレットが.javaファイルで定義され、WEB-INFフォルダに格納されているクラスにコンパイルされている場合、URL(通常はweb.xml内)にマップする必要があります。あなたが使っているサーブレットコンテナとフレームワークについての詳細な情報がなくてもこれに答えるのは簡単ではありませんが、純粋なTomcat(Springのようなフレームワークなし)を使っていると仮定した場合、web.xmlファイルを次のように見てください:

あなたは、このようないくつかのjQueryを使ってHTTP POSTリクエストを送信することができますマッピングされ、このURLで
<servlet> 
    <servlet-name>com.project.Order</servlet-name> 
    <servlet-class>com.project.Order</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>com.project.Order</servlet-name> 
    <url-pattern>/order</url-pattern> 
</servlet-mapping> 

$.post("/order", $.param(data), function(response) { 
    document.getElementById("Table").innerHTML = "Considered table number " + response + " for you"; 
}); 
+0

ありがとうございました。私は純粋な風袋を使用しており、私はこの権利を試しています。 @WebServlet( "order")は同じことをしませんか? –

+1

これは、 '/'を追加して、これを 'myServlets'というWebアプリケーションとしてデプロイしていれば、絶対パス(あなたのajaxリクエストのためのもの)'/myServlets/order' –

関連する問題