Retornando dados do banco via servlet e jsp

Boa tarde a todos, gostaria que alguem pudesse me ajudar. Eu andei fazendo um pequeno programinha eu preciso da ajuda de vocês. fiz da seguinte forma:

tenho essa classe:

pacote bean:



package bean;

import java.util.ArrayList;


public class LojaBean {
	
	private String nome;
	private String Suc;
	private String responsavel;
	private ArrayList<String> listaDePessoal;

	public String getSuc() {
		return Suc;
	}

	public void setSuc(String suc) {
		Suc = suc;
	}

	public String getResponsavel() {
		return responsavel;
	}

	public void setResponsavel(String responsavel) {
		this.responsavel = responsavel;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

}


package bean;

import java.util.ArrayList;

public class Servico {
	
	private String portaria;
	private String periodo;
	private String horario;
	
	private String servicos;
	
	private String descricaoDetalhada;

	public String getPortaria() {
		return portaria;
	}

	public void setPortaria(String portaria) {
		this.portaria = portaria;
	}



	public String getPeriodo() {
		return periodo;
	}

	public void setPeriodo(String periodo) {
		this.periodo = periodo;
	}

	public String getHorario() {
		return horario;
	}

	public void setHorario(String horario) {
		this.horario = horario;
	}

	

	public String getDescricaoDetalhada() {
		return descricaoDetalhada;
	}

	public void setDescricaoDetalhada(String descricaoDetalhada) {
		this.descricaoDetalhada = descricaoDetalhada;
	}

	public String getServicos() {
		return servicos;
	}

	public void setServicos(String servicos) {
		this.servicos = servicos;
	}

	

}

clss usuario bean


package bean;

public class UsuarioBean {
	
	String usuario;
	String senha;
	public String getUsuario() {
		return usuario;
	}
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	

}

pacote DAO


package DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
	
	private final static String driver = "com.mysql.jdbc.Driver";
	private final static String url = "jdbc:mysql://localhost/requisicao";

	private final static String username = "root";
	private final static String password = "123456";

	
	

	
public static Connection getConnection() throws SQLException{
try{
	
	
	Class.forName(driver);

	  System.out.println("Conectando ao banco");
	
	}	catch (ClassNotFoundException e) {
		System.out.println("\n Erro ao carregar JDBC / ODBC driver !\n" + e
				+ "\n");
		System.exit(1);
	}
return DriverManager.getConnection(url, username, password);

}


}


package DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import bean.LojaBean;
import bean.Servico;
import DAO.ConnectionFactory;


public class SolicitacaoDAO {
	
	private Connection conexao;
	private String mensagem;
	
	public SolicitacaoDAO() throws SQLException {

		this.conexao = ConnectionFactory.getConnection();
		
		System.out.println("conexao efetuada com sucesso");

	}
	
	LojaBean loja = new LojaBean();
	
	Servico servico = new Servico();
	
	
	
	public void InserirDados(String lojaNome, String lojaSUC, String portaria, String servicos, String periodo, String horario){
		

	try {
		
		
	//	Class.forName("com.mysql.jdbc.Driver");

	//	conexao = DriverManager.getConnection("jdbc:mysql://localhost/requisicao", "root", "root");


      //  conexao.setAutoCommit(false);

 
	//	System.out.println("conexao efetuada com sucesso...");

		PreparedStatement ps = conexao.prepareStatement("INSERT INTO solicitacao(nome_loja,suc_loja,portaria,tipo_servico,periodo,horario) VALUES (?,?,?,?,?,?)");
		
       
		ps.setString(1, lojaNome);
		ps.setString(2, lojaSUC);
		ps.setString(3, portaria);
		ps.setString(4, servicos);
		ps.setString(5, periodo);
		ps.setString(6, horario);
        
	

		ps.execute();

		ps.close();

		
		conexao.close();
	

	}  catch (SQLException e) {
		
		// Não está conseguindo se conectar ao banco
		mensagem = "Não foi possível conectar ao Banco de Dados " + e;
		System.out.println(mensagem);
	} 
	
	   finally {
	     try {
	conexao.close();
			
		           } catch (SQLException e) {
			e.printStackTrace();
		}
		
		
	}
	}

}

pacote servlet


package servlet;



