Olá desenvolvedores, o tutorial de hoje traz a criação do cadastro de telefone para o usuário. Trazendo conceitos de cardinalidade trabalharemos com o relacionamento entre tabelas de um para muitos (1:N)
O relacionamento do tipo um para muitos (1:N) é definido quando uma ocorrência de uma entidade pode se relacionar com várias ocorrências de outra entidade. Por exemplo, uma pessoa pode estar relacionada a vários números de telefone, mas um número de telefone só pode estar relacionado a apenas uma pessoa. Falamos um pouco mais sobre cardinalidades no tutorial “CREATE TABLE E CARDINALIDADES”.
É comum em um sistema que a partir de um cadastro sejam originados outros muitos registros ligados a este cadastro. Como por exemplo o cadastro de um usuário pode estar relacionado a mais de um número de telefone. Assim, é este relacionamento que trabalharemos neste tutorial.
CRIANDO CAMPO DE TELEFONE NO HTML
Na tela cadastroUsuario.jsp criaremos uma célula, que semelhante aos campos de Editar e Excluir receberá um ícone. Assim, ao clicar sobre o ícone os números de telefones referentes aquele usuário serão exibidos. Para o ícone você pode baixar qualquer imagem de telefone da internet e salvá-la na pasta WebContent >> resources >> img.
Mas atente-se, a servlet que este campo receberá será salvarTelefones, visto que agora a ação é de salvar telefones e não usuários. Entretanto, o parâmetro que esta ação irá receber é o parâmetro de usuário.
E na linha que recebe os títulos de cada coluna, atribua um nome para a coluna do telefone: <tr><th>Fones</th></tr>
CRIANDO A SERVLET SALVARTELEFONE
E do mesmo modo como procedemos para salvar os usuários, uma nova servlet deverá ser criada exclusivamente para salvar os telefones. Recapitulando as servlets são classes Java que funcionam como pequenos servidores estendendo as funcionalidades de um servidor. Ou ainda, você pode entende-la como uma interface para um web server. Assim elas proporcionam ao desenvolvedor a possibilidade de adicionar um conteúdo dinâmico a um servidor web.
Para criar a servlet salvarTelefones clique com o botão direito do mouse sobre o package servlet >> servlet. No painel chame-a TelefonesServlet e Next >> Next >> Finish.
Será preciso corrigir o mapeamento da servlet pelo nome que adicionamos no redirecionamento do HTML.
@WebServlet (“/salvarTelefones”)
O próximo o passo é instanciar o objeto DaoUusuario, este objeto poderá por exemplo ser usado para a recuperação de um usuário que desejamos exibir em tela.
private DaoUsuario daoUsuario = new DaoUsuario();
E quando o botão “salvar telefone” for clicado ele será capturado no doGet, que receberá o código do usuário cujo número de telefone desejamos salvar.
ENTENDENDO E CRIANDO SESSÕES
Porém para guardarmos estes dados no sistema, ficar com a tela aberta e podermos cadastrar os telefones e ainda ter a identificação do usuário, este código deverá ser movido para uma sessão. Entenda, cada pessoa terá sua própria sessão, ela é única para cada um. Assim, se 10 pessoas estiverem simultaneamente manipulando o sistema, teremos então dez sessões abertas.
Desse modo, como fazer para não perdermos a referência do usuário para quem um dado número de telefone está sendo registrado? Colocando-a dentro do objeto request, onde uma sessão será criada sempre que uma nova sessão for requisitada. Esta sessão “setará” o atributo usuário que foi selecionado na tela.
Antes, porém, buscamos o id e o nome do usuário na base de dados passando como parâmetro o objeto inteiro, dessa forma não precisaremos passar parâmetro por parâmetro. Na sequência devemos “setar” o atributo userEscolhido para requisição para que ele possa pegar os dados na tela. Lembrando que ainda estamos trabalhando dentro do doGet.
BeanCursoJsp usuario = daoUsuario.consultar(user);
request.getSession().setAttribute("userEscolhido", usuario);
Agora, ainda do lado as servlet, porém, no método doPost, no momento de salvar os dados deveremos pegar pela requisição o número e o tipo de telefone.
Então agora precisaremos de um RquestDispatcher para redirecionar para a tela de cadastro de telefone, uma requisição com o banco de dados, um feedback para o usuário e também uma view para disparar o redirecionamento. O nome do usuário passado por parâmetro será “setado” na página telefone.jsp, para ser exibido junto ao número do telefone.
IMPORTANTE: o bloco de código abaixo, bem como as linhas de código deverão estar envolvidos em um bloco try/catch.
EM POUCAS PALAVRAS
Então é isso, implementamos a servlet para o cadastro de telefones dos usuários cadastrados no sistema. O tutorial de hoje nos proporcionou exercitar ainda mais o desenvolvimento de uma servlet fazendo-a se comunicar com uma página JSP. Ah, e para acessar o tutorial que mostra o desenvolvimento do front-end dessa página de cadastro, clique aqui para ser redirecionado para o tutorial “JSP: CADASTRO DE TELEFONE”.