If no servlet e popup

Tenho um servlet abaixo que não esta “respeitando” a condição do if. Não sei onde estou errando.Além da condição,gostarai de saber se quando voltar para determinada página, como posso emitir mensagem de confirmação ou alerta através de popup.

Bom, segue o código abaixo:

package Controller;

import Bean.Professor;
import DAO.CadastroAlunoDAO;
import DAO.DAO;


import java.io.*;
import java.net.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpSession;


          


public class Cadastro extends HttpServlet {
    Professor p= new Professor();
    CadastroAlunoDAO c=new CadastroAlunoDAO();
    Connection con=null;
    
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       out.print("Entrou no servlet"); 
  try {
         out.print("Entrou no Try");
       
       
        String nome=request.getParameter("nome");
        String email=request.getParameter("email");
        int cod=Integer.parseInt(request.getParameter("cod"));
        
        p.setProfessor_Nome(nome);
        p.setProfessor_email(email);
        p.setProfessor_Id(cod);
       
       
       if((nome != null) && (email != null))
       {            
                 c.inclui(p.getProfessor_Id(),p.getProfessor_Nome(),p.getProfessor_email());
                 // out.print("Cadastro efetuado com sucesso");// colocar mensagem dentro de popup
                 response.sendRedirect("principal.jsp"); 
                
                        
       } else{
               response.sendRedirect("cadastro_aluno.jsp");   
             // out.print("Existem dados obrigatórios em branco!");// colocar mensagem dentro de popup

       } 
     
      
    }
catch(Exception e)
{ 
out.print(e.getMessage()); 
}
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}

vlw
Patrícia

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

Não está entrando nesse if?

if((nome != null) && (email != null)) 

Para enviar uma mensagem de sucesso faça:


request.setAttribute("msgSucesso","Cadastro efetuado com sucesso");

RequestDispatcher view = request.getRequestDispatcher("paginaDeSucesso.jsp");

view.forward(request, response);

Exatamente, este if.Queria fazer o tratamento de excessão neste if, pois caso os campos nome e email estejam em branco, não é permitido o cadastro.Aliás queria validar tb o cod, que por enquanto estou cadastrando também, mas não consegui valida-lo com (cod != null).

Código:

if((nome != null) && (email != null))


if(nome == null || "".equals(nome)) && (email == null || "".equals(email)) {

  //faça o tratamento aqui
  
}

Este código, só valida se o email e o nome estejam vazios, porém se somente o email estaja vazio, ele não atende,aparentemente,ele pula a verificação do email, já que a verificação do nome esta correta.Já coloquei ou || ao invés de &&, mas neste caso mesmo com o nome e email completados, ele não sai do tratamento do if.

if(nome == null || “”.equals(nome)) && (email == null || “”.equals(email)) {

//faça o tratamento aqui

}

Com ou || :

if(nome == null || “”.equals(nome)) || (email == null || “”.equals(email)) {

//faça o tratamento aqui

}

Você já debugou para ver como os parâmetros estão? Desculpe-me mas eu ainda não entendi o que você está querendo.

No primeiro post, esse if:

       if((nome != null) && (email != null)) 

só entrará se o nome e o email foram diferentes de null. Verifique via debug se os campos são diferentes de null.

Preciso validar se o e-mail ou nome estão em branco.Quando uso o &&, obrigatoriamente valido os dois, porém pelo que estou observando, se o nome foi digitado, ele não valida se o email foi digitado ou não.Já usei o ou || , porém, aparentemente fica preso no if, independente se a condição foi atendida ou não.

Então se você quer que pelo menos 1 não esteja nulo, utiliza o operador ||.

Consegui resulver da seguinte forma :

if (nome != “” && email != “”)
{

          c.inclui(p.getProfessor_Id(),p.getProfessor_Nome(),p.getProfessor_email()); 
           //   out.print("Cadastro efetuado com sucesso");// colocar mensagem dentro de popup 

response.sendRedirect(“principal.jsp”);

    } else{ 
           response.sendRedirect("cadastro_aluno.jsp"); }  
        //     out.print("Existem dados obrigatórios em branco!");// colocar mensagem dentro de popup 

   
   } 

vlw pela ajuda!