Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 06 - MVC, Servlets e JavaServer Pages

Elemento controle II

Para que o ContextListener que criamos seja executado automaticamente foi adicionado a anotação @WebListener antes da classe, como pode ser visto na Listagem 3. Uma outra forma de fazer isso é adicionar o seguinte trecho de código no arquivo web.xml da aplicação (não é necessário se você criou a classe com a anotação @WebListener):

Uma vez que garantimos a inicialização e destruição da referência ao sistema nos momentos corretos, nosso próximo passo é a implementação de um Servlet controlador, como mostrado no código da Listagem 4.

Listagem 4 - Servlet exercendo papel de controlador, dentro da arquitetura MVC

A classe ServletControlador atende tanto requisições através do método GET, como através do método POST. Na implementação do método doPost(), fazemos na linha 21 o acesso ao parâmetro que indica a ação a ser executada (request.getParameter("acao")), e, nas linhas 22-23, o acesso ao sistema através do contexto do Servlet (getServletContext().getAttribute("sistemaEncontros")). Baseado nesses dados, é trabalho do controlador verificar qual a ação requisitada e atuar de acordo com ela. No caso, temos uma sequência de comandos if/else if (linhas 25 a 39) que verificam quatro possíveis casos, cada um representando uma ação diferente:

  • Valor do parâmetro “acao” é igual a “cadastrar”
    • Deve-se montar a tela de cadastro de encontros. Para isso, basta redirecionar a requisição para o arquivo cadastro.jsp. Esse arquivo será apresentado na próxima seção dessa aula. O comando request.getRequestDispatcher(resposta).forward(request, response) é responsável por fazer com que a página de resposta seja montada pela página JSP, indicada na variável resposta.
  • Valor do parâmetro “acao” é igual a “confirmarCadastro”
    • Uma vez preenchido o formulário de cadastro, o mesmo será submetido para o servlet controlador, o qual construirá o objeto encontro (linha 28), pegará as informações do encontro através das chamadas ao método request.getParameter() (linhas 29 a 31) e adicionará no sistema o objeto criado (linha 33).
    • Em seguida, a lista de encontros registrados é colocada como atributo da requisição request.setAttribute() (linha 34). Essa informação, como veremos, será acessada pelo arquivo JSP a ser executado, indicado na linha 35 (listar.jsp).
  • Valor do parâmetro “acao” é igual a “listar”
    • Nesse caso, o arquivo JSP a ser executado é o listar.jsp, e a lista contendo os encontros registrados é passada como atributo da requisição (linhas 37).
  • Valor do parâmetro “acao” é diferente dos casos citados
    • A página index.jsp será apresentada (valor inicial da variável resposta definido na linha 24).

Lembrando que todo Servlet tem que estar referenciado no arquivo web.xml, caso não esteja se utilizando anotações, como visto na aula sobre Servlets. Como a Listagem 4 utiliza anotações essa referência não é necessária, mas caso não seja o caso seria necessário adicionar o seguinte código nesse arquivo:

Versão 5.3 - Todos os Direitos reservados