[RESOLVIDO] Listar dados da Servlet para a JSP

3 respostas
M

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:
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);
	    
	}
}
Listar.jsp
<!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>
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 :)

============== 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"?

3 Respostas

H

O que tem nessa linha? listar_jsp.java:101

W

Tenta usar JSTL ou EL

M

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.

Criado 18 de janeiro de 2012
Ultima resposta 23 de jan. de 2012
Respostas 3
Participantes 3