Projetos da Web Dinâmicos e Aplicativos

Há dois tipos de projeto da Web: dinâmico e estático. Os projetos da Web dinâmicos podem conter recursos J2EE dinâmicos, como servlets, arquivos JSP, filtros e metadados associados, além de recursos estáticos, como imagens e arquivos HTML. Os projetos da Web estáticos contêm somente recursos estáticos. Quando você cria projetos da Web, pode incluir bibliotecas de tags CSS (Cascading Style Sheets) e JSP (para projetos da Web dinâmicos), para que você possa iniciar o desenvolvimento com um conjunto mais rico de recursos do projeto.

Os projetos da Web dinâmicos são sempre incorporados em projetos de Aplicativos Corporativos. O assistente utilizado para criar um projeto da Web dinâmico também criará um projeto EAR (Enterprise Application), se ainda não existir. O assistente também atualizará o descritor de implementação application.xml do projeto EAR especificado para definir o projeto da Web como um elemento de módulo. Se você estiver importando um arquivo WAR, em vez de criar um novo projeto da Web, o assistente para Importação de WAR solicitará que você especifique um projeto da Web, que já requer um projeto EAR.

As convenções J2EE podem representar despesas gerais adicionais se você desejar somente criar um aplicativo da Web estático baseado no conteúdo, que não contém arquivos dinâmicos, como arquivos ou servlets JSP. Nesse caso, quando for necessário somente o projeto da Web mais básico, será possível utilizar o tipo de projeto da Web estático (consulte Projetos da Web Estáticos). Observe que projetos da Web estáticos podem ser convertidos em projetos da Web dinâmicos, selecionando-se Converter em um Projeto da Web Dinâmico, no menu menu Projeto.

O modelo J2EE, e mais especificamente a Especificação 2.3 do Servlet Java da Sun Microsystems, define uma estrutura de diretório de aplicativos da Web que especifica o local dos arquivos de conteúdo da Web, os arquivos de classe, os caminhos de classe, os descritores de implementação e os metadados de suporte. A hierarquia de projetos da Web espelha a hierarquia de aplicativos da Web criada de um projeto. No ambiente de trabalho, é possível utilizar o assistente Novo Projeto da Web para criar um novo projeto da Web.

A pasta principal do projeto contém todos os objetos de desenvolvimento relacionados a um aplicativo da Web. A pasta do conteúdo da Web contém os elementos do projeto necessários para criação de um aplicativo da Web. Essa estrutura de pasta mapeia para a estrutura WAR (Web Application Archive) definida pela Sun Microsystems. Os seguintes elementos padrão estão localizados na hierarquia de pasta do projeto da Web:
Nota: Na visualização Explorador de Projetos, os projetos da Web são filtrados nos nós de pasta para customizar a exibição de recursos da Web para fácil gerenciamento durante o desenvolvimento. Para obter informações sobre a estrutura filtrada, consulte Visualização Explorador de Projetos.
Descritor de Implementação da Web
O descritor de implementação do aplicativo da Web padrão (o arquivo web.xml).
JavaSource
Contém o código-fonte Java para classes, beans e servlets. Quando esses recursos são incluídos em um projeto da Web, eles são automaticamente compilados e os arquivos gerados são incluídos no diretório WEB-INF/classes. O conteúdo do diretório de origem não é incluído nos arquivos WAR, a menos que uma opção seja especificada quando um arquivo WAR é criado.
Nota: Embora o nome padrão dado para a pasta seja JavaSources, é possível alterá-lo clicando nele no Explorador de Projetos e em Recriar > Renomear.
pasta imported_classes
Essa pasta pode ser criada durante uma importação WAR e contém arquivos de classe que não têm origem correspondente. imported_classes é uma pasta de classes Java; pastas de classes Java também podem ser criadas utilizando a página de propriedades Caminho de Construção Java do projeto da Web.
Pasta WebContent
O local obrigatório de todos os recursos da Web, incluindo arquivos HTML, JSP, gráficos, etc. Se os arquivos não estiverem colocados nesse diretório (ou em uma estrutura de subdiretórios nesse diretório), os arquivos não estarão disponíveis quando o aplicativo for executado em um servidor. A pasta do conteúdo da Web representa o conteúdo do arquivo WAR que será implementado no servidor. Qualquer arquivo que não esteja nessa pasta é considerado recurso de tempo de desenvolvimento (por exemplo, arquivos .java, arquivos .sql e arquivos .mif), e não será implementado quando o projeto for testado e publicado de forma unitária.
Nota: Embora o nome padrão dado para a pasta seja WebContent, é possível alterá-lo no Explorador de Projetos, clicando com o botão direito do mouse na pasta e selecionando RecriarRenomear ou na página da Web do diálogo de Propriedades do projeto. Em um projeto da Web dinâmico, a alteração do nome da pasta atualizará o diretório de saída da construção Java.
META-INF
Esse diretório contém o arquivo MANIFEST.MF, que é utilizado para mapear caminhos de classe para arquivos JAR dependentes que existem em outros projetos no mesmo projeto do Aplicativo Corporativo. Uma entrada nesse arquivo atualizará o caminho de classe do projeto de tempo de execução e as definições de construção Java para incluir os arquivos JAR referenciados.
tema
O diretório sugerido para CSSs e outros objetos relacionados a estilo.
WEB-INF
Com base na Especificação 2.3 do Servlet Java da Sun Microsystems, esse diretório contém os recursos da Web de suporte para um aplicativo da Web, incluindo o arquivo web.xml e as classes e os diretórios de biblioteca.
/classes
Esse diretório é para servlets, classes de utilitário e o diretório de saída do compilador Java . As classes desse diretório são utilizadas pelo carregador de classes do aplicativo para carregar as classes. As pastas desse diretório mapearão os nomes de pacote e de classe, como em: /WEB-INF/classes/com/mycorp/servlets/MyServlet.class.

Não coloque arquivos .class diretamente nesse diretório. Os arquivos .class são colocados nesse diretório automaticamente quando o compilador Java compila arquivos de origem Java que estão no diretório Java Resources. Os arquivos colocados diretamente nesse diretório serão excluídos pelo compilador Java quando ele for executado.

/lib
Os arquivos JAR de suporte que seu aplicativo da Web referencia. As classes dos arquivos .jar colocados nesse diretório estarão disponíveis para o aplicativo da Web
Bibliotecas
Os arquivos JAR de suporte que seu aplicativo da Web referencia. Essa pasta espelha o conteúdo da pasta da biblioteca. Além disso, os Projetos de Biblioteca da Web, que são arquivos JAR "virtuais" não residentes fisicamente no projeto da Web, mas são associados a projetos Java em outros locais no espaço de trabalho, são incluídos nessa pasta. Eles são colocados no projeto quando o arquivo WAR do aplicativo é exportado.
Nota: Uma entrada de biblioteca no caminho de construção Java será mantida, a menos que o arquivo JAR real seja excluído da pasta WEB-INF/lib. Se você remover uma entrada do caminho da biblioteca, mas não o arquivo JAR, a entrada de biblioteca será incluída de novo no caminho automaticamente.
Conceitos relacionados
Recursos da Web
Arquivos WAR (Web Archive)
Tarefas relacionadas
Criando um Projeto da Web Dinâmico
Criando Arquivos JSP (JavaServer Pages)