Passar parametro juntamente com o form

Boas,

Ok, a questão é bastante simples: Como faço para passar mais um parametro além dos que o form por si mesmo já passa? ou seja, além dos parametros q o form vai passar quando se faz submit (nome, password, etc) queria passar outro especificado por mim.

Eu fiz assim:

HttpSession ses = request.getSession(true); ses.setAttribute("code", new Integer(util.returnNumber()));

Esta foi a unica maneira q encontrei para fazer isso, criei uma variavel de sessão, mas acho q deve haver uma melhor, não? deve dar para acrescentar mais parametros além dos que o forum envia? alguém sabe como?
Obrigado.

PEACE!

cara…

ou vc usa a variavel de sessao ou entao pode usar campo hidden, q nao aparecem no form mas vc pode recuperar valores dele no servlet…

… mas assim o valor aparece no source do html quando alguem tentar ver… e eu não queria isso… não há outra maneira? da mesma maneira que há um metodo q busca parametros, n ha nenhum para adicionar parametros?

vc tah usando JSP com servlets??

sim, o utilizador digita os dados que depois de submetidos serão processados pelo servlet, e eu queria passar mais um parametro para o servlet… tou a ver que a varivel de sessão é o unico jeito mesmo…

Incluir mais parametros em um request, infelizmente, nao eh tao simples assim. Por default, usando HttpServeltRequest, vc nao consegue fazer isso, sendo necessario implementar a classe HttpServletRequestWrapper e fazer sua propria versao.
Uma vez precisei fazer algo parecido, pois desejava implementar acesso a upload de arquivos de maneira transparente e facil. Basicamente, pegue os parametros, coloque em um hashmap, e crie metodos para adicionar parametros. Logicamente, em todo o resto da aplicacao vc precisara usar tal classe. Ficaria algo como

public class MeuHttpServletRequest extends HttpServletRequestWrapper
{
	private HashMap query;
	
	public MeuHttpServletRequest(HttpServletRequest request) throws IOException
	{
		super(request);
		
		query = new HashMap();
		
		Enumeration e = request.getParameterNames();
		String name;
		while (e.hasMoreElements()) {
			name = (String)e.nextElement();
			query.put(new String(name), request.getParameter(name));
		}		
	}
	
	public String getParameter(String name)
	{
		return ((String)query.get(name));
	}
	
	public void addParameter(String name, String value)
	{
		query.put(name, value);
	}
}

entao, vc poderia fazer

// Dentro do Servlet, nos metodos doGet/doPost/service
MeuHttpServletRequest request = new MeuHttpServletRequest(req);

// Se nao tiver o parametro x, adiciona ele
if (request.getParameter("x") == null)
	request.addParameter("x", "valor");	

Rafael