2013-04-30 5 views
2

나는 양식이있는 index.html을 가지고 있습니다. submit을 누르면 서블릿에 POST 요청을합니다. 이 서블릿은 무거운 것을 수행 한 다음 jsp로 전달합니다. 내가 원하는 것은 제출을 눌러 로더를 보여줄 때입니다. 자바 스크립트 (preventDefault 등)를 통해이 작업을 수행하는 방법을 알고 있습니다. 나는 그것을 원하지 않는다. 서블릿으로이를 수행 할 수 있습니까? 나는 로더만을 포함하는 "페이지"를 출력하려고 시도하고 있었고 무거운 물건을 처리하고 결국에는 JSP로 끝냈습니다. 그것은 작동하지 않았다. 웬일인지 index.html을 떠나지도 않습니다. 서블릿이 끝날 때까지 거기에 머무르며 결국 jsp로 전달됩니다. 서블릿이 다음 페이지로 전달되기를 기다리는 동안 로더 표시

당신은 form submitAjax .. 가 ajax call loading 페이지를 표시 할 수 nedded things/ html을 반환하는 servlet에 만들 수 있습니다 당신의 도움

+0

형식 질문 (이것은 내가 사용한 가장 쉽고 효과적인 스크립트) JQuery Ajax를 참조 할 것을 권장합니다. –

+1

진행 막대가 필요합니다. POST 용으로 Ajax를 사용하는 경우에만 발생할 수 있습니다. 그렇지 않으면 브라우저는 서블릿이 처리되는 동안 애니메이션을 수행하지 않습니다. –

+1

참조 : http://www.onjava.com/pub/a/onjava/2003/06/11/jsp_progressbars.html –

답변

2

이것은 AJAX를 통해서만 가능합니다.

그래서 제출 버튼을 클릭하면로드하는 이미지가 표시되고 서블릿에 대한 ajax 호출이 생성됩니다. 서블릿이 처리되는 동안 로딩 이미지가 표시됩니다. Uppon은 Ajax 호출에서 복귀하면서 javascript를 사용하여 필요한 모든 작업 (다른 페이지로 전달/오류 표시 등)을 수행 할 수 있습니다.

은 내가보기 엔 더 읽을 수 있도록

$.ajax({ 
    type: 'POST', 
    url: '/myServlet', 
    data: { 
     name: $('#name').val() 
    }, 
    beforeSend:function(){ 
     // this is where we append a loading image 
    }, 
    success:function(data){ 
     // successful request; do something with the data    
    }, 
    error:function(){ 
     // failed request; give feedback to user 
    } 
}); 
+0

로딩 이미지가 표시되는 동안 새로 고침 버튼을 누르면 어떨까요? 내 서블릿의 코드가 다시로드됩니다. ??? – anonymous

0

주셔서 감사합니다. page을 리턴하여 form 또는 current page의 모든 값을 바꿀 수 있습니다. ajaxform submission이 같은 ususal 계속

후 ... 다른 Servlet이 완료 될 때 processing 당신은 result page로 리디렉션됩니다.

+0

나는 분명했다. 나는 아약스 대안을 원하지 않았다. – alkis

+1

@alkis 질문에 당신은 결코 ajax'와 관련이 없습니다. 당신은'defualt'에 대해 말했습니다. 또한 'One Request'는 언제든지 '1 응답'만 가질 수 있습니다. ''응답을 여러 번 보내거나 보내려고하면'ResponseAlreadyCommited exception'이 발생합니다 –

+0

@rahul maindargi가 바로이에요. 당신은 아약스에 대해 아무 말도하지 않았습니다. 그리고이 일을하려고하는 것은 아약스 btw와 함께 할 수 있습니다 .... – MaVRoSCy