sendRedirect() e Login + sessão

4 respostas
G

Qual a diferença entre o método sendRedirect(url) do response e o forward() do RequestDispatcher?

Qual usar e quando usar??

Outra coisa…Qual seria uma maneira eficiente de fazer um sistema de login? Onde o usuário entra com o nome e a senha e após efetuar o login é gravado um registro no banco de dados de quem logou e qdo logou. E o mesmo para qdo efetuar um logout.

Li alguma coisa sobre filtros…tem alguma coisa haver com isso?
Alguém pode me dar um exemplos desse parte de login?

Vlw

4 Respostas

J

O sendRedirect() envia uma pedido de redirecionamento ao browser, na realidade o servidor envia uma resposta ao browser dizendo que ele deve redirecionar a pagina para a URL x, então, o browser faz uma nova requisição para essa URL.

No caso do forward() ele simplesmente carrega uma pagina qualquer e envia a resposta ao browser.

Veja mais ou menos o fluxo:

sendRedirect()

Browser faz requisição para http://localhost:8080/MeuServlet1
Servidor responde a requisição com um redirecionamento para http://localhost:8080/MeuServlet2
Browser recebe redirecionamento e faz outra requisição para http://localhost:8080/MeuServlet2
Servidor recebe a nova requisição e processa o MeuServlet2

Forward

Browser faz requisição para http://localhost:8080/MeuServlet1
Servidor processar MeuServlet1 que repassa a requisição ao MeuServlet2 e devolve a resposta ao browser.

Quanto ao login, dê uma olhada nesse post:

http://jairelton.com/controle-acesso-com-filtros

G

Entendi a diferença entre eles!

Mas ainda não sei qdo devo usar um ou outro.

Qual seria uma situação que eu deveria usar o sendRedirect() além do forward()? E pq??

Estou desenvolvendo um sistema de teste com jsp e servlets e estou um pouco embolado nessa parte…e nas partes dos caminhos tb!!

Vlw

_

Voce utiliza forward quando voce quer que a requisiçao que voce fez seja redirecionada para outro jsp/servlet…

Por exemplo, voce fez uma requisiçao para um endereço, o endereço corresponde a um URL controlador, que vai tratar os dados e redirecionar a sua requisiçao para outro jsp…

Você usa redirect quando voce quer que o proprio browser faça requisiçao para outra pagina, e a requisiçao anterior é perdida…

G

Entendi…
Qdo eu quiser que as propriedades de um objeto request seja mantido eu uso forward, caso contrário posso usar redirect.

Outra coisa…aproveitando o tópico aki…como faço para trabalhar com sessões?? Sendo q não quero usar cookies, pois pode ser que o browser do usuário ñ aceite…entaum queria que o ID da sessão fosse armazenado na URL mesmo…li algumas coisas sobre isso mas ñ consegui aplicar…

Abraços

Criado 27 de janeiro de 2007
Ultima resposta 28 de jan. de 2007
Respostas 4
Participantes 3