Pessoal, é o seguinte, eu tenho uma aplicação em javascript que acessa um banco de dados remoto várias vezes… então eu gostaria de fazer como eu crio uma classe (sem nada de interface) em java script e como eu faço para chamá-la nas minhas páginas jsp???
Se alguém tiver algum exemplo, melhor ainda!
A sua aplicação, seguindo os padrões de projeto, deveria ter uma camada DAO (Data Access Object) que trataria do acesso aos dados do banco. Não tem isso nela?
A parte de javascript na sua JSP deveria mais pegar os dados que são repassados por alguma outra camada, não se importando com a parte de conexão com o banco.
Essa aplicação já estava feita assim ou você que começou a desenvolver?
Fui eu que desenvolvi tudo… eu já tenho essa aplicação pronta em java e to tentando passá-la para javascript!
Entao essa camada DAO seria a minha classe q só cuidaria de fazer conexão com o banco, certo? A minha duvida é q eu nao sei como acessar essa classe pelo jsp!
Javascript normalmente roda no cliente (browser), portanto não tem como acessar o banco de dados diretamente. Ponto.
Alguns web servers aceitam páginas escritas em JavaScript no lado servidor (onde elas podem acessar o banco de dados), mas aí não são JSPs e sim outra coisa.
Por exemplo, o IIS aceita VBScript e JavaScript em páginas ASP.
O Netscape Web Server (hoje em dia Sun Java Web Server) aceita JavaScript em páginas a serem executadas no servidor, mas não sei exatamente como isso é feito.
Gente… olha só… agora sem importar o q q a minha classe faz… eu só quero saber como q eu devo criar e salvar a minha classe e como q eu a acesso através das páginas jsp!
Agora estou começando a entender.
Você tinha uma aplicação Java Desktop, que acessa o banco de dados, e quer passar sua lógica para uma aplicação Web. É que você cismou com essa história de JavaScript, mas JavaScript é apenas 10% do seu problema (você vai ter vários, aliás).
É mais complicado que parece porque você tem de reformular a sua aplicação; há várias coisas que são fáceis de fazer em ambiente Desktop e difíceis de fazer em ambiente Web, e o contrário também é verdade.
Provavelmente é melhor descrever sua aplicação, para que alguém aqui no fórum possa sugerir como transformá-la para uma aplicação Web.
Bom, vou dizer como é que se cria uma classe em JavaScript, mas provavelmente não é o que você precisa. (Acho que você nem leu o que escrevi).
O equivalente a esta classe Java:
class Teste {
public int campo1;
public Teste (int campo1) {
this.campo1 = campo1;
}
public String metodo1() {
JOptionPane.showMessageBox (null, "Teste");
}
}
é isto:
function Teste (campo1) {
this.campo1 = campo1;
}
Teste.prototype.metodo1 = function () {
alert ("Teste");
}
Como já disse, isso provavelmente não é o que você quer.
Nossa gente… foi mal… eu to começando nisso de java para web agora… to muito aocstumada a programar em java, entao to me confundindo toda aqui…
acredito entao q o q eu queira é fazer uma servlet a faça apenas o acesso ao banco… eu ja consegui fazer quase isso… fiz o acesso ao BD e ja mandei executar um “select” e já imprimi num html… deu certinho… o q eu quero é separar… pq vou ter q acessar o banco várias vezes, entao, queria deixar só essa parte separadinha e acessá-la sempre q eu quiser…
Mas então, crie uma classe, por exemplo, de nome ConsultasGenericasSql.java e dentro dela você coloca os métodos que retornarão os dados pra cada situação.
Daí lá no seu servlet você instancia essa classe, passa a conexão pra ela e chama o método que retornará os dados.
Mas daí também vai depender de como você está “separando” as coisas.
public Vector getDadosSituacao1(Connection conn, String codPessoa) {
// Executa a consulta com o parâmetro codPessoa
// e retorna um vetor com todas as linhas da consulta
}
public Vector getDadosSituacao2(Connection conn, String codEmpresa) {
// Executa a consulta com o parâmetro codEmpresa
// e retorna um vetor com todas as linhas da consulta
}
// e assim por diante, pra cada situação um método específico
}[/code]
Lá no servlet:
ConsultasGenericasSql cgs = new ConsultasGenericasSql();
Vector conjDados = cgs.getDadosSituacao1(<conexão>,"100");
request.setAttribute("conjDados",conjDados);
Lá no JSP:
<%
Vector conjDados = request.getParameter("conjDados");
%>
Na página JSP você “lê” o vetor e descarrega na página
O mais certo mesmo é você estudar todas essas tecnologias, Servlet, JSP e JavaScript e como elas se comunicam.
O que lhe passei é um exemplo extremamente básico pra dar uma idéia de como elas interagem, mas isso tudo é passível de mudanças e melhoramentos. Não é 100% verdadeiro.