Utilizando classes JAVA dentro do JSP
vc tendo as classes compiladas(.class) em mãos,
coloque-as na pasta WEB-INF/classes no diretorio
de sua aplicação web.
*obs. se a classe fizer parte de um package,
crie um diretorio com o nome do pacote dentro de classes e jogue as classe dentro do diretorio com o nome identico ao do pacote...
Para utilizar uma classe dentro de uma pagina jsp
vc inclui o seguinte codigo no cabeçalho do arquivo jsp.
<%@page laguage="Java" import="NomeDaClasse ou NomeDoPacote.NomeDaClasse"%>
apartir disso vc pode utilizar os recursos da classe dentro da pagina...
agora tem o jeito mas comum de fazer, que é utilizando
java bean,
no topo da pagina incluir
<jsp:useBean id="NomeDoBean" scope="session ou page" class="NomeDaClasse ou NomeDoPacote.NomeDaClasse"/>
para utilizar os recursos da classe dentro do jsp...
basta referenciar o nome do bean . o recurso ( método, variaveis)
ex.:
<%
MeuBean.CadastrarCliente("Thiago", "Campinas", "SP");
%>
obs.: SCOPE
se igual a SESSION, voce podera compartilhar os mesmos dados entre
paginas, bastando apenas declarar o mesmo bean, com mesmo nome e
mesmo scope em outra pagina jsp, podendo ler variaveis e executar
métodos, caso haja alteração em seu bean em uma pagina,
todas as outras paginas que usam o bean verão as alterações...
caso use scope PAGE, os dados só terão efeito naquela pagina, e não poderá ser visualizado as alterações em outras paginas que utilizam o mesmo bean...
qualque coisa, manda a duvida...
abraços...
Thiago
Curtidas 0
Melhor post
Thiago
09/04/2009
[quote="alice5"]Deu certo!!! :idea:
Só faltava o try... catch na hora de fazer o loop pelo rs!
Muitíssimo obrigada!!! :pray:
Se vc não tivesse me ajudado, não sei como seria aqui!!!
Valeuuuuuuuuu!!! :evil:
hehe... ok...
abraços!
GOSTEI 1
Mais Respostas
Alice Guimarães
09/04/2009
estou fazendo deste jeito:
<%@page language="Java" import="NomeDaClasse ou NomeDoPacote.NomeDaClasse"%>
Da uma olhada no meu código e ve se tem alguma coisa absurda! é q eu comecei em JSP há dois dias! Antes só programava em Java!
Quando eu tava fazendo a conexao aí dentro, dava certo... agora q eu deixei a conexão no ConexaoBD.class separado, dá erro.
Esse é o erro q aparece:
<%@ page language="Java" import="ConexaoBD"%>
<%@ page import="java.sql.*"%>
<%String nome, codigo;
codigo = request.getParameter("cod_fornecedor");
ConexaBD con = new ConexaoBD();
String selectFornecedores = "SELECT cod_fornecedor, nome_fantasia FROM cd_fornecedor ORDER BY cod_fornecedor";
ResultSet rs = null;
try {
rs = stmt.executeQuery(selectFornecedores);
} catch ( SQLException sqle ) {
String msg = "Erro executando query : " + selectFornecedores + " : " +
sqle.getMessage();
throw new Exception(msg);
}
%>
<html>
<head>
<title>Fornecedores</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="CssLib/estilos.css" rel="stylesheet" type="text/css">
<script language=javascript>
<!--
function voltar(codigo, nome)
{
window.close();
window.opener.location = "TESTE.jsp?cod_fornecedor=" + codigo + "&nome=" + nome;
}
// -->
</script>
</head>
<body>
<table width="400" border="0">
<tr>
<td bgcolor="#DFDFDF">
<div align="center">Cód.</div>
</td>
<td colspan="2" bgcolor="#DFDFDF">
<div align="center">Fornecedores</div>
</td>
</tr>
<%
while ( rs.next() ) {
String codigo = rs.getString("cod_fornecedor");
String nome = rs.getString("nome_fantasia");
%>
<tr>
<td width="50" align="center" bgcolor="#EEEEEE"><%= codigo %></td>
<td bgcolor="#EEEEEE"><%= nome %></td>
<td><a href="javascript:voltar(<%= codigo %>,'<%= nome %>')" >
<img border="0" src="ImgLib/lupa_p.GIF"/>
</a></td>
</tr>
<%
}
%>
</table>
</body>
</html>HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Unable to compile class for JSP Generated servlet error: The import ConexaoBD cannot be resolved An error occurred at line: 4 in the jsp file: /JanelaFornecedores.jsp Generated servlet error: ConexaBD cannot be resolved to a type ...
GOSTEI 0
Thiago
09/04/2009
as duas primeiras linhas vc pode transformar em uma!
antes:
<%@ page language="Java" import="ConexaoBD"%>
<%@ page import="java.sql.*"%>
depois:
<%@page language="Java" import="ConexaoBD" import="java.sql.*"%>
agora eu preciso saber a estrutura da sua classe ConexaoDB...
e percebi também que vc usou uma variavel do tipo Statement chamada
stmt sem declarar...
vc precisa declarar a variavel...
Statement stmt = null;
agora vc precisa instanciar usando uma conexão...
stmt = VariavelConnection.createStatement();
acho que no seu caso trocaria VariavelConnection por "conn",
mas naum sei, preciso ver sua classe de conexão antes...
feito isso...
vc pode fazer ResultSet = Statement.rexecuteQuery("SQL");
ou seja...
rs = stmt.executeQuery(.....);
..
agora vc tem que verificar também se o arquivo ConexaoDB.class
está no diretório correto... vc tem que colocar o .class
no diretorio da aplicação na pasta WEB-INF/classes/
tenta fazer isso...
se naum conseguir...
poste a classe java aki no topico, que dou uma olhada...
abraços...
GOSTEI 0
Alice Guimarães
09/04/2009
Thiago,
primeiramente gostaria de agradecer toda a ajuda que vc está me dando! Sério mesmo... muito obrigada!
Agora, voltando ao programa... a minha classe java está certinha, pq é a mesma q eu uso no meu aplicativo desktop! eu alterei umas coisas q estavam erradas antes no código e ele ficou assim:
Mas ainda da aquele mesmo erro... o q significa aquele erro??? tem que ter alguma coisa especial instalada no meu pc pra fazer esse acesso à classe???
<%@page language="Java" import="ConexaoBD" import="java.sql.*"%>
<%
String nome, codigo;
ResultSet rs = null;
ConexaBD con = new ConexaoBD();
String selectFornecedores = "SELECT cod_fornecedor, nome_fantasia FROM cd_fornecedor ORDER BY cod_fornecedor";
try {
rs = con.pesquisa(selectFornecedores);
} catch ( SQLException sqle ) {
String msg = "Erro executando query : " + selectFornecedores + " : " +
sqle.getMessage();
throw new Exception(msg);
}
%>
<html>
<head>
<title>Fornecedores</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="CssLib/estilos.css" rel="stylesheet" type="text/css">
...GOSTEI 0
Alice Guimarães
09/04/2009
Deu certo!!! :idea:
Só faltava o try... catch na hora de fazer o loop pelo rs!
Muitíssimo obrigada!!! :pray:
Se vc não tivesse me ajudado, não sei como seria aqui!!!
Valeuuuuuuuuu!!! :evil:
GOSTEI 0
Thiago
09/04/2009
você precisa instalar a biblioteca de classes para comunicação com o banco...
que banco vc esta usando?
GOSTEI 0