Passar Objeto Bean da Servlet para uma Classe

5 respostas
F

Quero fazer esta servlet passar um objeto Bean para uma classe que ira fazer a inserção e etc… no banco e apos retornar para uma página.

como posso fazer isto…?
O que falta no código que comecei da Servlet? Estou iniciando em java…

[color=“blue”]public class ServletUsuario extends HttpServlet{

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException
{
	BeanUsuario user = new BeanUsuario();

	user.setLogin(req.getParameter("login"));
	user.setSenha(req.getParameter("senha"));	
	user.setNivel(req.getParameter("nivel"));
}

}[/color]

5 Respostas

danieldestro

Primeiro então crie sua classe responsavel por fazer a insercao no banco, e entao, num dos metodos, que fará o INSERT, passe seu bean.

F

O problema é como fazer o metodo que recebe o bean e como passar o bean.

Tipo:

MetodoInsertClient(BeanUsuario usuario)

{

…

}

para passar o Objeto Bean:

MetodoInsertCliente(user);

Seria assim ou como seria?

danieldestro

Perfeito!

Vc pode até criar uma classe DAO, que faz os acessos ao Banco. Exemplo:

public class BeanUsuarioDAO {
  public void inserir( BeanUsuario bean ) {
    //aqui vc pega a conexao
    //cria o SQL
    //e faz o insert
  }

  public void deletar( BeanUsuario bean ) {
    //aqui vc pega a conexao
    //cria o SQL
    //e faz o delete
  }

  public void update( BeanUsuario bean ) {
    //aqui vc pega a conexao
    //cria o SQL
    //e faz o update
  }

  public BeanUsuario selectPK( Integer codigo ) {
    //aqui vc pega a conexao
    //cria o SQL, buscando pela chave "codigo"
    // faz o select
    //e retorna o objeto com os dados do banco
  }
}
F

Primeiramente quero agradecer pelas dúvidas que você já me esclareceu...

Gostaria de saber se estou indo no caminho correto com o meu código, é que sou iniciante mesmo e tenho que entregar um trabalho em 30 dias, que é meu TCC, vou fazer um Servidor helpdesk de manutencao, que poderá ser acessado tanto pelo Browser quanto pelo celular para requisitar chamadas de manutenção, pretendo fazer utilizando Servlets para a parte de negócio, JSP apresentação(MIDP celular), e MySQL banco, se vc tiver umas dicas quentes ficaria muito grato dependo deste trabalho para me formar...sei que existem vários recursos em java tipo Hibernate etc...mas vou fazer o feijão com arroz porque o tempo é curto se alguem tiver algunas codigos simples de exemplos ficaria muito grato também....

public class ClassUsuario {
	
	Conexao con=null;
	private String pagina=null;
	
		
	public  void InsereUsuario(BeanUsuario usuario)
	{
			
		try
		{
			con = new Conexao();
			con.executeUpdate("insert into TbUsuario values ("+con.retornaIDMax("TbUsuario") +" , '"+usuario.getLogin() +"', '" +usuario.getSenha() +"' , '"+ usuario.getNivel() +"')");
			pagina = "/sucesso.jsp";
		} catch (SQLException ex) {
		if (ex.getErrorCode() == 1062) {
			usuario.setErros("login", "login  existe!");
			pagina = "RetryUsuario.jsp";
		}
		System.out.println(ex);
		} finally {
		if (con != null)
			con.fecharConexao();
			con = null;
		}
		if (pagina == null)
			pagina = "/erro.jsp";
		
	}
	public  void DeleteUsuario(BeanUsuario usuario)
	{
		
	}
	public void UpdateUsuario( BeanUsuario bean ) 
	{ 
	
	} 
	
//	public BeanUsuario selectPK(integer codigo) { 
		//aqui vc pega a conexao 
	    //cria o SQL, buscando pela chave "codigo" 
	    // faz o select 
	    //e retorna o objeto com os dados do banco 
//	} 

	
	
	
}
danieldestro

É quase isso, você está chegando lá.

Acho que não há a necessida de se usar a sua classe Conexão, já que o JDBC oferece a interface java.sql.Connection.

Você, no lugar, poderia criar uma classe que gerencie suas conexões (ex: ConnectionManager), que seria como uma Factory de Connection.

public class ConnectionManager { public Connection ConnectioManager.pegarUmaConexao() { // cria e retorna uma conexão } }

Em segundo lugar, o seu DAO NUNCA deve saber qual a página de retorno a ser exibida, pois a única função do DAO é acessar o banco de dados (ou outra fonte de dados).

Outras classes podem saber para qual página remeter. Por exemplo o seu Servlet.

Dá uma procurada aqui no fórum sobre Connection Pool e sobre MVC.

Boa sorte e abraços

Criado 1 de maio de 2004
Ultima resposta 3 de mai. de 2004
Respostas 5
Participantes 2