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 .
- 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.