Pessoal, bom dia.
Estou com um pequeno problema quanto a um exemplo da apostila da Caelum referente a instanciar uma classe e executar seu método executa.
Procurei alguns tópicos no fórum porém não obtive êxito.
Está sendo lançada a Exception informando que a página não existe, ao tentar executar a seguinte url:
http://localhost:8080/fj21-agenda/mvc?logica=PrimeiraLogica
Creio que o problema possa estar no mapeamento do servlet, porém não consegui identificar aonde.
Abaixo segue meu código:
- interface Logica no pacote br.com.caelum.mvc.logica
package br.com.caelum.mvc.logica;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface Logica {
String executa(HttpServletRequest req, HttpServletResponse res) throws Exception;
}
- classe PrimeiraLogica, também no pacote br.com.caelum.mvc.logica
[code]
package br.com.caelum.mvc.logica;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PrimeiraLogica implements Logica
{
public String executa(HttpServletRequest req, HttpServletResponse res) throws Exception
{
System.out.println(“Executando a lógica”);
System.out.println("Retornando o nome da página JSP...");
return "primeira-logica.jsp";
}
}[/code]
- JSP primeira-logica.jsp dentrododiretórioWebContent:
<html>
<body>
<h1> Página da nossa primeira lógica </h1>
</body>
</html>
- Classe ControllerServlet no pacote br.com.caelum.mvc.servlet:
package br.com.caelum.mvc.servlet;
import java.io.IOException;
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.caelum.mvc.logica.Logica;
@WebServlet("/mvc")
public class ControllerServlet extends HttpServlet
{
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String parametro = request.getParameter("logica");
String nomeDaClasse = "br.com.caelum.mvc.logica." + parametro;
try
{
Class classe = Class.forName(nomeDaClasse);
Logica logica = (Logica)classe.newInstance();
String pagina = logica.executa(request, response);
request.getRequestDispatcher(pagina).forward(request, response);
} catch (Exception e)
{
throw new ServletException("A lógica de negócio causou uma exceção", e);
}
}
}
- web.xml:
[code]
JSP
bemvindo.jsp
[/code]
Desde já agradeço,
Fernando Nascimento.