2016-10-03 3 views
2

많은 서블릿을 사용하지 않으려 고합니다. 페이지의 각 버튼이나 리소스에 특별한 서블릿이있을 것 같지 않아서요.많은 서블릿을 피하는 방법

내가 목표로 한 것은 동일한 서블릿에 대해 서로 다른 아약스 요청을하고 그 서블릿에서 doGet, doPost 메소드로 구분할 수 있도록하는 것입니다. 예를 들어

:

내가 요청에 (를 elses 또는 스위치하다면)을 구별 할 수 추가 할 수 있습니다 무엇
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

물론 보낼 수 있습니다. get의 경우 쿼리 매개 변수가됩니다. 게시물 페이로드에 다른 데이터 속성을 게시 할 경우 –

+0

서버 측에서'request.getParameter ("foo")'를 사용하고 반환 값이 null이 아닌지 확인하십시오. – shinzou

0

당신이하고있는 일을 알려주는 매개 변수를 전달합니다. 예를 들어/myServlet을 사용하여 서블릿에 액세스 한 경우/myServlet? action = foo 또는/myServlet? action = bar를 호출하고 서블릿에서 그에 따라 동작 매개 변수와 분기를 찾습니다.

관련 문제