Faculdade de Computação Programação para Internet Trabalho Servlets Prof. Flávio de Oliveira Silva, M.SC. 1. Casos de Uso A aplicação consiste dos casos de uso mostrados na Figura 1: uc Contacts Application Nov o Usuario Cadastrar Novo Usuario Realizar Login Usuario Gerenciar Contatos Figura 1 Casos de Uso 1.1 Cadastrar Novo Usuario Permite que um novo usuário seja cadastrado na aplicação para a gestão dos contatos telefônicos. O cadastro será realizado em duas partes. Na primeira parte um novo usuário deverá informar seu e mail de login e a sua senha. A senha deverá ser informada duas vezes a fim de que o usuário possa certificar do valor escolhido. o Caso exista alguma diferença entre os dois valores de senha informados a aplicação deverá ser direcionada para a página de erro informando a seguinte mensagem: "Senha não informada corretamente. Digite novamente informando o mesmo valor!". Neste caso o código de erro que deve aparecer na página de erro será o número três (3). Assim que o usuário confirmar o cadastro será necessário avaliar se não existe nenhum outro usuário já cadastro com este e mail. o Em caso de erro a aplicação deverá ser direcionada para a página de erro que deverá mostrar a seguinte mensagem: "Email já cadastrado! Informe um e mail único." Neste caso o código de erro que deverá aparecer na página de erro será o número quatro (4). Na segunda parte do cadastro o novo usuário deverá digitar as seguintes informações: Nome Completo ; Endereço; Complemento; Cidade; Estado e CEP. Assim que for confirmado será feito o cadastro no banco de dados deste novo usuário, o mesmo estará logado na aplicação e será então encaminhado para a página responsável onde é possível realizar a gestão dos contatos.
1.2 Realizar Login Permite que um usuário já cadastrado possa ter acesso à aplicação. Para isto o mesmo deverá informar o seu login, que é um identificador único e senha. Assim que o usuário informar estes dados deverá ser verificado se o login informado está realmente cadastrado no banco de dados. O login corresponde ao e mail informado no cadastro. o Caso o login não exista no banco de a aplicação deverá ser direcionada para a página de erro informando a seguinte mensagem: "Usuário Não cadastrado". Neste caso o código de erro que deve aparecer na página de erro será o número um (1). Além disso, também será verificado no banco de dado se a senha informada é igual àquela que está armazenada. o Caso a senha informada seja incorreta a aplicação deverá ser direcionada para a página de erro informando a seguinte mensagem: "Senha Inválida!". Neste caso o código de erro que deve aparecer na página de erro será o número dois (2). Caso o login seja válido e a senha esteja correta o usuário deverá ser encaminhado para a página onde é possível realizar a gestão dos contatos. 1.3 Gerenciar Contatos Assim que entrar na página para gestão dos contatos, todos os contatos existentes no banco de dadas serão mostrados. Cada contato possui um nome e um telefone associado. Na parte superior desta página deverá existir um formulário onde será possível informar um novo contato, ou seja, seu nome e seu telefone. Neste caso deverá existir a opção para inserir um novo contato. Ao lado de cada contato devem existir duas opções uma para excluir um contato e outra para alterar os dados de um contato. Caso a opção excluir seja utilizada o contato deverá ser removido do banco de dados uma todos os contatos restantes no banco de dados serão mostrados, similar ao momento em que a página é carregada inicialmente. Caso a opção alterar seja utilizada os dados do contato deverão ser carregados para o formulário existente no inicio da página e neste caso a opção no formulário será mostrada como alterar. Caso o usuário altere os dados e selecione esta opção o conteúdo será modificado no banco de dados.
A Figura 2 mostra o layout básicos das páginas web existentes na aplicação e as transições entre as mesmas. Email Senha Home (index.html) Login Desejo me Cadastrar Novo Usuario register.html Email Senha Confirme Senha Prosseguir Cadastro Concluir Cadastro registerend.html user@domain, digite sua senha Nome Completo Endereço Complemento Cidade Estado CEP Concluir Cadastro Email já cadastrado ou Senhas não idênticas ErrorPage Login Inexistente ou Senha Inválida StatusCode - Message Contatos.html Novo Usario registrado e logado Nome Telefone Incluir Login e Senha Corretos Nome Telefone aaaa 1111 editar excluir bbb 2222 editar excluir ccc 333 editar excluir Figura 2 Visão Geral das Páginas
2. Projeto da Solução A aplicação acima será construída utilizando Servlets. Neste caso cada caso de uso será implementado por um diferente Servlet. Além disso, para o cadastro de um novo usuário será necessário um Servlet para cada um dos passos existente no processo de cadastro. Finalmente a aplicação conterá o servlet que será necessário por exibir a página de erro. O diagrama abaixo mostra os Servlets existentes o relacionamento entre os mesmos. class Contacts - Servlets ContactsServlet HttpServ let LoginServ let RegisterServlet RegisterEndServlet ErrorPageServlet
2.1 LoginServlet Este servlet possui o comportamento descrito no item 1.2. Para realizar este comportamento o servlet utilizará as seguintes informações relacionadas com PARAMÊTROS e ATRIBUTOS: O diagrama de sequência mostra o comportamento do Servlet LoginServlet sd LoginServ let LoginServlet ServletContext HttpRequest HttpSessi on RequestDispatcher Tomcat init getinitparameter("dburl") :String dburl= :String getinitparameter("driverclass") :String driverclass= :String getinitparameter("password") :String password= :String getinitparameter("user") :String user= :String new DBPool(driverClass,dbUrl,user,password) DBPool setattribute("dbpool",pool) doget(request,response) getsession(false) session= :HttpSession alt [session!= null] getattribute("userregistered") :User userregistered= :User alt [userregistered!= null] getrequestdispatcher("/contacts") :RequestDispatcher rd= :RequestDispatcher forward(request,response)