Olá a todos,
estou quebrando a cabeça com um problema muito estranho,
eu estou passando parâmetros por uma servlet, após o login.
após o login, é aberta uma tela com três frames, sendo um deles o menu.
Quando clico em uma das opções do menu, a página abre em um frame da mesma página.
Quando eu faço a operação, depois dela, não consigo recuperar o parâmetro.
Como faço para manter o parâmetro por toda a sessão?
Segue o código da servlet (passo os parâmetros no else if (.equals(“login”)),request.getParameter(“pagina”)
e no else if (.equals(“saque”)) tento recuperar os parametros, mas o retorno é null:request.getParameter(“pagina”)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.banco.bean;
import com.banco.util.HibernateUtil;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Session;
import com.banco.bean.Cliente;
import com.banco.bean.Conta;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletRequest;
import org.hibernate.Query;
/**
*
* @author Ahdeerre
*/
public class Processa extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String redirecionamento = "/http://www.globo.com/";
try {
System.out.println("ENTROU !!!!!!!!!!! " + request.getParameter("pagina"));
if (request.getParameter("pagina").equals("cadastro")) {
Cliente cliente = new Cliente();
Conta conta = new Conta();
Extrato extrato = new Extrato();
//ArrayList<Extrato> lista = new ArrayList<Extrato>();
ArrayList<Conta> listaConta = new ArrayList<Conta>();
double renda = Double.parseDouble(request.getParameter("renda"));
cliente.setCpf(Long.parseLong(request.getParameter("cpf")));
cliente.setEndereco(request.getParameter("endereco"));
cliente.setNome(request.getParameter("nome"));
cliente.setRenda(renda);
cliente.setCep(request.getParameter("cep"));
cliente.setCepEmp(request.getParameter("cepemp"));
cliente.setDataNascimento(request.getParameter("data"));
cliente.setEmail(request.getParameter("email"));
cliente.setEmpEnd(request.getParameter("endemp"));
cliente.setEmpNum(request.getParameter("numemp"));
cliente.setEmpresa(request.getParameter("empresa"));
cliente.setEndereco(request.getParameter("cpf"));
cliente.setEstCivil(request.getParameter("estcivil"));
cliente.setMailEmp(request.getParameter("emailemp"));
cliente.setNaturalidade(request.getParameter("nat"));
cliente.setNomeMae(request.getParameter("nomemae"));
cliente.setNomePai(request.getParameter("nomepai"));
cliente.setNumEnd(request.getParameter("num"));
cliente.setRg(request.getParameter("rg"));
cliente.setTelEmp(request.getParameter("telemp"));
cliente.setTelefone(request.getParameter("telefone"));
cliente.setSenha(Integer.parseInt(request.getParameter("senha")));
//cliente.setNome(request.getParameter("nome"));
//cliente.setEndereco(request.getParameter("endereco"));
// cliente.setRenda(Double.parseDouble(request.getParameter("renda")));
if (renda < 1000) {
conta.setLimite(renda / 2);
} else {
conta.setLimite(-1);
}
conta.setValor(0);
//extrato.setValor(-1);
// lista.add(extrato);
//conta.setExtratos(lista);
conta.setCliente(cliente);
listaConta.add(conta);
cliente.setConta(listaConta);
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//session.save(conta);
session.save(cliente);
session.getTransaction().commit();
redirecionamento = "/cadastroRealizado.html";
} else if (request.getParameter("pagina").equals("login")) {
String conta = request.getParameter("conta");
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("from Conta where numero = ?");
query.setString(0, conta);
//query.setString(0, "Rafael Hadas");
Conta contaConsulta = (Conta) query.uniqueResult();
if (conta == null) {
redirecionamento = "/http://www.globo.com/";
} else {
query = session.createQuery("from Cliente where cpf = ?");
query.setString(0, contaConsulta.getCliente().getCpf().toString()); //Procura pelo cpf do cliente
Cliente cliente = (Cliente) query.uniqueResult();
if (cliente.getSenha() == Integer.parseInt(request.getParameter("senha"))) {
//redirecionamento = "/contaOnline.jsp";
redirecionamento = "/contaOnline.jsp";
//request.setAttribute("logado", true);
//RequestDispatcher rd = getServletContext().getRequestDispatcher("/saque.jsp?nome="+cliente.getNome());
request.setAttribute("nome", cliente.getNome());
//teste.setAttribute("nome", "teste");
request.setAttribute("numConta", contaConsulta.getNumero());
} else
redirecionamento = "/http://www.uol.com/";
}
} else if (request.getParameter("pagina").equals("saque")) {
double valor = 0;
System.out.println("VALOR !!!!!!!!!!! " + request.getParameter("nome"));
valor = Double.parseDouble(request.getParameter("valor"));
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("from Conta where numero = ?");
query.setString(0, request.getParameter("numConta"));
//query.setString(0, "51400");
Conta conta = (Conta) query.uniqueResult();
conta.setValor(conta.getValor()-valor);
session.saveOrUpdate(conta);
session.getTransaction().commit();
redirecionamento = "/contaOnlinePrincipal.jsp";
System.out.println("VALOR !!!!!!!!!!! " + conta.getValor());
}
} finally {
RequestDispatcher rd = getServletContext().getRequestDispatcher(redirecionamento);
rd.forward(request, response);
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Página onde é encaminhado:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Internet Banking - Sua Conta</title>
</head>
<frameset border="0">
<frameset COLS="17%,83%">
<frame name="painelesq" SRC="contaOnlinePainelEsq.jsp" target="mainFrame">
<frame name="principalcontaonline" SRC="contaOnlinePrincipal.jsp" tarjet="mainFrame">
<noframes>
</noframes>
</frameset>
</html>
Página do menu:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Internet Banking</title>
<%-- <c:if test="${requestScope.logado != true}">
<jsp:forward page="naoAutenticado.html"/>
</c:if>--%>
<style type="text/css">
/* A few IE bug fixes */
* { margin: 0; padding: 0; }
* html ul ul li a { height: 100%; }
* html ul li a { height: 100%; }
* html ul ul li { margin-bottom: -1px; }
body { padding-left: 1em; font-family: Arial, Helvetica, sans-serif; }
#theMenu { width: 200px; height: 300px; margin: 5px 0; }
/* Some list and link styling */
ul li { width: 200px; }
ul ul li { border-left: 25px solid #69c; padding: 0; width: 175px; margin-bottom: 0; }
ul ul li a { display:block; color: #000; padding: 3px 6px; font-size: small; }
ul ul li a:hover { display:block; color: #369; background-color: #eee; padding: 3px 8px; font-size: small; }
li { list-style-type: none; }
h2 { margin-top: 1.5em; }
/* Header links styling */
h3.head a {
color: #333;
display:block;
border-top: 1px solid #36a;
border-right: 1px solid #36a;
background: #ddd url(down.gif) no-repeat;
background-position: 98% 50%;
padding: 3px 6px;
}
h3.head a:hover {
color: #000;
background: #ccc url(down.gif) no-repeat;
background-position: 98% 50%;
}
h3.selected a {
background: #69c url(up.gif) no-repeat;
background-position:98% 50%;
color: #fff;
padding: 3px 6px;
}
h3.selected a:hover {
background: #69c url(up.gif) no-repeat;
background-position:98% 50%;
color: #36a;
}
</style>
</head>
<body>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="accordion.js"></script>
<script type="text/javascript">
jQuery().ready(function(){
// applying the settings
jQuery('#theMenu').Accordion({
active: 'h3.selected',
header: 'h3.head',
alwaysOpen: false,
animated: true,
showSpeed: 400,
hideSpeed: 800
});
});
</script>
<ul id="theMenu">
<li>
<h3 class="head"><a href="javascript:;">Conta Corrente</a></h3>
<ul>
<li><a href="saque.jsp" target="principalcontaonline">Saque</a></li>
<li><a href="transferencia.html" target="principalcontaonline">Transferência</a></li>
<li><a href="encerraConta.html" target="principalcontaonline">Encerrar Conta</a></li>
<li><a href="deposito.html" target="principalcontaonline">Deposito</a></li>
</ul>
</li>
<li>
<h3 class="head"><a href="javascript:;">Consultas</a></h3>
<ul>
<li><a href="extrato.html" target="principalcontaonline">Extrato</a></li>
<li><a href="saldo.html" target="principalcontaonline">Saldo</a></li>
</ul>
</li>
<li>
<h3 class="head"><a href="javascript:;">Sair</a></h3>
<ul>
<li><a href="logout.jsp" target="_top">Logout</a></li>
</ul>
</li>
</ul>
<input type="hidden" name="numConta" value="${requestScope.numConta}" />
<c:out value="teste" />
</body>
</html>
Frame ao lado do menu:
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<%-- <c:if test="${requestScope.logado != true}">
<jsp:forward page="naoAutenticado.html"/>
</c:if>--%>
<img src="images/banco.jpg"> <h1>Bem vindo ao Banco</h1>
<br><br>Selecione o servico desejado no painel esquerdo
</body>
</html>
Página anterior ao chamamento da servlet
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="validacao.js" >
</script>
</head>
<body>
<form name="formSaque" action="Processa" method="POST" onsubmit="return validar_form_saque(this);" >
Digite o valor do saque: R$ <input type="text" name="valor" id="valor">
<input type="hidden" name="pagina" value="saque" />
<br<br><input type="submit" name="sacar" value="Realizar Saque">
</form>
</body>
</html>
Desde já agradeço muito.