Servlets e JSP Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO - UFJF Java EE ◦O Java EE (Java Enterprise Edition) consiste de uma série de especificações bem detalhadas para prover uma infraestrutura para o desenvolvimento de sistemas Web. ◦Usa um modelo de aplicação multi-camadas distribuídas ou multi-tier. Especificações do Java EE ◦ JavaServer Pages (JSP), Java Servlets, Java Server Faces (JSF) – trabalhar para a Web ◦ Enterprise Javabeans Components (EJBs) e Java Persistence API (JPA) – objetos distribuídos, clusters, acesso remoto a objetos, etc) ◦ Java API for XML Web Services (JAX-WS), Java API form XML Binding (JAX-B) – trabalhar com arquivos .xml e webservices. ◦ Java Autenthication and Authorization Service (JAAS) – API padrão do Java para segurança ◦ Java Transaction API (JTA) – Controle de Transação no Contêiner ◦ Java Message Service (JMS) – troca de mensagens assíncronas ◦ Java Naming and Directory Interface (JNDI) – espaço de nomes e objetos ◦ Java Management Extensions (JMX) – administração da aplicação e estatística Exemplo de Aplicação Multi-Camadas ◦ Camada de Apresentação (navegador) ◦ Camada Lógica de Negócio (aplicação que reside no servidor Web) ◦ Camada de Armazenamento (o banco de dados com os dados da aplicação) ◦ As camadas estão separadas, podem inclusive estarem hospedadas em computadores diferentes. Servlets ◦Resposta primária do Java para adicionar funcionalidades aos servidores. ◦Ler dados contidos nas requisições passadas ao servidor e gerar uma resposta dinâmica. ◦São classes Java. ◦Produzem saída imprimindo caracter como cadeias no fluxo de saída, neste caso a resposta HTTP. Index.jsp ConnectionFactory Nova Tabela - Usuario Usuário - javabean Organização do projeto UsuarioDAO UsuarioDAO Criando um Servlet Com o botão da direita no pacote clique em Novo -> Sevlet. Importante: marque a opção Adicionar informação ao descritor de implementação (web.xml). Esse passo registra o servlet, assim ele ficará visível no servidor. Sem marcar essa opção na janela teremos que registrar o Servlet manualmente. Depois clique em finalizar. Criando o controle do login Dentro do Servlet procure os métodos doGet e doPost, eles são acessados dependendo do tipo de método de envio de arquivo foi feito. Se <form action=“servlet” method=“get”> o método a ser executado será doGet no Servlet Se <form action=“servlet” method=“post”> o método a ser executado será doPost Na criação do Servlet a estrutura da classe já vem montada. Ambos os métodos, doGet e doPost apontam para o método processRequest. Execução Execute o projeto e fazendo login com o usuário que você registrou. Se ele reconhecer dará um ERRO, pois ele tentará exibir a página /menu.jsp, mas não a criamos ainda. Se ele não reconhecer o login dará um ERRO pois ele tentará exibir a página /erro.jsp. Linhas Semântica 36 e 37 Criação do objeto Usuario que será preenchido com o login e senha recebidos do formulário. O objeto dao possui o método de login, ele precisa de um objeto usuário para executar. 39 e 40 Recepção das variáveis, que vem junto com o objeto Requisição 44 45 e 46 Execução do método dao.logar(us), receberá true caso o usuário esteja registrado e false caso contrário. Registro de uma variável de sessão chamada login que conterá o login do usuário 47 O algoritmo irá abrir a página menu.jsp 48 O algoritmo passará para a página menu.jsp as informações de Requisição e Resposta 52 Como o login deu errado o algoritmo invalida a sessão 53 O algoritmo irá abrir a página erro.jsp menu.jsp lista.jsp Melhorando.... cadastrar.jsp Crie um arquivo chamado cadastrar.jsp dentro da pasta “Páginas Web”. Deverá ter a seguinte aparência: Servlet CadastroProduto Servlet AlterarProduto O Servlet AlterarProduto pega os dados do produto para preencher o formulário. Assim com o formulário e os dados preenchidos o usuários poderá modificar a informação desejada. Na linha 39 do processRequest da imagem anterior colocamos dentro do objeto request o nosso objeto Produto preenchido com os dados do produto, perceba que utilizamos o método setAttribute. O primeiro argumento de setAttribute é como o atributo será chamado e o segundo argumento é a informação que será enviada com o nome do primeiro argumento. O nome do atributo servirá para referenciá-lo. Percebam que utilizamos um método chamado buscar do ProdutoDAO (linha 38) que recebe como parâmetro o id do produto e retorno um objeto do tipo Produto, então crie esse método dentro de ProdutoDAO. alterar.jsp Observações A linha 19 é importante, nela colocamos o id do produto, que será utilizado no servlet AlterarProduto2 para identificar o produto que terá sua informação modificada. Agora é com você 1. Com base no que vimos até aqui crie o servlet AlterarProduto2 que irá pegar os dados do formulário alterar.jsp e alterar a informação correspondente ao campo id do formulário alterar.jsp. 2. Com base no que vimos crie o servlet ExcluirProduto, lembre-se de solicitar confirmação de exclusão antes de excluir o produto. Seu Projeto 1. Qual a sua ideia para o projeto final da disciplina? 2. Elabore-a criando o DER, Diagrama de Caso de Uso, Diagrama de Classe e o Design Gráfico da Página principal. 3. A partir do Diagrama de Caso de Uso implemente as classes. 4. Crie as classes DAO. 5. Crie o HTML a partir do Design Gráfico.