Usando ArrayList no jsp

Bom dia…

Minha dúvida é a seguinte: Preciso usar um ArrayList pra guardar os dados dos passageiros inseridos, num sistema básico de venda de passagens…
Porém, como podemos ver no código abaixo, é óbvio que toda vez que eu der um submit na página, meu ArrayList vai “zerar”… Mas eu preciso guardar esse ArrayList de alguma maneira, para que eu possa obter os dados na hora de calcular o valor das passagens e o valor total à pagar…
Espero que alguém possa me ajudar…
Possíveis soluções (eu acho), seria usar algum Framework ou Servlet, mas sou iniciante e não entendo nada de ambos… E também porque meu professor pediu que fosse feito assim… em jsp puro… =/

Obrigado.

[code]<%
ArrayList passageiros = new ArrayList();

int qtdPassageiros = Integer.parseInt(session.getAttribute("qtdBebes").toString()) +
					 Integer.parseInt(session.getAttribute("qtdCriancas").toString()) +
					 Integer.parseInt(session.getAttribute("qtdAdultos").toString());
String sOut = "";
double total = 0;

session.setAttribute("passageiro", "1");

if(request.getParameter("operacao").equals("adicionar")) {
	int passageiro = Integer.parseInt(request.getParameter("passageiroAtual")) + 1;
	
	if(passageiro > qtdPassageiros+1) {
		JOptionPane.showMessageDialog(null, "Número de Passageiros já excedeu o limite informado anteriormente!");
	}
	else {
		session.setAttribute("passageiro", passageiro);
		
		ModelPassageiro p = new ModelPassageiro();
        
		p.setTipo(request.getParameter(request.getParameter("cbTipo")));
        p.setNome(request.getParameter("nome"));
		p.setCpf(request.getParameter("cpf"));
        p.setDtNasc(new Date(request.getParameter("dtNasc")));
        p.setEmail(request.getParameter("email"));
        p.setTelefone(request.getParameter("telefone"));
        
        passageiros.add(p);
	}
}
else if("calcular".equals(request.getParameter("operacao"))) {
	for(int i=0; i<passageiros.size(); i++) {
        Passagem p = new Passagem(Double.parseDouble(session.getAttribute("vrPassIda").toString()), passageiros.get(i));
        double vlr = p.calcularPassagem(Double.parseDouble(session.getAttribute("TxEmbarque").toString()));
        total = total + vlr;
        sOut = sOut + passageiros.get(i).getNome() + " - R$ " + vlr + "\n";
    }
	if(!session.getAttribute("cbVooVolta").equals("-1")) {
		for(int i=0; i<passageiros.size(); i++) {
            Passagem p = new Passagem(Double.parseDouble(session.getAttribute("vrPassVolta").toString()), passageiros.get(i));
            double vlr = p.calcularPassagem(Double.parseDouble(session.getAttribute("TxEmbarqueVolta").toString()));
            total = total + vlr;
            sOut = sOut + passageiros.get(i).getNome() + " - R$ " + vlr + "\n";
        }
	}
	sOut = sOut + "\nTOTAL À PAGAR: R$ " + total;
	
	JOptionPane.showMessageDialog(null, sOut);
	
	session.setAttribute("strCalculo",sOut);
	session.setAttribute("vrTotal", total);
}

%>[/code]

Bom primeiramente reveja os conceitos que você esta usando neste projeto… a suas páginas *.jsp devem apenas conter código de apresentação de dados.
Faça as suas regras de negocio em uma classe controladora e através uma Servlet retorno os resultados pra suas *.jsp (Sem nenhum framework).
E mais uma coisa não use JOptionPane nas sua *.jsp.
Quanto a armazenar os seu dados num ArrayList você pode colocar os dados na session ou como scope de application.

[quote=jweibe]Bom primeiramente reveja os conceitos que você esta usando neste projeto… a suas páginas *.jsp devem apenas conter código de apresentação de dados.
Faça as suas regras de negocio em uma classe controladora e através uma Servlet retorno os resultados pra suas *.jsp (Sem nenhum framework).
E mais uma coisa não use JOptionPane nas sua *.jsp.
Quanto a armazenar os seu dados num ArrayList você pode colocar os dados na session ou como scope de application.[/quote]

Sim… Eu sei que está feio… eu reconheço isso… Como esse projeto não é pra fins de trabalho e sim acadêmicos, estou seguindo as ordens do professor…
Quanto ao JOptionPane é só pra teste…
Pode me dar um exemplo desse scope de application.??
Obrigado.

[quote=binho.usjt]
Sim… Eu sei que está feio… eu reconheço isso… Como esse projeto não é pra fins de trabalho e sim acadêmicos, estou seguindo as ordens do professor…
Quanto ao JOptionPane é só pra teste…
Pode me dar um exemplo desse scope de application.??
Obrigado.[/quote]

Cara se você estiver usando JSTL:

&lt;c:set var="passageiros" scope="application"/&gt;

Ou se você tem acesso a um objeto do tipo ServletContext você pode setar um atributo.

Por favor, não peça urgência no fórum.

Ok, desculpa… Já resolvi o problema… Muito obrigado.!!!