Olá desenvolvedores, na continuação do tutorial DAO & BANCO DE DADOS, hoje teremos nosso olhar mais voltado para a servlet. No tutorial “SERVLET: CADASTRO DE TELEFONE” falamos sobre a importância e o papel da servlet em um sistema. Então, se ainda tem dúvidas clique aqui para ser redirecionado para o tutorial.

Desse modo, tendo em mente que as servlets entre outras coisas nos permite adicionar um conteúdo dinâmico a um web server, iremos, atribuir este dinamismo trabalhando com o objeto DAO – Data Access Object junto as servlets.

Assim sendo, de volta a servlet TelefonesServlet’’.java começaremos a implementação instanciando o objeto DAO.

Private DaoTelefones daoTelefones = new DaoTelefones();

Após termos instanciado o objeto DAO, no método doPost setaremos os atributos do objeto e salvar.

Após salvar os dados iremos por meio do RequestDispatcher redirecionar para a mesma tela de telefone. Mas será preciso listar os dados. Porém neste caso existe uma peculiaridade, listaremos os dados pertinentes ao cadastro de telefone, sim, mas passando o usuário corrente, ou seja, serão listadas as informações apenas do usuário que estiver sendo editado.

E ainda no doPost a partir de onde instanciamos o objeto BeanCursoJSP todo o bloco de código até a View.forward(request, response) deverá estar envolvido em um bloco try. Na sequência o bloco catch implementa a exceção.

Agora é preciso setar os atributos, visto que irá retornar a resposta para a mesma tela, assim a tela ficará pronta para receber mais um telefone. Desse modo, antes do RequestDispatcher fazer o redirecionamento, vamos “setar” os atributos, passando o objeto inteiro do usuário corrente.

request.getSession().setAttribute(“userEsclhido”, beanCursoJsp);
request.setAttribute("userEscolhido", beanCursoJsp);

TESTANDO A APLICAÇÃO

Recapitulando, quando o botão de salvar for clicado o objeto que está na sessão será recuperado, este objeto é o usuário. Dessa forma pegaremos todos os dados do cadastro de telefone e os atribuiremos para o objeto que desejamos salvar. E então estes dados serão salvos e novamente colocados na sessão como um atributo de request, e então é redirecionado para a tela Telefones.jsp e colocado na lista de telefones para carregar na tela.

Testando a aplicação, e vale lembrar a vocês de sempre verificarem se os dados estão sendo guardados no banco de dados corretamente.

Mas para que os dados cadastrados sejam listados junto com o carregamento da página é necessário inseri-los e invocar no doGet onde a servlet de telefones é invocada. Assim quando o usuário for colocado em edição os telefones relacionados a ele serão carregados.

Request.setAttribute(“telefones”,daoTelefones.listar(usuario.getId());

E para que você possa se orientar, visto que mesmo que esta implementação tenha sido dividida em uma série de tutorias onde o cadastro de telefones foi feito passo a passo, por se tratar de conceitos ainda novos para quem está iniciando, é fácil ficar um pouco perdido. Assim, veja abaixo como ficou o método do doGet.

IMPLEMENTANDO O DELETE

No Tutorial JSP: “PÁGINA DE CADASTRO DE USUÁRIO” temos implementado dentro de um forEach o botão excluir.

Agora precisamos fazê-lo funcionar, e para isso precisamos diferenciar o código do excluir da página cadastroUsuario.jsp.

Dessa forma, na página de cadastro de usuários passaremos um parâmetro de ação que será igual a addFone.

Dessa forma se o parâmetro passado for igual a addFone, todo o bloco de código do doGet será executado. Todo o bloco de código que está funcionando estará dentro do laço de decisão if.

Por outro lado, se não, se o parâmetro de ação for igual a deleteFone, o parâmetro foneId recebe a requisição e o telefone é deletado.

E agora os números de telefones do usuário precisarão ser carregados desse modo, novamente utilizaremos o RequestDispatcher para carregá-los. O que ele tem que fazer é listar os telefones de todos os usuários em edição menos o que foi deletado, desse modo ele receberá o id do usuário que está na sessão.

EM POUCAS PALAVRAS

Trouxemos neste tutorial a implementação da servlet do cadastro de telefone do usuário. E trata-se de uma implementação rica em detalhes e considerações, tentei aqui detalhar o máximo para você de forma a facilitar a compreensão. Assim, em caso de dúvidas, acione o nosso suporte ou a comunidade, mas antes sugiro que reveja as aulas, refaça a sua implementação e leia os tutorias, empenhe tempo em entender o que está sendo desenvolvido. Eu fico por aqui e nós nos vemos no próximo tutorial.