2009-07-08 5 views
2

웹 응용 프로그램을 만들려면 Java를 사용하고 있습니다. 응용 프로그램은 긴 비즈니스 로직을 호출하는 JSP로 데이터를 전송하는 양식을로드해야합니다. jsp가 "서비스를 사용 해 주셔서 감사합니다. 처리가 완료되면 이메일이 전송됩니다."와 같은 메시지가 표시되어야합니다.클라이언트를 차단하지 않고 메서드 실행

<html> 
<head></head> 
<body> 
... 
<span>thank you for using my service, an email will sent to you when the proccess is done</span> 
... 
<% businessClass.doLongOperation(); %> 
... 
... 
</Body> 
</html> 

는 JSP가 오랜 시간 동안 실행되고 사용자가 작업이 끝날 때까지 기다려야 할 것이다 :

문제는 내가 뭔가를 기록 할 경우이다. 또한, 나는 사용자가 브라우저를 닫을 것이고, jsp가 그 작업을 계속할 것인지 확신 할 수 없다.

jsp에서 긴 작업을 분리하려면 어떻게해야합니까? 사용자가 모든 실행 시간을 기다릴 필요가 없으며 브라우저에 의존하지 않도록 긴 작업을 어떻게 수행 할 수 있습니까?

Naor

답변

1

귀하의 JSP 아마 서블릿 또는 Struts 액션 또는 스프링 MVC 컨트롤러에 의해 서버 측에서 백업됩니다. executorjava.util.concurrent.Executor의 인스턴스

executor.execute(new Runnable() { 

    public void run() { businessClass.doLongOperation(); } 
}); 

: 객체에서

는 비동기 실행 peform받는.

관련 문제