Estou com uma dúvida quanto a utilização de apenas um controller centralizador para as diferentes ações da aplicação. Por exemplo; Eu criei meu servlet de login que irá possuir um if verificando o método http: - se for get ele retorna a string "login.jsp" pro controller gerenciador e o mesmo irá renderizar com o dispatcher o formulário de login do sistema.
- se for post ele irá fazer as consistências dos dados:
- se passou na consistência de e-mail e senha válidos ele altera a page para entrar no sistema e retorna a página pro controller principal e o mesmo renderiza no dispatcher.
- se rodou na consistência do login ele cria um parâmetro request.setAttribute("obs", "Email ou senha inválido(s)!"); e passa a mesma página de login e na view (login.jsp) eu exibo a mensagem de erro ${obs}
- se passou na consistência de e-mail e senha válidos ele altera a page para entrar no sistema e retorna a página pro controller principal e o mesmo renderiza no dispatcher.
Até aí tudo bem (valida login entra no sistema, invalida login volta para o formulário e exibe mensagem de erro), porém ao voltar pra tela de login exibindo os erros a url perde o parâmetro da action pelo fato do formulário ter sido submetido e utilizado o método POST. E se o usuário clicar enter na barra de endereço do browser a aplicação vai dar erro lançando uma exceção, pois foi passada uma ação inválida pro controller principal.
Gostaria de saber como armazenar esta ação de (forma elegante) selecionada pela primeira ação do usuário (/login) vinda do formulário de login, para o caso de rodar na consistência do login e voltar para a mesma tela.
Não se fui claro.
Obrigado.