Java 如何在每次迭代后发送成功消息

Java 如何在每次迭代后发送成功消息,java,ajax,jsp,servlets,Java,Ajax,Jsp,Servlets,我在一个循环中发送电子邮件,并再次重复该循环。当前,在使用发送所有电子邮件后,将显示成功消息 request.getSession().setAttribute("message", resultMessage); response.sendRedirect("index.jsp"); 我想在jsp页面上的每次成功迭代之后显示成功消息 servlet类中的迭代代码: try { for(int j=0;j<noOfEmailToSend;j++) {

我在一个循环中发送电子邮件,并再次重复该循环。当前,在使用发送所有电子邮件后,将显示成功消息

request.getSession().setAttribute("message", resultMessage);
response.sendRedirect("index.jsp");
我想在jsp页面上的每次成功迭代之后显示成功消息

servlet类中的迭代代码:

try {               
    for(int j=0;j<noOfEmailToSend;j++) {
        Iterator<String> sendersInputIterate = list.iterator();
        Iterator<String> subject1 = sub.iterator();

        while (sendersInputIterate.hasNext() && subject1.hasNext()) {   
            EmailFunction.sendEmail(ExchangeIP, port, sendersInputIterate.next(), toAddress, subject1.next(), content, uploadedFiles);  
            resultMessage = "The B-mail has been sent successfully :";
            Thread.sleep(sleeptime);
        }

        Thread.sleep(iterationInterval);
    }                                           
} catch (Exception ex) {
    ex.printStackTrace();               
    resultMessage = "There were an error: " + ex.getMessage();
} finally {
    request.getSession().setAttribute("message", resultMessage);
    response.sendRedirect("index.jsp");
}
试试{

对于(int j=0;j有一个快速的解决方案,即:不在servlet内进行循环, 在客户端进行循环以执行ajax请求,将您的电子邮件放入javascript数组中,然后通过循环迭代数组,然后将它们逐个发送到servlet,您可以检测电子邮件发送成功或失败的天气,servlet可以为每个请求发送1封电子邮件 输出流可以为每个请求打印一次

以下是一个例子:

var emails=new Array();
emails.push("foo@foo.com");
emails.push("bar@bar.com");
emails.push("foo@bar.com");
$(document).ready(function(){
// first param is the url which will you send the param
//second param the email which will you send and in this case you have to pull it by request.getParameter("email");
third param the response which you got from servlet weather success or fail
for(i=0;i<emails.size();i++){
$.post("SendEmailServlet",{email: emails[i]},function(data){
 // third param the response from servlet
})
})
}
var=newarray();
电子邮件。推送(“foo@foo.com");
电子邮件。推送(“bar@bar.com");
电子邮件。推送(“foo@bar.com");
$(文档).ready(函数(){
//第一个参数是您将发送参数的url
//第二个参数是你将要发送的电子邮件,在这种情况下,你必须通过请求获取它;
第三个参数是您从servlet获得的响应,无论成功与否

对于(i=0;i@coolgirl
finally
将始终被执行()。因此,即使出现
异常
…在那里显示
成功消息
也是错误的。@FelixD.我想你误解了我提到的内容。我知道finally只会在system.exit()的特定情况下执行或者可能是系统出现故障或其他原因,但事实并非如此!上面发布的代码只发送了一次成功消息,而且在出现故障的情况下,它会发送一条成功消息。我建议将代码从finally块移动到循环中,在该循环中,每发送一封成功的电子邮件都会触发消息!这将使更有意义的是:P-我猜这也是答案,所以你可以将其作为一个真实的答案发布。我想知道我之前的评论去了哪里!是的,我也是^^问自己,如果我读起来太傻了,但我不能再检查它了:DThank you.bt我对ajax是完全陌生的。你能用示例代码解释一下在客户端上迭代吗。