HttpServletRequest é perdido depois que eu envio para um método

Caros,

Estou tentando usar um método para pegar os valores de um form multipart, mas quando envio pela segunda vez, parece que o request é perdido. Segue o código:


if(isMultipart){//é para upload de arquivos
UploadUtil uploadUtil = new UploadUtil();
renderTo = uploadUtil.getNome(request,AppWebKeys.RENDERTO);
command = uploadUtil.getNome(request,AppWebKeys.COMMAND);//-<aqui o request ja esta nulo
}

Classe que é chamada:

public class UploadUtil extends HttpServlet {

	public String getNome(HttpServletRequest request,String nome){

	
		String retornoNome = "";
		
		DiskFileUpload upload = new DiskFileUpload();
		List items;
		try {
			items = upload.parseRequest(request);
			Iterator itr = items.iterator();

			while(itr.hasNext()) {
				FileItem item = (FileItem) itr.next();
				String fieldName = item.getFieldName();
				if(fieldName.equals(nome)){
					retornoNome = item.getString();
				}
			}

		} catch (FileUploadException e) {
			e.printStackTrace();
		}
		return retornoNome;
	}

}

Dica: dá a nítida impressão que upload.parseRequest só pode ser chamada uma vez. Então, mude o seu método que recebe 1 chave e retorna 1 valor para um que receba uma lista de chaves e retorne uma lista de valores (ou talvez um map chave->valor, que é mais fácil de lidar). Assim você só precisaria percorrer a coleção retornada por parseRequest uma única vez.

Um Map? poderia explicar melhor?

Há …agora entendi…mas kra, não tem como eu fazer isso pq eu vou chamar esse método pelo menos 2 vezes. Já pensei de td, mas td difícil imaginar uma solução.

     public Map&lt;String,String&gt; getNomes(HttpServletRequest request){  
         Map&lt;String, String&gt; nomes = new TreeMap&lt;String, String&gt;();   
           
         DiskFileUpload upload = new DiskFileUpload();  
         List items;  
         try {  
             items = upload.parseRequest(request);  
             Iterator itr = items.iterator();  
   
             while(itr.hasNext()) {  
                 
                 FileItem item = (FileItem) itr.next();  
                 String fieldName = item.getFieldName();  
                 nomes.put (fieldname, item.getString());
             }  
   
         } catch (FileUploadException e) {  
             e.printStackTrace();  
         }  
         return nomes;  
     } 
...
...
Map&lt;String,String&gt; nomes = uploadUtil.getNomes(request);
renderTo = nomes.get (CadCorpWebKeys.RENDERTO);  
command = nomes.get (CadCorpWebKeys.COMMAND);
...

Entendi. Mas pra mim essa solução não serve pois preciso varrer o request em dois momentos diferentes em classes diferentes. E ja na segunda vez o request se perde, mesmo usando Map.