2016-10-03 4 views
2

サーブレットがたくさんあるのを避けたいのですが、ページ上の各ボタンやリソースに特別なサーブレットがあるように思われないためです。多くのサーブレットを避ける方法

私が目指しているのは、同じサーブレットと、そのサーブレットの異なるAjax要求をdoGetdoPostメソッドで区別できるようにすることです。例えば

function bar() { 
    $.ajax({ 
     url: "servletName", 
     success: function(data) { 
      foo(data); 
     } 
    }); 
} 

function baz() { 
    $.ajax({ 
     url: "servletName", 
     success: function(otherdata) { 
      anotherFoo(otherdata); 
     } 
    }); 
} 

は私が(もしよそまたはスイッチで)それらを区別できるようにする要求に何を追加することができますか?

PS:私はまた、HTML5の要求を持っている(と思う)ので、私はそれが別個にするだけでなく、それに何かを追加したいと思います:

$(document).ready(function() { 
    $("#uploadbutton").click(function() { 
     var formData = new FormData(); 
     formData.append("myfile", document.getElementById("file").files[0]); 
     var xhr = new XMLHttpRequest(); 
     xhr.open("POST", "rooms", false); 
     xhr.send(formData); 
     document.getElementById("status").innerHTML = xhr.responseText; 
    }); 
}); 

答えて

1

あなたがしなければならないので、明白なことは渡し、ありますあなたのAJAXリクエストからのgetリクエストとpostリクエストの余分なパラメータと、request.getParameter("type"); // typeを使ったサーブレット内のパラメータのチェックは、あなたがクライアントから送信して、ajaxリクエストを検出するものです。

+0

あなたはajaxに追加するために 'data:{ajaxid:4}'のような意味ですか? 'XMLHttpRequest'でもこれを行うことができますか? – shinzou

+0

もちろん、あなたは送ることができます。取得する場合は、クエリのパラメータになります。ポストペイロードに別のデータ属性を投稿する場合 –

+0

サーバ側で 'request.getParameter(" foo ")'を使用して戻り値がnullでないかどうかを確認しますか? – shinzou

0

あなたは何をしているのかを示すパラメータを渡します。たとえば、/ myServletを使用してサーブレットにアクセスした場合は、/ myServlet?action = fooまたは/ myServlet?action = barを呼び出してサーブレットアクションパラメータを探し、それに応じて分岐します。

関連する問題