Olá caros amigos da GUJ.
Bem, o meu problema eh relativamente simple.
Tenho uma jsp, q envia dados para o servlet. Este servlet ferifica qual o tipo de acao solicitada na page jsp, e chama uma classe q representa a minha Tabela “Autenticacao”. A consulta comeca com busca.jsp q enviar a acao para a servlet. Esta servlet invoca a uma classe representando a tabela “Autenticacao.class”. Se a consulta for realizada com sucesso, eu fiz a mesma servlet q invocou a class “Autenticacao.class”, redirecionar para consulta.jsp. AI Q VEM O PROBLEMA PESSOAL… Esta page consulta.jsp eu importei a servlet acima, a fim de obter os gets dela afim de exibir os dados. O q está ocorrendo eh q quando o servlet processa os dados efetuando a consulta, os dados no servlet são retornados, soh q quando ele redireciona o para a page consulta.jsp, após ter obtido com sucesso a consulta, esta page consulta.jsp, q chama os gets importados do servlet , retorna null… O q pode estar ocorrendo!? Alguém teria a paciência, e se possível me ajudar!? Obrigado desde já pela atenção de todos os amigos do GUJ!! Obrigado.
Abaixo está uma notacao gráfica do caso, e estou exibindo o codigo para ficar mais claro.
notacao:
busca.jsp —> servlet —> Autenticacao.class —> DB_Conexao.class
| |
| <---------------
|
-----------> consulta.jsp (importa o servlet e chama os gets) .
se a consulta for realizada com sucesso o servlet irá redirecionar para consulta.jsp, onde a mesma irá importa o servlet através da diretiva page para obter os dados retornados via metodos gets.
////////////////////////////////// (busca.jsp) ////////////////////////////////////
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="http://localhost:8080/Teste/servlet/SolicitaServlet" method="get">
<input type="hidden" name="solicitacao" value="FindNome">
<input type="hidden" name="solicitarNome" value="sori">
<input type="submit" value="Enviar">
</form>
</body>
</html>
/////////////////////// SolicitaServlet /////////////////////////////////////////
import teste.db.Autenticacao;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class SolicitaServlet extends HttpServlet implements Serializable {
private String solicitacao;
private String solicitarNome;
private String login;
private String senha;
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
processaSolicitacao(req,resp);
}
public void processaSolicitacao(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
solicitacao = req.getParameter("solicitacao");
solicitarNome = req.getParameter("solicitarNome");
PrintWriter saida = resp.getWriter();
if(solicitacao.equals("FindNome") && solicitarNome.equals("sori")) {
solicitarNome(solicitarNome);
resp.sendRedirect("http://localhost:8080/Teste/jsp/consulta.jsp");
//saida.print("<h1>"+ this.getLogin() +", "+ senha +"</h1>");
}else {
saida.print("<h1>Nada encontrado</h1>");
}
}
private void solicitarNome(String newVal) {
Autenticacao oAut = new Autenticacao();
try {
oAut.FindNome(newVal);
login = oAut.getLogin();
senha = oAut.getSenha();
}
catch(Exception e) {
System.out.println("Erro - "+ e);
}
}
public String getLogin() {
return login;
}
}
///////////////////////// Autenticacao.class ////////////////////////////////////
package teste.db;
import teste.db.DB_Conexao;
import java.sql.*;
import java.util.*;
public class Autenticacao extends DB_Conexao{
private Connection con;
private String login;
private String senha;
private String login2;
private Vector v;
public Autenticacao() {
con = super.getConexao();
}
public String getLogin() {
System.out.print(login+"
");
return login;
}
public String getSenha() {
System.out.print(senha+"
");
return senha;
}
public void FindNome(String newVal) throws Exception {
login2 = newVal;
ResultSet rs = null;
PreparedStatement pstmt = con.prepareStatement("select login,senha from Autenticacao "+
"where login = ?");
pstmt.setString(1,login2);
rs = pstmt.executeQuery();
if(rs.next()) {
login = rs.getString("login");
senha = rs.getString("senha");
}
else
System.out.println("Nada encontrado");
}
}
OBS. Ateh ai se a consulta for realizada com sucesso, a servlet redireciona resp.sendRedirect(“http://localhost:8080/Teste/jsp/consulta.jsp”); para consulta.jsp q abaixo esta a sua implementação.
/////////////////////////// consulta.jsp //////////////////////////////////////
<html><head> <title>Untitled</title></head>
<body>
<%@ page import="teste.db.Autenticacao"%>
<%@ page import="SolicitaServlet"%>
<%
SolicitaServlet oServ = new SolicitaServlet();
%>
<table border="1" cellpadding="1" cellspacing="0">
<tr>
<td><%= oServ.getLogin() %></td>
<td>&nbsp;</td>
</tr>
</table></body></html>
Olá Rafael.