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

arrow_back Aula 14 - Desenvolvendo uma livraria virtual – Parte 3

Promovendo o reuso de cabeçalhos e rodapés de arquivos JSP II

Note que, embora o conteúdo replicado não seja muito grande, a quantidade de arquivos que o sistema tem pode ser razoavelmente grande, ou, pelo menos, suficiente para ocorrerem problemas durante as etapas de manutenção do sistema. Por exemplo, imagine que seja necessário atualizar alguma informação, como mudar de 2010 para 2015 o período de copyright mostrado no rodapé das páginas. Todas as páginas teriam que ser editadas para se realizar essa alteração.

Além do trabalho de ter que abrir todas as páginas e editar a mesma alteração, ainda corre-se o risco de esquecer-se de alterar algumas páginas e a informação de copyright ser mostrada corretamente em algumas páginas e erroneamente em outras. Nesse caso, as consequências dessa inconsistência de informação não seriam graves, mas imagine se a informação a ser alterada fosse o meio de contato com a empresa (telefone, endereço etc.). Alguns clientes poderiam visualizar e utilizar informação de contato inválida, levando a perda de clientes, oportunidades de negócio, vendas etc.

Agora que já visualizamos bem o problema e as suas consequências, vamos ver como podemos eliminar a duplicação de código mostrada. Uma alternativa que temos é a criação de um arquivo cabeçalho para inclusão do código que aparece no início dos arquivos JSP e de um arquivo de rodapé, contendo a parte final do código a ser também incluída nos arquivos JSP do sistema. O código-fonte desses dois arquivos são mostrados nas Listagens 1 e 2.

Como você pode notar, o conteúdo desses arquivos é exatamente igual ao conteúdo que é replicado em todos os arquivos JSP. Pode até parecer estranho para você ter um arquivo JSP que abre marcadores <html> e <body> sem os fechar ou vice-versa, mas isso fará sentido em seguida.

Listagem 1 - Código-fonte do arquivo cabecalho.jsp Listagem 2 - Código-fonte do arquivo rodape.jsp

Agora que temos os arquivos de cabeçalho e rodapé criados, esse conteúdo precisa ser removido dos arquivos JSP anteriormente criados, ou seja, dos arquivos livraria.jsp e catalogo.jsp. Muito cuidado ao fazer isso, ok? Não vá remover código a mais ou a menos! Deve ser removida apenas a parte inicial e final desses arquivos, cujo conteúdo já está contemplado pelos arquivos de cabecalho.jsp e rodape.jsp.

Muito bem. O próximo passo agora é fazer com que o conteúdo do arquivo cabecalho.jsp seja adicionado no início de todos os outros arquivos JSP do sistema, e que o conteúdo do arquivo rodape.jsp seja adicionado no final desses arquivos. Uma primeira forma de realizar isso é utilizar a diretiva de inclusão de conteúdo <%@ include %> em arquivos JSP. É como ter que colocar expressão a seguir em todos os demais arquivos JSP, onde ". . ." representa o conteúdo específico de cada arquivo:

O uso dessas instruções é responsável por incluir, no arquivo JSP, o conteúdo de cabecalho.jsp no início do arquivo e o conteúdo de rodape.jsp no final do arquivo. Note que ambos os arquivos estão sendo incluídos com o seu caminho absoluto (iniciando com “/”), ou seja, eles devem ser colocados diretamente na pasta WebContent. Se você não adicionar o caminho absoluto do arquivo que deseja incluir então ele será buscado na própria pasta do jsp que o está incluindo. Apesar de ser uma boa solução, essa alternativa demanda cuidado, pois precisamos colocar essas linhas em todos os arquivos do projeto.

Existe uma outra abordagem chamada de Web Fragments que permite que através de uma configuração no projeto você inclua de forma mais automática arquivos como o nosso cabeçalho e rodapé em várias documentos baseado em um padrão de URL. Não vamos utilizar Web Fragments no nosso projeto mas você pode estudar mais e ampliar seus conhecimentos no link https://blogs.oracle.com/swchan/servlet-30-web-fragmentxml.

Versão 5.3 - Todos os Direitos reservados