O Arquivo web.xml
• Utilizado para configurar a aplicação web
• Não é obrigatório, mas é necessário pra alguns tipos de configurações
• Possui algumas tags para algumas configurações simples, porém importantes
– <welcome-file-list>
– <session-config>
– <error-page>
– <context-param>
<welcome-file-list>
• Definir arquivos padrão que serão carregados caso o usuário acesse a aplicação pelo navegador diretamente no context-root
1
http://localhost:8080/curso //Vai retornar um erro 404 do HTTP
1
2
3
4
5
6
<web-app>
<welcome-file-list>
<welcome-file>index.faces</welcome-file>
<welcome-file>primeiro.html</welcome-file>
</welcome-file-list>
</web-app>
1
http://localhost:8080/curso //Vai retornar um welcome-file
<session-config>
• Permite definir um tempo de expiração para a sessão de um usuário
1
2
3
4
5
<web-app>
<session-config>
<session-timeout>60</session-timeout><!--O tempo é definido em minutos. Caso não seja fornecido, um valor padrão é assumido-->
</session-config>
</web-app>
<error-page>
• Permite direcionar a requisição para uma página customizada de erro
– De acordo com algum código de retorno HTTP
– De acordo com uma determinada exceção
1
2
3
4
5
6
7
8
9
10
11
12
13
<web-app>
<error-page>
<error-code>404</error-code>
<location>/404.faces</location>
</error-page>
</web-app>
<web-app>
<error-page>
<exception-type>java.lang.Exception</exception-type><!--Qualquer exceção que ocorrer-->
<location>/exception.faces</location>
</error-page>
</web-app>
<context-param>
• Permite definir parâmetros iniciais para a aplicação web
• Os parâmetros são visíveis para a aplicação como um todo
1
2
3
4
5
6
<web-app>
<context-param>
<param-name>adminEmail</param-name>
<param-value>[email protected]</param-value>
</context-param>
</web-app>
Bean
1
2
3
4
5
6
7
8
public class MyBean implements Serializable {
@Inject
@InitParameterMap
private Map<String, String> initMap;
public void method() {
String email = initMap.get("adminEmail");
}
}
1
#{initParam['adminEmail']}
Parâmetros Importantes no JSF
• A tag <context-param>
é usada para definir alguns parâmetros importantes do JSF
• Configuração de timezone
1
2
3
4
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
• Define que o timezone (fuso horário) a ser usado no processo de conversão de datas é o timezone do sistema operacional
• O padrão é usar o UTC
• Configuração de estágio de projeto
1
2
3
4
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
• Define o estágio do projeto, o que pode influenciar em alguns aspectos do sistema
• Valores possíveis:
– Development, UnitTest, SystemTest, Production
• O padrão é Production
• Configuração de armazenamento da view
1
2
3
4
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
• Define onde o JSF irá salvar o estados das views
• Valores possíveis:
– server, client
• O padrão é server
Baseado nos cursos da Softblue