Criando um único Servlet

7 respostas
E

Tenho um exercício, para solucionar e não estou conseguindo obter êxito.
Gostaria de obter auxilio, para a solução do mesmo.

Tenho 4 arquivos (ServletAlt.java, ServletCon.java, ServletExc.java, ServletCad.jav), para fazer consulta, alteração, exclusão e cadastramentos de dados.

A primeira parte é: Criar as customizações de necessárias de modo a existir apenas um index.jsp e apenas um único servlet que execute as operações crud (create, read, update, delete), sobre o usuáriobean.

A segunda parte é: Substituir a classe printwriter pelo padrão dispatcher e fazer as atualizações necessárias na pagina index.jsp

ServletCad.java

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ServletCad extends HttpServlet {
       
      protected void doPost(HttpServletRequest rq, HttpServletResponse rp)throws ServletException, IOException {
      try{
            Long var_CPF=Long.parseLong(rq.getParameter("txt_CPF"));
            String nome=rq.getParameter("txt_Nome");
            UsuarioBean user=new UsuarioBean();
            DAO cmd=new DAO();
            boolean sucesso=cmd.cadastrar(user);
            PrintWriter saida=rp.getWriter();
            if(sucesso)
            {
                saida.println("<script> alert('OK') ;"+
                        "parent.FormDados.txt_CPF.value='';" +
                        "parent.FormDados.txt_Nome.value='';" +
                        "parent.FormDados.txt_CPF.focus();</script>");
            }
            else{
                saida.println("<script> alert('Erro');</script>");
            }
      }
          catch (Exception e){}
      }
}

ServletCon.java

public class ServletCon extends HttpServlet {
       
      protected void doPost(HttpServletRequest rq, HttpServletResponse rp)throws ServletException, IOException {
      try{
            Long var_CPF=Long.parseLong(rq.getParameter("txt_CPF"));
            DAO cmd=new DAO();
           UsuarioBean user=cmd.concultar(var_CPF);
            PrintWriter saida=rp.getWriter();
            if(user!=null)
            {
                saida.println("<script>"+
                        "parent.FormDados.txt_Nome.value=;"+
                        user.getNome()+";"+
                        "parent.FormDados.txt_CPF.focus();</script>");
            }
            else{
                saida.println("<script>Alert('Erro')</script>");
            }
      }
          catch (Exception e){}
      }
}

ServeltAlt.java

public class ServletAlt extends HttpServlet {
       
      protected void doPost(HttpServletRequest rq, HttpServletResponse rp)throws ServletException, IOException {
      try{
            Long var_CPF=Long.parseLong(rq.getParameter("txt_CPF"));
            String nome=rq.getParameter("txt_Name");
            UsuarioBean user=new UsuarioBean();
            user.setCpf(var_CPF);
            user.setNome(nome);
            DAO cmd=new DAO();
            boolean sucesso=cmd.alterar(user);
            PrintWriter saida=rp.getWriter();
            if(sucesso)
            {
                saida.println("<script>ALERT('OK');"+
                        "parent.FormDados.txt_CPF.value=;"+
                        "parent.FormDados.txt_Nome.value=;"+
                        "parent.FormDados.txt_CPF.focus();</script>");
            }
            else{
                saida.println("<script>Alert('Erro')</script>");
            }
      }
          catch (Exception e){}
      }
}

ServletExc.java

public class ServletExc extends HttpServlet {
       
  protected void doPost(HttpServletRequest rq, HttpServletResponse rp)throws ServletException, IOException {
  try{
      Long var_CPF=Long.parseLong(rq.getParameter("txt_CPF"));
          DAO cmd=new DAO();
             boolean sucesso=cmd.excluir(var_CPF);
             PrintWriter saida=rp.getWriter();
             if(sucesso)
             {
             saida.println("<script>ALERT('OK');"+
                   "parent.FormDados.txt_CPF.value=;"+
                   "parent.FormDados.txt_Nome.value=;"+
                   "parent.FormDados.txt_CPF.focus();</script>");
             }
           else{
            saida.println("<script>Alert('Erro')</script>");
            }
      }
      catch (Exception e){}
      }
}

Desde já agradeço a atenção de vocês. Qualquer orientação será muito bem vinda.

Obrigado.

7 Respostas

Giulliano

a primeira coisa é criar apenas uma servlet.

Dentro dela vc vai precisar receber um parametro se o usuário esta consultando, alterando ou inserindo.

E com esse parametro em mãos vc faz um IF e executa o que foi pedido.

agostinho

eh como Giulliano falou.

vc cria um contralador q recebe as requisicoes e delega p/ tratar de acordo com a entrada…

veja

http://www.guj.com.br/posts/list/97719.java

Rodrigo_Rocha_de_Mor

Vei, na apostila da Caelum de Java Web tem um exemplo bem fera de como implementar seu próprio MVC, sem utilizar nenhum framework…
Em síntese é o que vc precisa, pq ele mapeia apenas um Servlet (Control) que será responsável por carregar a classe de negócio de acordo com uma condição/parâmetro!

Vale a pena conferir!

[]'s

E

Srs. Muito obrigado pelas informações…

Na tentativa de fazer um unico servlet, desenvolvi este monstrinho. Alguém pode me auxiliar, para melhorar o mesmo… ? será que isso é funcional?

Abraços…

