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

Erro 404 ao mudar a pasta dos jsp

Especifiquei o caminho de forma correta, tanto é que quando os coloco fora da pasta "view" é interpretado corretamente, o fato é que dentro da pasta, é como se os arquivos não existissem

package br.com.ghabriel.gerenciador.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.ghabriel.gerenciador.acao.AlteraEmpresas;
import br.com.ghabriel.gerenciador.acao.ListaEmpresas;
import br.com.ghabriel.gerenciador.acao.MostraEmpresas;
import br.com.ghabriel.gerenciador.acao.NovaEmpresas;
import br.com.ghabriel.gerenciador.acao.RemoveEmpresas;

@WebServlet("/entrada")
public class UnicaEntradaServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String paramAcao = request.getParameter("acao");
        String nome = null;
        if(paramAcao.equals("ListaEmpresas")) {

            ListaEmpresas acao = new ListaEmpresas();
            nome = acao.executa(request,response);


        } else if(paramAcao.equals("RemoveEmpresas")) {

            RemoveEmpresas acao = new RemoveEmpresas();
            nome = acao.executa(request,response);


        }else if(paramAcao.equals("MostraEmpresas")) {

            MostraEmpresas acao = new MostraEmpresas();
            nome = acao.executa(request,response);


        }else if(paramAcao.equals("AlteraEmpresas")) {

            AlteraEmpresas acao = new AlteraEmpresas();
            nome = acao.executa(request,response);


        } else if(paramAcao.equals("NovaEmpresas")) {

            NovaEmpresas acao = new NovaEmpresas();
            nome = acao.executa(request,response);
        }


        String[] tipoEEndereco = nome.split(":");
        if(tipoEEndereco[0].equals("forward") ) {
            RequestDispatcher rd = request.getRequestDispatcher(tipoEEndereco[1]);
            rd.forward(request, response);
        }else {
            response.sendRedirect("WEB-INF/view/"+tipoEEndereco[1]);
        }
    }
}
2 respostas

Gabriel, pelo que eu entendi da aula, não pode passar o caminho de WEB-INF dentro do response.sendRedirect(); Porque o sendRedirect manda o navegador fazer uma nova requisição, e a pasta WEB-INF não é acessível pelo navegador pois o Tomcat oculta.

solução!

Olá Ghabriel tudo bem ?

isso acontece pq vc esta colocando o WEB-INF/view/ aqui:

}else {
            response.sendRedirect("WEB-INF/view/"+tipoEEndereco[1]);
        }

apague esse WEB-INF/view/ , e deixe sem:

}else {
            response.sendRedirect(tipoEEndereco[1]);
        }

É coloque o WEB-INF/view/ aqui :

if(tipoEEndereco[0].equals("forward") ) {
            RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/view/"+tipoEEndereco[1]);
            rd.forward(request, response);

Cod correto completo :

package br.com.ghabriel.gerenciador.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.ghabriel.gerenciador.acao.AlteraEmpresas;
import br.com.ghabriel.gerenciador.acao.ListaEmpresas;
import br.com.ghabriel.gerenciador.acao.MostraEmpresas;
import br.com.ghabriel.gerenciador.acao.NovaEmpresas;
import br.com.ghabriel.gerenciador.acao.RemoveEmpresas;

@WebServlet("/entrada")
public class UnicaEntradaServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String paramAcao = request.getParameter("acao");
        String nome = null;
        if(paramAcao.equals("ListaEmpresas")) {

            ListaEmpresas acao = new ListaEmpresas();
            nome = acao.executa(request,response);


        } else if(paramAcao.equals("RemoveEmpresas")) {

            RemoveEmpresas acao = new RemoveEmpresas();
            nome = acao.executa(request,response);


        }else if(paramAcao.equals("MostraEmpresas")) {

            MostraEmpresas acao = new MostraEmpresas();
            nome = acao.executa(request,response);


        }else if(paramAcao.equals("AlteraEmpresas")) {

            AlteraEmpresas acao = new AlteraEmpresas();
            nome = acao.executa(request,response);


        } else if(paramAcao.equals("NovaEmpresas")) {

            NovaEmpresas acao = new NovaEmpresas();
            nome = acao.executa(request,response);
        }


        String[] tipoEEndereco = nome.split(":");
        if(tipoEEndereco[0].equals("forward") ) {
            RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/view/"+tipoEEndereco[1]);
            rd.forward(request, response);
        }else {
            response.sendRedirect(tipoEEndereco[1]);
        }
    }
}