Servlet

6 respostas
ana.araujo

Preciso de ajuda....

preciso pegar os dados do banco e listados na JSP...
Como Faço?

Segue a minha classe de conexao e minha JSP....

Esta é a minha Classe com metodo doPost que faz a conexao:

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		String url = "jdbc:oracle:.........";
		Connection con = null;
		ArrayList<ConteudoPublicacao> listProdutos = new ArrayList<ConteudoPublicacao>();

		try {

			String driver = "oracle.jdbc.driver.OracleDriver";
			Class.forName(driver).newInstance();

		} catch (Exception e) {
			System.out.println("Falha no carregamento do driver");
			e.printStackTrace();
			// return publicacao; // return
		}
		try {
			con = DriverManager.getConnection(url, "teste", "teste");
			Statement select = con.createStatement();
			ResultSet result = select
					.executeQuery(
							"SELECT SEQ_CONTEUDO_PUBLICACAO, DOC_CONTEUDO, " +
							"NOM_IMAGEM_MINIATURA, DSC_TITULO_CONTEUDO " +
							"FROM CMS.CONTEUDO_PUBLICACAO");

			System.out.println("Resultados: ");
			while (result.next()) {
				
			ConteudoPublicacao conteudoPublicacao = new ConteudoPublicacao();
			conteudoPublicacao.setSeqConteudoPublicacao(result.getInt("SEQ_CONTEUDO_PUBLICACAO"));
			conteudoPublicacao.setDocConteudo(result.getString("DOC_CONTEUDO"));
			conteudoPublicacao.setNomImagemMiniatura(result.getString("NOM_IMAGEM_MINIATURA"));
			conteudoPublicacao.setDscTituloConteudo(result.getString("DSC_TITULO_CONTEUDO"));
			listProdutos.add(conteudoPublicacao);
			
			int seqConteudoPublicacao;
			String docConteudo;
			String nomImagemMiniatura;
			String dscTituloConteudo;
			seqConteudoPublicacao = result.getInt(1);
			
			if (result.wasNull()) {
				seqConteudoPublicacao = -1;
			}
			
			docConteudo = result.getString(2);
			nomImagemMiniatura = result.getString(3);
			dscTituloConteudo = result.getString(4);
			
			if (result.wasNull()) {
				docConteudo = null;
				nomImagemMiniatura = null;
				dscTituloConteudo = null;
			}
			
			System.out.println("seq = " + seqConteudoPublicacao);
			System.out.println("doc = " + docConteudo);
			System.out.println("img = " + nomImagemMiniatura);
			System.out.println("titulo = " + dscTituloConteudo);

			 String seqConteudo = request.getParameter("seqConteudoPublicacao"); 
			 String doc = request.getParameter("docConteudo"); 
			 String nomImagem = request.getParameter("nomImagemMiniatura"); 
			 String tituloConteudo = request.getParameter("dscTituloConteudo"); 
			
			}
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (con != null) {
			try {
				con.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

}

Esta é a minha JSP, onde deve aparecer os dados:

<li>
	<!-- conteudo do banco -->
</li>

na tela deve aparecer:

(imag) - (titulo)
(doc)

por favor preciso de ajuda com urgencia....

Obrigado...

6 Respostas

lcegatti

Sua Servlet ficaria assim

......
 finally {  
         if (con != null) {  
             try {  
                 con.close();  
             } catch (Exception e) {  
                 e.printStackTrace();  
             }  
         }  
     }  
     request.setAttribute("listProdutos",listProdutos)

Sua página no jeito rápido ficaria assim:
*! Não esqueça de dar o import da Classe ConteudoPublicacao no cabeçalho da página, ja tem alguns feitos la, é só seguir os outros.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" import="java.util.List, java.util.Iterator"%>
<!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">
<title>Insert title here</title>
</head>
<body>
  <%
  	List listProdutos = (List) request.getAttribute("listProdutos");
  	Iterator iterator = listProdutos.iterator();
  	while(iterator.hasNext()) {
  %>
   <li>  
   	<%
   		ConteudoPublicacao conteudo = (ConteudoPublicacao) iterator.next();
   	%>  
   	<%=conteudo.getNomImagemMiniatura() %> - <%=conteudo.getSeqConteudoPublicacao() %>
   	<br>
   	<%=conteudo.getDocConteudo() %>
   </li>  
   <% } %>
</body>
</html>
ana.araujo

eu testei e tava dando erro na jsp…
no - Iterator iterator = listProdutos.iterator();

ai eu pensei melhor e resolvi fazer tudo com struts…

vou utilizar a mesma classe de conexao, uma action, form e a jsp…

so que cai no mesmo erro …

nao consegui mostrar os dados do banco na tela…

tentei de varias formas mas nao consegui…

vc pode me ajudar…

:shock:

Roger75

Vá por partes:

  • Verifique se está fazendo a conexão com o banco: faça uma classe de teste com JUnit ou uma classezinha com método main.
  • Veja se a sua query está retornando registros.
  • Verifique o log para saber se ocorreu alguma exception.
ana.araujo

todos estes passos ja foram conferidos…
esta conectando…
os dados estao sendo retornados…
e nao aparece erro nenhum no console…

rss…

o problema é so na jsp…

nao aparece os dados…

rafaeldiego

Olá…

eu fiz uma aplicação bem parecida com esta, porém eu mostro o resultado em XML e não utilizo JSP

Fiz o seguinte:

Criei arquivo .java para conexão;
Criei arquivo .java consulta
Criei arquivo .java para montagem do conteúdo (xml) a ser mostrado

Depois criei uma servlet que chamava a conexão;
Depois recebia a resposta da consulta e imprimia na própria servlet…

porem, eu estruturava também a impressão…

talvez isto de tê alguma ideia…

Giulliano

sem porquisse né glr…use as EL…por favor !!!

jogue a lista na requisição como foi mostrado e depois exiba com as EL. Sabe fazer ?

obs: depois de

request.setAttribute("listProdutos",listProdutos)

falta fazer :

RequestDispatcher rd = getServletContext().getRequestDispatcher("/suaPagina.jsp");
rd.forward(request, response);

[]'s

Criado 13 de agosto de 2008
Ultima resposta 14 de ago. de 2008
Respostas 6
Participantes 5