import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import DAO.SolicitacaoDAO;
import bean.LojaBean;
import bean.Servico;
import bean.UsuarioBean;


/**
 * Servlet que serve para cadastrar os dados das solicitações
 * 
 * @author euclides filizola
 *
 */

public class CadastrarServlet2 extends javax.servlet.http.HttpServlet implements
		javax.servlet.Servlet {

	private static final long serialVersionUID = -6487025300712807334L;

	public CadastrarServlet2() {
		super();
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		try {
			doProcess(request, response);
		} catch (SQLException e) {
			
			
			
			e.printStackTrace();
		}
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		try {
			doProcess(request, response);
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}

	/**
	 * Processa a requisição, insere no banco e faz um select na tabela para
	 * recuperar os dados cadastrado anteriormente
	 * 
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 * @throws SQLException 
	 */
	private void doProcess(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException, SQLException {
		
		UsuarioBean usuario = new UsuarioBean();
		
		LojaBean loja = new LojaBean();
		Servico servico = new Servico();
		
		loja.setNome(request.getParameter("nomeLoja"));
			
		loja.setSuc((request.getParameter("SUC")));
		
		servico.setPortaria(request.getParameter("Bdoca"));
		
		String[] servicox =  request.getParameterValues("servico");
        		
		String ServicosSolicitados = "";
		
        for (int i = 0; i < servicox.length; i++){
               
        	 ServicosSolicitados = ServicosSolicitados + " " + servicox[i];
          
        }
             
		servico.setServicos(ServicosSolicitados);
				
		servico.setPeriodo(request.getParameter("Periodo"));
		
		servico.setHorario(request.getParameter("Horario"));
		
		String mensagem = "Informações inseridas com sucesso!";

		ArrayList<Object> dados = new ArrayList<Object>();
		
		SolicitacaoDAO solicitacao = new SolicitacaoDAO();
		
		solicitacao.InserirDados(loja.getNome(),loja.getSuc(), servico.getPortaria(), servico.getServicos(), servico.getPeriodo(), servico.getHorario());
		
		request.setAttribute("mensagem", mensagem);
		request.setAttribute("dados", dados);

		// request.getRequestDispatcher("/resultado.jsp").forward(request,
		// response);
	}
	
	
	
}





aqui meu formulario index:



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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>REQUISIÇÃO</title>
</head>
<body>
<form action="<%= request.getContextPath() %>/CadastrarServlet2"
	method="post">


<H2 align="center"><B>SOLICITAÇÃO DE AUTORIZAÇÃO DE EXECUÇÃO DE
SERVIÇO</B></H2>
<p></p>
<table align="center" BORDER=2
	STYLE="border-color: black; width: 800px;">


	<TR>
		<TD>
		<P style="text-align: center; font-size: x-large"><B>IMPORTANTE</B></P>

		<P style="text-align: justify">AS AUTORIZAÇÕES SERÃO CONCEDIDAS DE
		2ª A 6ª FEIRA ATÉ ÀS 17:00 H COM 24 HORAS DE ANTECEDÊNCIA DA EXECUÇÃO
		DOS SERVIÇOS FONE: (85) 3477-3581 FAX: (85) 3477-3582</P>
		</TD>
	</TR>

</table><pre>                       PARA: GERÊNCIA DE MANUTENÇÃO <br />
                       DE (LOJA):<input type="text" name="nomeLoja"> SUC: <input type="text" name="SUC">
<br />
                       SOLICITAMOS AUTORIZAÇÃO PARA A EXECUÇÃO DOS SERVIÇOS RELACIONADOS A SEREM REALIZADOS 
<br />
                       PELOS FUNCIONÁRIOS ABAIXO, NOS RESPONSABILIZANDO POR QUAISQUER DANOS CAUSADOS A TERCEIROS E/OU O SHOPPING</pre>


<table align="center" BORDER=2
	STYLE="border-color: black; width: 800px;">

	<TR>
		<TD>ENTRADA PELA PORTARIA<input type="radio" name="Bdoca"
			value="doca5"> DOCA5<input type="radio" name="Bdoca"
			value="b1"> B1 (DE 21:00 hs às 23:00 hs)
		<p>PERÍODO / DATA <input type="text" name="Periodo"
			style="width: 180px" /> HORÁRIO <input type="text" name="Horario"></p>
		</TD>
	</TR>
	<TR>
		<TD><PRE><input type="checkbox" name="servico" value="MANUTENÇÃO DE AR CONDICIONADO"> MANUTENÇÃO DE AR CONDICIONADO                <input
			type="checkbox" name="servico" value="SERVIÇOS ELÉTRICOS" >SERVIÇOS ELÉTRICOS</PRE> <PRE><input
			type="checkbox" name="servico" value="MANUTENÇÃO DE EXAUSTOR"> MANUTENÇÃO DE EXAUSTOR                       <input
			type="checkbox" name="servico" value="SERVIÇOS TELEFÔNICOS"> SERVIÇOS TELEFÔNICOS</PRE> <PRE><input
			type="checkbox" name="servico" value="INSTALAÇÃO/RETIRADA DE MÓVEIS DE EQUIPAMENTOS">INSTALAÇÃO/RETIRADA DE MÓVEIS DE EQUIPAMENTOS <input
			type="checkbox" name="servico" value="MANUTENÇÃO DE COMPUTADORES"> MANUTENÇÃO DE COMPUTADORES</PRE> <PRE><input
			type="checkbox" name="servico" value="ENTRADA DE MATERIAS PARA A LOJA">ENTRADA DE MATERIAS PARA A LOJA               <input
			type="checkbox" name="servico" value="DEDETIZAÇÃO DA LOJA">DEDETIZAÇÃO DA LOJA</PRE> <PRE><input
			type="checkbox" name="servico" value="TRABALHOS ESPECIAIS(MEZANINO, SOLDA)COM DESCRIÇÃO DETALHADA">TRABALHOS ESPECIAIS(MEZANINO, SOLDA)COM DESCRIÇÃO DETALHADA <input
			type="checkbox" name="servico" value="MARCENARIA"> MARCENARIA</PRE> <PRE><input
			type="checkbox" name="servico" value="REFORMA DA LOJA - DESCRIÇÃO DETALHADA">REFORMA DA LOJA - DESCRIÇÃO DETALHADA         <input
			type="checkbox" name="servico" value="LIMPEZA DE VITRINES">LIMPEZA DE VITRINES</PRE> <PRE><input
			type="checkbox" name="servico" value="OUTROS"> OUTROS                                       <input
			type="checkbox" name="servico" value="MANUTENÇÃO HIDROSANITÁRIA"> MANUTENÇÃO HIDROSANITÁRIA</PRE> <PRE
			STYLE="font-size: medium"><B>DESCRIÇÃO DETALHADA DO SERVIÇO:</B></PRE>
		<textarea name="descricaoDoServico" style="width: 100%"></textarea>

		</TD>

	</TR>






</TABLE>
<P></P>
<TABLE align="center" BORDER=2
	style="width: 800px; border-color: black;">
	<TR>

		<TH style="width: 70%">RELAÇÃO DE PESSOAL</TH>

		<TH>RG</TH>

	</TR>

	<TR>
		<TD><input type="text" name="nomeTerceiro1" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro1" style="width: 100%"></TD>

	</TR>

	<TR>
		<TD><input type="text" name="nomeTerceiro2" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro2" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro3" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro3" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro4" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro4" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro5" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro5" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro6" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro6" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro7" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro7" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro8" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro8" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro9" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro9" style="width: 100%"></TD>

	</TR>
	
	<TR>
		<TD><input type="text" name="nomeTerceiro10" style="width: 100%"></TD>
		<TD><input type="text" name="rgTerceiro10" style="width: 100%"></TD>

	</TR>
</table>

<BR>

<table align="center" BORDER=2
	style="width: 800px; border-color: black;">

	<TR>
		<TH style="font-size: small;">CARIMBO DA LOJA(INDISPENSÁVEL) <PRE>
 
 
 
 
</PRE></TH>

		<TD>
		<P style="vertical-align: top; font-size: small;">SERVIÇOS QUE
		DEVEM SER ENTREGUE EM OUTRAS GERÊNCIAS</P>
		<P style="font-size: small;" align="left"><B>ADESIVOS</B> -
		GERÊNCIA DE MARKETING - FONE: 3477-3567 FAX: 3241-4011 <br />
		<B>BALANÇO / ENTRADA OU SAIDA DE QUIOSQUE</B> - GERÊNCIA COMERCIAL -
		FONE: 3477-3572 FAX: 3241-4011 <br />
		<B>REUNIÕES</B> - GERÊNCIA DE SEGURANÇA EM FORMULÁRIO PRÓPRIO - FONE:
		3477-3572 <br />
		<B>ENTRADA DE FUNCIONÁRIOS</B> - GERÊNCIA DE SEGURANÇA EM FORMULÁRIO
		PRÓPRIO</P>
		</TD>

	</TR>

	<TR>
		<TD>
		<P style="vertical-align: top; font-size: small;">ASS. DO
		RESPONSAVEL: <BR />
		NOME LEGIVEL: <BR />
		FONE PARA CONTATO</P>
		</TD>


		<TD>
		<P style="vertical-align: top; font-size: small;">PARECER: <input
			type="checkbox" value="AUTORIZADO"> AUTORIZADO <input
			type="checkbox" value="NAO AUTORIZADO"> NÃO AUTORIZADO <BR />
		<BR />
		<BR />
		MOTIVO DA NÃO AUTORIZAÇÃO:
		<textarea style="width:99%"></textarea>
		</P>
		</TD>
	</TR>
</table>
<P align="center"><input type="submit" value="Enviar"></P>
</form>
</body>
</html>

… o único problema é o seguinte.

eu preciso fz uma classe pra retornar os dados do banco identicamente a forma como ele será inserido … .

sei q foi trabalhoso fz td isso … mas… n to saindo desse ponto final

alguem pra me ajudar ???

agradeço a ajuda antecipadamente.

Euclides, você poderia especificar em que ponto você está precisando de ajuda? Você deseja listar os dados do banco na sua JSP?

é . basicamente isso. oq meu programinha faz é apenas passar alguns dados que forem digitados para um banco , que no caso é mySQL. eu apenas quero puxa-los do banco e jogar na tela.

Voce tem que fazer um laço de repetição dentro de sua servlet utilizando alguma collection de sua preferência!!!

Depois dentro do objeto HttpServlet existe uma classe chamada PrintWriter… dá uma lidinha nisso…

valew

Esta meio dificil de entender o que vc quer, mas pelo que eu entendi vc precisa de um metodo dentro da sua classe DAO para retornar as informaçoes do BD.

NA minha humilde opiniao seria mais interessante vc criar mais um been Solicitacao e trabalhar orientado a objetos e nao a strings. E fazer algo do tipo tanto para o insert como para o select:

[code]public List<Solicitacao> getSolicitacao(Solicitacao psolicitacao) throws SQLException {

	PreparedStatement stmt = this.connection.prepareStatement("select * from solicitacao where id_solicitacao = ?");
	
	stmt.setLong(1, psolicitacao.getIdSolicitacao());
	ResultSet rs = stmt.executeQuery();
	List&lt;Solicitacao&gt; solicitacoes = new ArrayList&lt;Solicitacao&gt;();
	
	while (rs.next()){
		
		Solicitacao solitacao = new Solicitacao();
		solicitacao.setLojaNome(rs.getString("lojaNome"));
		...
		
                    solicitacoes.add(solitacao);
	}
	rs.close();
	stmt.close();
	
	return solicitacoes;
}[/code]

Se alguem puder comentar meu ponto de vista tambem ficaria muito agradecido!

Legal sua idéia… show de bola…dpois eu melhoro meu código com sua idéia, mas no momento eu preciso disso… seria o seguinte… eu tenho o formIndex, que ele joga na tela o html … ou seja, tem os campos para pedir nome… bla bla bla… etc … oq eu queria agora seria, a msma tela do formindex, porem sem ser campos para digitar , e ao inves , ser os campos preenchidos conforme ele tenha clicado numa requisição determinada… por exemplo, ele vai ter uma tela pra escolher qual requisição ele vai querer ver… e lá vai ter "requisição nº 50 " . qndo ele clicar… abrir uma tela… com o msm formIndex, porém ao invés dos campos serem para ser editados, nos mesmo lugares, voltem os dados puxados pela seleção que ele fez, que no caso do meu exemplo seria o nº 50 , ou seja, "select * from … where CODE = ‘50’ … e todos os campos q eram pra ser gravados,… aparecerem… ! … entendeu mano ?