XML com conexão no jsp e servlet

4 respostas
A

Olá pessoal
Então eu já programava em java para desktop e eu fazia a conexão assim:

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

   Connection con =    DriverManager.getConnection("jdbc:mysql://localhost/banco"); 

   Statement stmt = con.createStatement();

Eu sei que é dessa forma que eu tenho que colocar no servlet mas não sei depois como criar um listener no xml para puxar essa conexão para ficar para todas as páginas do projeto?
Pelo que eu li eu crio um listener no xml que puxa esse servlet de conexão aí nos outros servlets ou jsp eu apenas puxo o resultado do listener. Essas coisas muda um pouco de desktop para web sou iniciante em web mas já mexia um pouco com java desktop agora eu gostaria de migrar então estou estudando.
Vocês poderiam me dar um exemplo de como fazer isso? A detalhe eu não uso IDE não gosto, não sei se isso é bom ou ruim, eu acho que o IDE atrapalha um pouco para colocar o css e alguns javascript que eu uso.
Me ajudem por favor! obrigado

4 Respostas

A

Então galera estou fazendo a minha conexão aqui e é o seguinte baixei o arquivo mysql connector e descompactei ele no opt e criei o classpath da seguinte forma:

#!/bin/sh 
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH

TOMCAT_HOME=/opt/apache-tomcat-6.0.10;export JAVA_HOME


CLASSPATH=$CLASSPATH:$JAVA_HOME\jre\lib:$JAVA_HOME\jre\lib\tools.jar:/opt/mysql-connector-java-5.0.5/mysql-connector-java-5.0.5-bin.jar:$JAVA_HOME/lib
export CLASSPATH

Gostaria de saber se o modo que criei o calsspath esta legal?
O tomcat e o java estão funcionando, ainda não consegui testar o mysql porque ainda não consegui testar a conexão
fiz um servlet de coneão dessa forma:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");
Statement stm = conn.createStatement();

Agora só falta criar um listener no xml e distribuir nas outras páginas do projeto e ainda não consegui. Alguém porderia analisar o trabalho que fiz acima e me ajudar com o que falta?
obrigado

S

cara num acho interessante vc deixa a responsabilidade pro servlet malipular o banco de dados, cria uma camada de persistencia, onde quem prepara essa conexão e prenche um list ou objeto um valor literal, tanto faz…dai vc faz o uso com um servlet…
coloca esses objetos num session(será colocado pelo servlet), e recupera em um jsp…saco ???

A

Cara sinceramente não entendi! Voce poderia me explicar como fazer isso?
A minha idéia de uso do banco de dados é bem simples um formulário html com jsp envia as informações para um servlet o servlet faz o processo de verificação e armazenamento e retorna um resultado para o jsp.

Me ensina a fazer a conexão da forma que vc mensionou porque não entendi. Na verdade pensei que fazendo da forma que mensionei acima era mais prático mas como eu disse estou aprendendo, me explique por favor.

Obrigado

A

E ae pessoal, continuando meus estudos, li alguns tutoriais e achei um jeito legal de usar mysql com jsp. Eu criei uma classe de conexão e implento ela nas jsp, olha como estou fazendo:
Essa é a classe java:

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

public final class Conexao{
    public static Connection conectar(){
        // base de dados é "test"
        String url = "jdbc:mysql://localhost/test";
        String usuario = "root";
        String senha = "";
        
        try{
           Class.forName("com.mysql.jdbc.Driver").newInstance();
           Connection conn = DriverManager.getConnection(url, usuario, senha);
           return conn;
        } 
        catch(SQLException ex){
           System.err.println("SQLException: " + ex.getMessage());
           System.err.println("SQLState: " + ex.getSQLState());
           System.err.println("VendorError: " + ex.getErrorCode());
           return null;
        }
        catch(Exception e){
           System.err.println("Problemas ao tentar conectar com o banco de dados");
           return null; 
        }
    }
}

Essa é a jsp

<%@ page language="java" import="java.sql.*, estudos.Conexao" %>
<html>
<head><title>Aprendendo JSP</title>
</head>
<body>

<%
  Connection conn = Conexao.conectar();
  
  // testa se a conexão foi efetuada com sucesso
  if(conn != null)
    out.println("Conexão efetuada com sucesso!"); 
%>

</body>
</html>

Dessa forma eu tenho uma única classe e posso usar em todas minhas jsp
O que vcs acharam? ficou bom? Ou existe uma forma melhor? Opinem por favor estou estudando e quero aprender a melhor forma.
Obrigado

Criado 3 de abril de 2007
Ultima resposta 5 de abr. de 2007
Respostas 4
Participantes 2