[Session] diferença: request.getSession().setAttribute(); ou request.setAttribute();

3 respostas
J

Olá Pessoal qual a diferença de usar de usar o setAttribute() com
getSession().

Segue

com getSession() :

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
		try{
			List<Contato> lista = new ContatoDAO().lista();
				
			request.getSession().setAttribute("contatos",lista);
			return mapping.findForward("lista");
		}catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return null;
	}

sem o getSession() :

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
		try{
			List<Contato> lista = new ContatoDAO().lista();
				
			request.setAttribute("contatos",lista);
			return mapping.findForward("lista");
		}catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return null;
	}

a dúvida surge porque ambos retornam o resultado esperado.

Não achei na documentação uma explicação…


Abs,[b]

3 Respostas

_fs

Com getSession() o atributo é setado na … sessão.
E sem o getSession() o atributo é setado na … request.

Sério hehe qual a sua dúvida?

J

Olá LIPE grato por sua atenção…

Então vamos ao entendimento final rs.

Pelo request.getSession().setAttribute(); ele taca na session e fica válido por todo o sistema correto?.
posso pegar normalmente via request.getSession().getAttribute(); correto?.

Agora se eu usar assim:
request.setAttribute(); ele dura até a próxima página… apartir do momento que eu acessar outra página desaparece a informação correto?

TLCC

correto, inclusive se vc usar por exemplo, a tag lib displaytag e nao setar tua lista para a sessao quando clicar em next de uma lista paginada a resposta de Nothing found to display será exibida…

faça um teste ai

abs

Criado 13 de abril de 2006
Ultima resposta 13 de abr. de 2006
Respostas 3
Participantes 3