Java Iniciante

É o seguinte: eu tenho um site de vendas pela internet, eu preciso intercalar os pedidos entre 3 emails. Antes estava intercalado em 2 desta forma: public class EnviarPedidoAction extends Action { private static final TestePedidoLogic pedidoLogic = (TestePedidoLogic)TestePedidoLogic.getInstance(); public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String nome, email, titulo, texto,categoria, telefone; nome = StringUtils.clean(request.getParameter("nome")); titulo = StringUtils.clean(request.getParameter("titulo")); email = StringUtils.clean(request.getParameter("email")); texto = StringUtils.clean(request.getParameter("texto")); categoria = request.getParameter("categoria"); telefone = request.getParameter("telefone"); if ( nome == null || titulo == null || email == null || texto == null || telefone == null) { request.setAttribute("msg", "Ocorreu um erro no site, favor contatar o administrador!"); return mapping.findForward("dica"); } if(nome.length() < 1 || email.length() < 5 || texto.length() < 1) { request.setAttribute("msg", "Dados insuficientes. Favor preencher campos obrigatórios!"); if(categoria != null) return mapping.findForward("dica"); return mapping.findForward("pedido"); } Pedido pedido = new Pedido(); pedido.setNome(nome); pedido.setTitulo(titulo); pedido.setEmail(email); pedido.setTexto(texto); pedido.setData(Calendar.getInstance().getTime()); pedido.setTelefone(telefone); if(categoria != null) { pedido.setId_categoria(Integer.parseInt(categoria)); } try { pedidoLogic.inserePedido(pedido); Integer totalPedidosInseridos = pedidoLogic.getLastPedidoInserted(); //envia e-mail. EmailBean em = new EmailBean(VariaveisGlobais.SMTP_HOST); em.setFrom(email); if (( totalPedidosInseridos.intValue()%2 ) == 0) em.setTo(VariaveisGlobais.EMAIL_CONTATO); else em.setTo(VariaveisGlobais.EMAIL_CONTATO2); em.setSubject(titulo); TemplateFileHandler handler = new TemplateFileHandler(); //mensagem em html. handler.loadFile(servlet.getServletContext().getRealPath("") +"/email/pedido_contato.html"); handler.replace("#base_href#", VariaveisGlobais.HOSTNAME); handler.replace("#nome#",nome); handler.replace("#email#", email); handler.replace("#telefone#", telefone); handler.replace("#mensagem#", texto); em.insertPart(new MailHtmlPart(handler.getContent())); //mensagem em txt. handler.loadFile(servlet.getServletContext().getRealPath("") +"/email/pedido_contato.txt"); handler.replace("#nome#",nome); handler.replace("#email#", email); handler.replace("#telefone#", telefone); handler.replace("#mensagem#", texto); em.insertPart(new MailTextPart(handler.getContent())); em.EnviarEmail(); } catch(Exception e) { e.printStackTrace(); } request.setAttribute("msg","Sua mensagem foi enviada com sucesso. Aguarde resposta!"); if(categoria != null) { request.setAttribute("link","/dicas/lista.scale"); // estatico!! tirar!! } return mapping.findForward("sucesso"); } } Eu sei que é uma dúvida boba, mas eu não sei como fazer, sou iniciante na área de Java Se alguém puder me ajudar desde já agradeço.

daria para formatar o seu código?? assim fica muito dificil de ler

muito dificil é ser educado, hehehe.

Se vc programa assim vc é um super heroi ehhehe.

Experimente formatar o código, ta meio complicado de entender.

Putz… o famoso Código de 2 Linhas!

e eu achando que eu que programo mau… kkkkkkkk…

[code]public class EnviarPedidoAction extends Action
{
private static final TestePedidoLogic pedidoLogic = (TestePedidoLogic)TestePedidoLogic.getInstance();

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

  String nome, email, titulo, texto,categoria, telefone;   
     
  nome      = StringUtils.clean(request.getParameter("nome"));   
  titulo    = StringUtils.clean(request.getParameter("titulo"));   
  email     = StringUtils.clean(request.getParameter("email"));   
  texto     = StringUtils.clean(request.getParameter("texto"));   
  categoria = request.getParameter("categoria");   
  telefone = request.getParameter("telefone");   
     
  if ( nome == null  
        || titulo == null  
        || email == null  
        || texto == null  
        || telefone == null) {   
        
     request.setAttribute("msg", "Ocorreu um erro no site, favor contatar o administrador!");   
     return mapping.findForward("dica");   
  }   
     
  if(nome.length() < 1 || email.length() < 5 || texto.length() < 1) {   
     request.setAttribute("msg", "Dados insuficientes. Favor preencher campos obrigatórios!");   
           
     if(categoria != null) return mapping.findForward("dica");   
     return mapping.findForward("pedido");   
  }   
  Pedido pedido = new Pedido();   
  
  pedido.setNome(nome);   
  pedido.setTitulo(titulo);   
  pedido.setEmail(email);   
  pedido.setTexto(texto);   
  pedido.setData(Calendar.getInstance().getTime());   
  pedido.setTelefone(telefone);   
     
  if(categoria != null) {   
     pedido.setId_categoria(Integer.parseInt(categoria));   
  }   
  try {   
     pedidoLogic.inserePedido(pedido);   
     Integer totalPedidosInseridos = pedidoLogic.getLastPedidoInserted();   
        
     //envia e-mail.   
     EmailBean em = new EmailBean(VariaveisGlobais.SMTP_HOST);   
        
     em.setFrom(email);   
        
     if (( totalPedidosInseridos.intValue()%2 ) == 0)   
        em.setTo(VariaveisGlobais.EMAIL_CONTATO);   
     else  
        em.setTo(VariaveisGlobais.EMAIL_CONTATO2);   
        
     em.setSubject(titulo);   
        
     TemplateFileHandler handler = new TemplateFileHandler();   

     //mensagem em html.   
     handler.loadFile(servlet.getServletContext().getRealPath("") +"/email/pedido_contato.html");   
     handler.replace("#base_href#", VariaveisGlobais.HOSTNAME);   
     handler.replace("#nome#",nome);   
     handler.replace("#email#", email);   
     handler.replace("#telefone#", telefone);   
     handler.replace("#mensagem#", texto);   
     em.insertPart(new MailHtmlPart(handler.getContent()));   
        
     //mensagem em txt.   
     handler.loadFile(servlet.getServletContext().getRealPath("") +"/email/pedido_contato.txt");   
     handler.replace("#nome#",nome);   
     handler.replace("#email#", email);   
     handler.replace("#telefone#", telefone);   
     handler.replace("#mensagem#", texto);   
     em.insertPart(new MailTextPart(handler.getContent()));   
        
     em.EnviarEmail();    
  } catch(Exception e) {   
     e.printStackTrace();   
  }   
  request.setAttribute("msg","Sua mensagem foi enviada com sucesso.<br>Aguarde resposta!");   
     
  if(categoria != null) {   
     request.setAttribute("link","/dicas/lista.scale"); // estatico!! tirar!!   
  }   
  return mapping.findForward("sucesso");   

}
}

[code]

Me desculpem, só colei errado.

Eu, particularmente, pensaria em criar serviços assincronos.

A servlet recebe os parametros e manda para outra classe/servlet/sistema que faz o processo em background. Vc pode fazer pooling de status (com cuidado) nesse processo (perguntando qual status/etapa) OU implementar algum callback (veja o que melhor te atende). Dessa forma se o serviço de email ou outro processo engargalar vc não trava a servlet.