[RESOLVIDO] Listar dados da Servlet para a JSP

Pessoal, gostaria de pedir ajuda a vocês mais uma vez!

Já procurei em vários tutoriais e tudo e sempre da erro e ainda não consegui descobrir o porque! Quero listar os dados do BD na JSP mais passando pela servlet.
Consigo fazer listar, mas só direto do DAO. Tem como me ajudarem?

ListarServlet.java:

[code]public class ListarServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public ListarServlet() {
    super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
		throws ServletException, IOException {
	doService(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
		throws ServletException, IOException {
	doService(request, response);
}

protected void doService(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException { 
	
    UsuarioDAO usuarioDAO = new UsuarioDAO();
    
    List<Usuario> listar = usuarioDAO.getLista();
    request.setAttribute("listar", listar);
    
    RequestDispatcher rd = request.getRequestDispatcher("listar.jsp");
    rd.forward(request, response);
    
}

}[/code]

Listar.jsp

[code]<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=ISO-8859-1”>

<link rel=“stylesheet” type=“text/css” href=“css/style.css”>

<!-- INCLUSÃO DO TÍTULO DA PÁGINA -->
<title><%@ include file=“titulo.txt” %></title>
</head>

<body>
<%
List<Usuario> listar = (List<Usuario>)request.getAttribute("listar");
for (Usuario u : listar){
%>
<center>
<table>
<tr>
<td><%=u.getNome()%></td>
<td></td>
</tr>
</table>
</center>
<% } %>
</body>
</html>[/code]

Erro apresentado:

Jan 18, 2012 9:43:11 AM org.apache.catalina.core.StandardWrapperValve invoke Grave: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.listar_jsp._jspService(listar_jsp.java:101) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968) at org.apache.jsp.index_jsp._jspService(index_jsp.java:171) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)

Obs.: tirei os imports do codigo apenas para traze-lo para ca, para diminuir um pouco o codigo, mais caso queiram por favor me avisem.

O UsuarioDAO está certinho e se eu colocar para listar na servlet ou direto do dao ele lista sem problemas também.
Sei que java.lang.NullPointerException é erro de código e tals mais sou novo na área do java então me perdoem :slight_smile:

============== EDITADO || 11:23 ====================

Pessoal, consegui fazer funcionar da seguinte forma: mapeei no web.xml como página inicial o servlet ListarServlet e do servlet eu despachei para o index, acabando que ele só passa pelo ListarServet, carrega o mesmo e mostra o index.jsp (aonde tenho o listar.jsp incluido). Sendo assim, ele funciona normalmente, pois agora ele está sendo carregado.

Tem alguma forma de chamar ele obrigatoriamente no listar.jsp para que funcione sem essa “gambiarra”?

O que tem nessa linha? listar_jsp.java:101

Tenta usar JSTL ou EL

Pessoal desculpem a demora, me envolvi em um projeto no trabalho e acabei esquecendo de postar aqui o resultado.

Consegui resolver o problema. O único problema era que eu tinha que acessar a Servlet listar para o SetAttribute ser lido e então enviado para a JSP sem problemas. O código depois disso não apresentou erros.
(reparei que a servlet não estava sendo acessada)

Obrigado pela ajuda.