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

arrow_back Aula 13 - Desenvolvendo uma livraria virtual – Parte 2

Servlet controlador da livraria virtual

Seguindo o padrão MVC (Model-View-Controler), utilizaremos um Servlet como componente controlador e arquivos JSP como os componentes responsáveis por montar as páginas de resposta ao usuário.

O Servlet controlador da livraria virtual, de nome ServletControladorLivraria, é mostrado na Listagem 2. Esse Servlet implementa o método doGet() (linha 16) e utiliza o método doPost() (linha 43) apenas para redirecionar a requisição ao método doGet().

Na execução do Servlet controlador, é feito o acesso ao sistema da livraria virtual (linha 20) por meio do atributo de contexto, conforme demonstrado anteriormente. Também é feito um acesso à sessão do usuário (linha 22). Lembre-se de que o método getSession() cria uma sessão, caso ela não exista. Em seguida, nas linhas 24 a 28, o carrinho de compras é acessado ou criado e armazenado como atributo da sessão de nome “cart”, caso ele ainda não exista.

Por fim, as linhas 30 a 40 são responsáveis por processar e montar a resposta para as requisições dos clientes. Para facilitar esse trabalho, utilizaremos a seguinte estratégia:

  • As URLs de acesso ao sistema não possuirão extensão. Isso pode ser visto no seguinte exemplo http://localhost:8080/Livraria/livros/catalogo.
  • O caminho da URL será utilizado para descobrir qual o serviço a ser executado. Isso é feito na linha 30, onde o método getServletPath() da variável request é utilizado para recuperar parte da URL de acesso. No caso, a parte relativa ao caminho do Servlet: /livros/catalogo. Essa informação é armazenada na variável acaoSelecionada.
  • Dependendo da ação a ser executada (conteúdo da variável acaoSelecionada), uma determinada operação do sistema pode ser executada. Essas operações, no caso, serão apresentadas aos poucos e seu código será inserido logo após a linha 32.

O conteúdo da variável acaoSelecionada é utilizado, também, para definir o componente (arquivo JSP) responsável por montar a página de resposta. Isso é feito pela linha 34, onde usamos a convenção do nome e pasta onde se encontra o arquivo JSP de resposta igual ao conteúdo da variável acaoSelecionada (URL do Servlet) concatenada com a extensão .jsp.

Dessa forma, o acesso à URL http://localhost:8080/Livraria/livros/catalogo poderá resultar na execução de uma operação do sistema identificada pelo final da URL (/livros/catalogo) e sua resposta será montada de acordo com o arquivo catalogo.jsp encontrado na pasta de nome livros.

Listagem 2 - Código-fonte do Servlet controlador da livraria virtual

O arquivo livraria.jsp será o arquivo responsável por montar a tela inicial do sistema, a qual é mostrada na Figura 1. Ele deve ser criado dentro de uma pasta chamada livros. O código JSP desse arquivo é mostrado em seguida, na Listagem 3. Ele começa com a inclusão da taglib c, na linha 1, ou seja, você precisa adicionar a jstl-1.2.jar no WebContent/WEB-INF/lib, como visto em anteriormente). Seu código inclui, também, o uso de uma imagem chamada livro.gif, a qual é impressa antes e depois do texto Minha Livraria Virtual. Para implementar essa página, você deve escolher uma imagem que achar adequada. Faça uma busca na internet. Uma sugestão é usar o serviço de busca de imagens do Google (http://images.google.com.br).

Tela inicial do sistema Livraria Virtual Listagem 3 - Código JSP do arquivo responsável por montar a tela inicial mostrada na Figura 1

Já na linha 30, temos o uso do marcador , o qual é responsável por montar a URL correta para o caminho /livros/catalogo. Por exemplo, se seu contexto web tiver o nome Livraria, o acesso a essa página deve ser http://localhost:8080/Livraria/livros/catalogo. Sendo assim, o valor atribuído à variável URL, criada pelo marcador , terá valor igual a /Livraria/livros/catalogo. Isso torna o sistema independente do nome a ser utilizado no contexto web.

A URL armazenada na variável url é, então, utilizada na linha 32 com o objetivo de criar a referência para a página de compra de livros. Note o acesso à variável url, adicionado do texto "?Add=". Isso fará com que a URL gerada seja, na verdade, igual a /Livraria/livros/catalogo?Add=. O uso desse parâmetro Add passado com valor vazio será visto mais adiante, quando estudarmos o código do arquivo catalogo.jsp

Versão 5.3 - Todos os Direitos reservados