RequestDispatcher na classe Controladora

Pessoal boa noite, tudo bem?

Com intuito de aprimorar meus conhecimentos em Java para Web, estou fazendo um pente-fino nos desafios da apostila FJ21. Travei em uma situação que pode ser simples, mais que pode me ajudar futuramente no contexto Servlets-JSP. No caso, o exercício pede para que eu centralize na classe Controladora, a tarefa de redirecionar as páginas através do RequestDispatcher a partir de uma String vinda da classe de Lógica que especifica a qual JSP deve ser encaminhada. Veja o que eu fiz na tentativa de implementar a solução:

Trecho final de uma das minhas classes de Lógica que cria um atributo dentro do método de serviço (Removi a implementação do RequestDispatcher local que funciona sem problemas):

...
          String url = "/lista-contatos-elegante.jsp";
          request.setAttribute("url", url);
	}
}

Classe Controladora (Bloco do Instanciamento da Servlet conforme a Lógica e a tentativa de redirecionamento):

....
try {
			Class classe = Class.forName(nomeClasse);
			Logica logica = (Logica) classe.newInstance();
			logica.executa(request, response);
			
			String param = (String) request.getAttribute("url");
			RequestDispatcher rd = request.getRequestDispatcher(param);
			rd.forward(request, response);
			
		} catch (Exception e) {
			throw new ServletException("A lógica de negócios causou uma exceção!", e);
		}

Desta forma acima não estou conseguindo implementar essa lógica, pois retorna erro:

exception

javax.servlet.ServletException: A lógica de negócios causou uma exceção!
	br.com.caelum.agenda.servlet.ServletController.service(ServletController.java:27)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

java.lang.NullPointerException
	br.com.caelum.agenda.servlet.ServletController.service(ServletController.java:24)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Vocês poderiam me ajudar a resolver o meu problema?

Obrigado!

Repare que o stack trace fala exatamente onde está acontecendo o erro.

Qual o código que está na linha abaixo?
br.com.caelum.agenda.servlet.ServletController.service(ServletController.java:24)

Opa, então jakefrog, segue a informação da linha 24 da classe ServletController:

rd.forward(request, response);

Seu rd ta null. Ele não deve estar encontrando o valor RequestDispatcher rd = request.getRequestDispatcher(param);
Tente fazer com que logica.executa retorne a url destino. Assim você pode utilizá-la no dispatcher.

Certo, mas desta forma

          String url = "/lista-contatos-elegante.jsp";  
          request.setAttribute("url", url);  

no qual este código está dentro do método logica.executa(), não deveria funcionar para que a servlet controladora enxergue esse atributo String do nome da pagina jsp? Isto eu já fiz.

Obrigado pela ajuda.

Bom pessoal, parece que consegui resolver meu problema conforme trechos de código abaixo:

Servlet Lógica:

String url = "/lista-contatos-elegante.jsp";
request.setAttribute("url", url);

Servlet Controladora:

String link = (String) request.getAttribute("url");
RequestDispatcher rd = request.getRequestDispatcher(link); 
rd.forward(request, response);

Caso tenham alguma outra sugestão mais tecnicamente correta, por favor me informem. Caso contrário, agradeço pela ajuda!