Busca variavel

ola amigos estou aqui mais uma vez, pedindo ajuda de todo!

olha só

tenho 1 class e duas servlet

class pessoa que contem a variavel nome e idade. * essas duas variavel é private

pq para ela funcionar eu tenho que fazer o get e set na mesma servet. sempre quando tento fazer o set em uma e depois vou para outra servelt fazer o get a variavel está nula?

alguem sabe se tem como eu fazer isso?

Não entendí muito bem o seu questionamento, mas vamos lá:

Vc pode criar o objeto, povoá-lo em um servelet, colocá-lo na sessão e depois recuperá-lo no outro servlet sem problemas.
Era essa a dúvida?

ex.: o código abaixo

desse modo que está ai a variavel nome chega como nula

só funciona o getNome() se fica na mesma class que o setNome()

alguem sabe me dizer se tem como fazer isso funcionar?


public class Pessoa {
	
	private String nome;
	
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Envia extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;

   Pessoa pessoa = new Pessoa();
   
   private static final String cadastrar = "cadastrar";
  
	public Envia() {
		super();
	}   	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}  	
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		LocalizaObjeto(request, response);
	}  
	
	protected void LocalizaObjeto(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String tarefa = request.getParameter("tarefa");
		
		//cadastrar usuário
		if(tarefa.equals(cadastrar)){
			pessoa.setNome(request.getParameter("nome"));
                        response.sendRedirect("Recebe");

		}
		
	}
	
}
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Recebe extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;

   Pessoa pessoa = new Pessoa();
   
   private static final String cadastrar = "cadastrar";
  
	public Envia() {
		super();
	}   	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}  	
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                
                PrintWriter out = response.getWriter();
	
		out.println(pessoa.getNome());
	}  
	
	
}

no seu primeiro servlet tente isso:

protected void LocalizaObjeto(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  
  String tarefa = request.getParameter("tarefa");  
  
  // cadastrar usuário
  if(tarefa.equals(cadastrar)){  
  pessoa.setNome(request.getParameter("nome"));
  session.setAttribute("pessoa", pessoa); 
  // poe o objeto pessoa na seção pois após o servlet enviar a resposta seu ciclo de vida acaba
  // e pessoa será destriuda
  response.sendRedirect("Recebe");  
  
  }

no segundo servlet faça assim:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  
  PrintWriter out = response.getWriter();  
  if (session.getAttribute("pessoa")!=null){
	  pessoa = (Pessoa) session.getAttribute("pessoa");  // aqui eu pego o objeto da seção
	  session.removeAttribute("pessoa"); // remove o objeto da seção
  }
  out.println(pessoa.getNome());  
  }    
  
  
   }

é preciso importa algo para usar session?

é que ta dando erro!

desculpa mais sou novatao mesmo!

para pegar a seção use nos dois servlets:

HttpSession session = request.getSession();

é numa jsp como faço para recupera?

no jsp usa direto objeto implicito session, fica sim:

 if (session.getAttribute("pessoa")!=null){  
       pessoa = (Pessoa) session.getAttribute("pessoa");  // aqui eu pego o objeto da seção  
       session.removeAttribute("pessoa"); // remove o objeto da seção  
   }  

Neste caso, não precisa importar nada.
:wink: