[Resolvido]Parametros são perdidos

2 respostas
R

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 (request.getParameter(“pagina”).equals(“login”)),
e no else if (request.getParameter(“pagina”).equals(“saque”)) tento recuperar os parametros, mas o retorno é null:

/*
 * 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&ecirc;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.

2 Respostas

Roger75

Jogue os dados na sessão, ao invés de passar no request

HttpSession session = request.getSession();

R

Muito Obrigado, resolveu!

Me quebrou um enorme galho.

Obrigado.

Criado 13 de junho de 2010
Ultima resposta 13 de jun. de 2010
Respostas 2
Participantes 2