Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Utilização do request.getRequestURI

Boa noite.

Eu li o conteúdo dessa atividade, que é sobre outra forma de fazer o mapeamento do controller da nossa aplicação. Seguindo minha intuição (pois não achei nada muito convincente nos fóruns da web) cheguei no código que inseri mais abaixo. Nele eu utilizei uma substring utilizando o tamanho do nome do contexto + 1 como parâmetro, pois precisava remover a "/" do nome, ficando apenas com o nome da classe. Fiz dessa forma pois se precisar trocar o context root não precisarei mexer mais nesse código.

Funcionou como eu queria, porém eu achei que ficou um pouco bagunçado e de difícil compreensão, principalmente neste trecho String uri = request.getRequestURI().substring(request.getContextPath().length()+1); Minha dúvida é qual a forma correta de usar o método request.getRequestURI, pois como disse fiz seguindo minha intuição e acredito que, pela forma desorganizada que o código ficou, não deva estar de acordo com as boas praticas.

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // Captura o nome da action a executar através da URI.
        String uri = request.getRequestURI().substring(request.getContextPath().length()+1);

        // Utiliza o metodo forName para criar uma instancia da classe de lógica adequada, e invocar o metodo executa desta classe.
        try {
            Actions logica = (Actions) Class.forName("br.com.carlos.gerenciador.dao." + uri ).newInstance();

            logica.executa(request, response);

        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
2 respostas
solução!

Boa noite, Carlos! Como vai?

Nesse caso vc poderia fazer String uri = request.getRequestURI().substring(1) pegando tudo a partir do segundo caracter da URI, ou seja, excluindo o caracter /!

Veja se resolve aí pra vc! Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Muito obrigado professor Gabriel, deu certo.