Desenvolvimento de Aplicações Web com Java - Servlets e JSP Autor: Juliano Marcos Martins
Conceitos básicos Servidor de aplicação: WebSphere, Tomcat, Jboss Servlets e JSP Nosso ambiente: Banco DB2 WebSphere CE Eclipse Ganimede
Servlet Definição: Aplicação java executada no SERVIDOR Tarefas exemplo: Ler dados enviados por um cliente (usuário) Obter outras informações sobre a requisição contidas no HTTP request (cookies, host name,...) Gerar os resultados (chamadas CORBA/RMI, legacy systems,..) Formatar os resultados em um documento (gerar páginas) Determinar os parâmetros apropriados do HTTP response (dizer ao browser que tipo de doc. está sendo retornado) Enviar o documento de volta ao cliente São carregados a partir de um Servidor de Aplicação Na inicialização do servidor Quando utilizado pela primeira vez Quando o tempo de recarga foi atingido
Portabilidade Possui um conjunto de APIs independentes de plataforma que utilizam diversos recursos de backend Escreva uma vez execute em qualquer lugar Javabeans Objetos reutilizáveis Segurança É possível restringir o acesso a aplicação É executado em um contexto de um servidor Performance É executado no mesmo contexto do servidor de aplicação São multi-thread Escalável Uma vez executado pode permanecer em memória Mantém sessões entre requisições HTTP Pode ser pré-carregado ou carregado de acordo com a demanda Servlet
Chamada de um Servlet
API e Ciclo de vida de um Servlet A primeira vez que um servlet é carregado por um serviço, seu método init é executado. O servlet trata os acessos simultâneos (concorrência) dos clientes, disparando para cada cliente uma thread, a qual chama o método service. Imediatamente antes do servlet ser descarregado, o método destroy é executado.
Http Servlet Responsável por tratar requisições HTTP Utiliza dois métodos específicos do protocolo HTTP: doGet trata requisições GET doPost trata requisições POST (formulários HTML) Subclasses devem sobreescrever estes métodos e podem sobreescrever os métodos init e destroy Os métodos doGet e doPost são chamados a partir do método service. Os métodos service, doGet, doPost, tem dois parâmetros : HttpServletRequest provê acesso a informações vindas da requisição, isto é, parâmetros, informações armazenadas na sessão HttpServletResponse provê acesso aos serviços e ao canal utilizado como resposta Basicamente servlets recebem uma requisição e devolvem uma resposta ao cliente.
HttpServletRequest Objeto responsável por encapsular métodos e propriedades de uma requisição HTTP. Através deste objeto é possível obter informações de formulários, atributos, informações sobre variantes do protocolo da requisição e é possível manipular (obter e inserir) informações contidas na sessão. Obtém as seguintes informações: Cabeçalho de requisição, número de bytes de informção, Tipo de conteúdo. Caminho do Servlet Nível de segurança do cliente Parâmetros Para obter informações: Com servlets Java, toda a análise de um formulário de dados é feita automaticamente: getParameter() getParameterNames() getParameterValues()
HttpServletResponse Representa o canal de comunição utilizado para gerar a resposta ao cliente. Permite informar ao cliente erros ou respostas geradas a partir de uma requisição. Determina o tipo de conteúdo que será retornado ao cliente. É possível redirecionar o controle e a execução da requisição para outra aplicação. Métodos: getWriter() setContentType(String tipo) sendRedirect(String url)
Exemplo 1 HelloWorld.java TresParametros.java index.html banco.java web.xml
Exercício Criar uma página html chamada Cadastro de clientes e um servlet que vai ler todos os parametros da página e exibir os dados. O servlet deve exibir um botão voltar. Se o cliente for homem, o texto deve ser em Azul, se o cliente for Mulher, o texto deve ser em vermelho.
Exercício Utilizando o banco.java e o tresparametros como modelo, criar um servlet que insira no banco de dados um cliente.
Contextos
Estrutura da aplicação WEB
Mapeamento de Servlets Exercício: Alterar o alias do servlet que manipula o formulário de clientes e no formulario fazer a chamada para o novo alias.
URL
Sessões Exemplo: sessao.java
Tomcat CATALINA_HOME
JSP - Java Server Pages Combinação de : conteúdo estático (expresso em HTML) conteúdo dinâmico (expresso através de tags JSP + código Java) São publicadas no servidor de aplicações da mesma forma que páginas estáticas Servlet é um componente web que gera conteúdo dinâmico. Fluxo do processo Cliente-Servidor:
JSP + Servlets
JSP - Exemplos horario.jsp exemplo_jsp.jsp banco.jsp
JSP – Exercício prático Criar uma página utilizando JSP para efetuar cadastro de clientes
JSP - Requisição