não consigo no jsp!

Pessoal fiz o seguinte:

quero submeter um formulario jsp e chama o mesmo pra colocar os nomes submetidos. Exemplo:

Henrique
João
José
Maria

o codigo que tava testando era este:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>    
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
<%@page import="cliente.*"%>

 <form id="form1" name="form1" method="post" action="teste.jsp">
   <label>Nome 
   <input name="nome" type="text" id="nome" />
   </label>
   <p>
     <label>
     <input type="submit" name="Submit" value="Submit" />
     </label>
   </p>
 </form>


 <table>    
     	<%
			String n = request.getParameter("nome");
			Cliente obj = new Cliente();
			obj.setNome(n);
			%>

			<%=obj.getNome()%>

			<%
		
	%>
 </table>

O seguinte, toda vez que submeto o arquivo teste.jsp ele não acumula os nomes, ele substitui o nome que esta aparecendo.

Bom, se vc me der um bom motivo para os nomes acumularem nesse jsp eu fico sem tomar cerveja por uma semana.

Vamos começar pelo básico: o protocolo HTTP é um protocolo stateless. Para vc acumular essas informações vc precisaria de um mecanismo para salvar o estado anterior (os outros nomes que vc ja digitou). Se o protocolo que vc utiliza não prevê isso… então vc tem que utilizar alguma outra forma de persistência.

Uma delas é vc salvar os dados do post em um banco de dados ou num arquivo, em seguida ler todos os nomes para apresentar na tela.

Outra forma é vc salvar na sessão do usuario – isso implica em ter um cookie de sessão ou algum session id em algum lugar.

Vc poderia adicionar os elementos a pagina via algum javascript – nem precisaria fazer nenhum submit para isso, bastaria compreender o tal de HTML DOM.

De qq forma, vc teria que aprender a fazer um laço for nessa tabela para imprimir tudo o que vc deseja. Recomendo que vc dê uma olhada nas apostilas da Caelum para isso:

Bom, queria armazenar na memória não em banco de dados os nome!!!

Já tentei com Colletion, mas não conseguir resultado, sei fazer isto buscando no banco usando collention não sei fazer isto buscando na memória. será que pode???

ideia:

Criar na memória uma coleção de nome de pessoal sem armazenar no banco até definir se realmente deve armazenar no banco. e cada nome submetido pelo forme fique na memária, e mostra todas que esta na memória.

já passei o dia inteiro e não consigo fazer isto funcionar… Mesmo assim agradeço pela ajuda.
a ideia e esta.

De novo vc cai no mesmo problema: que memória?

Imagine 4537587 pessoas acessando essa pagina ao mesmo tempo. A collection com os teus dados ficaria aonde? E as collections dos outros usuarios? Se vc implementar algo assim vai funcionar pra vc mas pode ter comportamentos dos mais bizarros quando for utilizando por 2 ou mais pessoas ao mesmo tempo.

Se vc quer guardar em “memória” num lugar que só vc encontre, aprenda a usar sessions :wink:

Valeu pela dica sobre sessão peczenyj,

Caindo no mesmo problema, a idéia e não grava no banco diretamente: por que,  Se sistema estiver rodando em uma loja e não for finalizada a compra porque os sistemas caem ou falta de energia isto daria erro exemplo: O vendedor quando abrir novamente o sistema  o estoque vai estar -1 e  os ultimo itens gravado no banco não volta por tais motivo mencionado ate mesmo  a venda não  tinha sido finalizada daria uma doideira no caixa e estoque. Por este motivo estou tentando encontrar uma solução...

Crie uma collection para o que quer, mas use session (esqueça cookies). Mais tutoriais:

http://www.guj.com.br/posts/list/83494.java

Se possível, também não use Model 1, mas Model 2 em sua aplicação.

Abraços