public class NovoServlet extends HttpServlet {
    
    private UsuarioBean user;
    private boolean cadastrar;
    private boolean alterar;
    
    protected void doPost(HttpServletRequest rq, HttpServletResponse rp)throws ServletException, IOException {
        try{
            long var_CPF=Long.parseLong(rq.getParameter("txt_CPF"));
            DAO cmd=new DAO();
            
            boolean excluir=cmd.excluir(var_CPF);
            boolean cadastrar=cmd.cadastrar(user);
            boolean alterar=cmd.alterar(user);
            UsuarioBean userConsulta=cmd.concultar(var_CPF);
            
            PrintWriter saida=rp.getWriter();
            String nome=rq.getParameter("txt_Nome");
            UsuarioBean user=new UsuarioBean();
            
            user.setCpf(var_CPF);
            user.setNome(nome);
            
            String verifica = "x";
//Para Excluir
            if (verifica=="excluir"){
                if(excluir){
                    saida.println("<script>ALERT('OK');"+
                            "parent.FormDados.txt_CPF.value=;"+
                            "parent.FormDados.txt_Nome.value=;"+
                            "parent.FormDados.txt_CPF.focus();</script>");
                } else{
                    saida.println("<script>Alert('Erro')</script>");
                }
            }
//Para Cadastrar
            if (verifica=="cadastrar"){
                if(cadastrar) {
                    saida.println("<script> alert('OK') ;"+
                            "parent.FormDados.txt_CPF.value='';" +
                            "parent.FormDados.txt_Nome.value='';" +
                            "parent.FormDados.txt_CPF.focus();</script>");
                } else{
                    saida.println("<script> alert('Erro');</script>");
                }
            }
//Para Alterar
            if (verifica=="alterar"){
                if(alterar) {
                    saida.println("<script>ALERT('OK');"+
                            "parent.FormDados.txt_CPF.value=;"+
                            "parent.FormDados.txt_Nome.value=;"+
                            "parent.FormDados.txt_CPF.focus();</script>");
                } else{
                    saida.println("<script>Alert('Erro')</script>");
                }
            }
//Para Consultar
            if (verifica=="consultar"){
                if(userConsulta!=null) {
                    saida.println("<script>"+
                            "parent.FormDados.txt_Nome.value=;"+
                            user.getNome()+";"+
                            "parent.FormDados.txt_CPF.focus();</script>");
                } else{
                    saida.println("<script>Alert('Erro')</script>");
                }
            }
        } catch (Exception e){}
    }
}

Obs: Não esta dando erro, mas desconfio que o mesmo não funciona… estou sem o programa para testar.

[ ]'s

Rodrigo_Rocha_de_Mor

Fiii,
me desculpe, mas acho que vc tem que rever sua lógica…

E da uma olhada no link que eu te passei por que o exemplo deles é excelente!

[]'s

Giulliano

na verdade seria algo do tipo:

public class Main extends javax.servlet.http.HttpServlet implements
	javax.servlet.Servlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
     
	String acao= request.getParameter("acao");
     	System.out.println("LOG: "+acao);
	
                if(acao.equal("INCLUIR")){

                   DAO d = new DAO().incluir(usuario);

                }else if(acao.equal("ALTERAR")){

                   DAO d = new DAO().alterar(usuario);

                }
                
                String url = "./suaPagina.jsp"
     	RequestDispatcher rd = this.getServletContext().getRequestDispatcher(url);
	rd.forward(request, response);
     	
    }  
}
E

Feito (depois divulgo a correção e/ou opção do professor).
Vlw pessoal e obrigado pela ajuda.

Obs: Gostei da apostila.

public class UsuarioServlet extends HttpServlet {

    protected void service(HttpServletRequest request,HttpServletResponse response) throws ServerException,   IOException, ServletException   {

      String opt = request.getParameter("opcao");


       UsuarioBean userBean = new UsuarioBean();

       userBean.setNome(request.getParameter("txt_nome"));
       userBean.setCpf(request.getParameter("txt_cpf"));

      if (opt.equals("1")) {
            try {


           UsuarioDAO dao = new UsuarioDAO();

                dao.cadastrar(userBean);
           
                
           RequestDispatcher rd = request.getRequestDispatcher("usuario_cadastrado.jsp");
		             rd.forward(request,response);
                
            
            } catch (SQLException ex) {
                ex.printStackTrace();
            }

           
        }
        else if(opt.equals("2")) {
            try {


           UsuarioDAO dao = new UsuarioDAO();
           UsuarioBean  x       =  dao.consultar(userBean.getCpf());
         

           System.out.print("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + x.getNome());
           System.out.print("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" + x.getCpf());
        
           
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
              
        }

        else if(opt.equals("3") ){
            try {

                UsuarioDAO dao = new UsuarioDAO();
                dao.excluir(userBean.getCpf());
            
            
            } catch (SQLException ex) {
                ex.printStackTrace();
            }

            }
        else if (opt.equals("4") ){
            try {


                UsuarioDAO dao = new UsuarioDAO();
                UsuarioBean usuarioBean    =   dao.alterar(userBean);
                   
                        
            } catch (SQLException ex) {
                ex.printStackTrace();
            }


           
            }
        }
    }
Criado 2 de setembro de 2008
Ultima resposta 11 de set. de 2008
Respostas 7
Participantes 4