Ajuda com sendRedirect();  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
erickles
Virtual Machine Man
[Avatar]

Membro desde: 04/01/2007 09:52:17
Mensagens: 605
Localização: São Paulo - SP
Offline

Olá pessoal,

Estou no aprendizado de Servlets e me deparei com um probleminha em um exercicio:

Criei a Servlet "SenderServlet" com o seguinte método:



E uma Servlet "ReceiverServlet":



Quando compilo, a Servlet "ReceiverServlet" não exibe nada no Firefox. Deveria estar exibindo "Can you hear me?"

Alguma dica ?

Obrigado.



Erick de Souza.

Twitter: @erickles
[WWW] [MSN] [ICQ]
caio_ferreira
JavaTeenager
[Avatar]

Membro desde: 21/02/2008 09:25:40
Mensagens: 156
Localização: São Caetano do Sul - SP
Offline

kra, to no começo do estudo tbm, mas sera q nao pode ser problema com seu arquivo web.xml??
eu praticamente nao sei quase nda, to estudando

Graduado em Ciência da Computação
Oracle Certified Java Programmer 5




[MSN]
caio_ferreira
JavaTeenager
[Avatar]

Membro desde: 21/02/2008 09:25:40
Mensagens: 156
Localização: São Caetano do Sul - SP
Offline

kra, como te disse, tbm to estudando, acho q esse deve ser o problema, ta escrito na apostila do JEDI

SendRequest
Como efetivamente é uma nova requisição, os dados armazenados no objeto da requisição
são descartados. Os parâmetros fornecidos pelo usuário, se existirem, devem ser
resubmetidos caso a página alvo necessite destes. Os dados que estiverem armazenados
no objeto request devem ser mantidos de alguma forma. Caso contrário, serão perdidos.

Graduado em Ciência da Computação
Oracle Certified Java Programmer 5




[MSN]
bruno_cobra
JavaTeenager

Membro desde: 08/04/2007 23:59:14
Mensagens: 194
Localização: Lajeado, RS
Offline

erickles wrote:
E uma Servlet "ReceiverServlet":

Cara, se entendi o teu código, você está dando um Print numa variável vazia. Tente algo do tipo:

This message was edited 1 time. Last update was at 29/11/2008 13:01:12


http://blog.brunozambiazi.com
-
[WWW]
erickles
Virtual Machine Man
[Avatar]

Membro desde: 04/01/2007 09:52:17
Mensagens: 605
Localização: São Paulo - SP
Offline

billcaio wrote:kra, como te disse, tbm to estudando, acho q esse deve ser o problema, ta escrito na apostila do JEDI

SendRequest
Como efetivamente é uma nova requisição, os dados armazenados no objeto da requisição
são descartados. Os parâmetros fornecidos pelo usuário, se existirem, devem ser
resubmetidos caso a página alvo necessite destes. Os dados que estiverem armazenados
no objeto request devem ser mantidos de alguma forma. Caso contrário, serão perdidos.


Sim cara, to estudando na apostila do JEDI!

Você conseguiu resolver este exercicio?



Erick de Souza.

Twitter: @erickles
[WWW] [MSN] [ICQ]
leandrocm86
JavaBaby
[Avatar]

Membro desde: 02/06/2008 09:55:34
Mensagens: 80
Offline

O escopo do request morre no sendRedirect.
Você pode armazenar a mensagem na session: request.getSession().setAttribute("mensagem", "Can you hear me?");
Aí você lê a mensagem a partir da session.
erickles
Virtual Machine Man
[Avatar]

Membro desde: 04/01/2007 09:52:17
Mensagens: 605
Localização: São Paulo - SP
Offline

leandrocm86 wrote:O escopo do request morre no sendRedirect.
Você pode armazenar a mensagem na session: request.getSession().setAttribute("mensagem", "Can you hear me?");
Aí você lê a mensagem a partir da session.


Certo. Mas como leio a mensagem na classe ReceiverServlet ?

Fiz dessa forma e soh me retorna null:




Erick de Souza.

Twitter: @erickles
[WWW] [MSN] [ICQ]
leandrocm86
JavaBaby
[Avatar]

Membro desde: 02/06/2008 09:55:34
Mensagens: 80
Offline

Sei que é uma pergunta um tanto idiota, mas não custa: Vc setou e pegou a mensagem usando o msm nome né? Porque no primeiro exemplo vc escreveu messageKey e depois message... então só pra conferir mesmo.
Cara, não sei porque então não está rolando... Nunca fiz troca de mensagens entre dois servlets com sendRedirect, será que você não tem que dar um último sendRedirect no ReceiverServlet pra poder jogar a resposta pra página? Pode ser que a mensagem já esteja carregada, só não ta mostrando nada porque a página não foi carregada...

This message was edited 1 time. Last update was at 30/11/2008 15:51:23

erickles
Virtual Machine Man
[Avatar]

Membro desde: 04/01/2007 09:52:17
Mensagens: 605
Localização: São Paulo - SP
Offline

leandrocm86 wrote:Sei que é uma pergunta um tanto idiota, mas não custa: Vc setou e pegou a mensagem usando o msm nome né? Porque no primeiro exemplo vc escreveu messageKey e depois message... então só pra conferir mesmo.
Cara, não sei porque então não está rolando... Nunca fiz troca de mensagens entre dois servlets com sendRedirect, será que você não tem que dar um último sendRedirect no ReceiverServlet pra poder jogar a resposta pra página? Pode ser que a mensagem já esteja carregada, só não ta mostrando nada porque a página não foi carregada...


Bom cara, na classe "SendRedirect", o método doGet tah assim:



Na Receiver Servlet, tah assim:



Executo isso e me retorna null...



Erick de Souza.

Twitter: @erickles
[WWW] [MSN] [ICQ]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline

Olá

Está ao contrário os parametros do setAtributte()
Faça assim no "SendRedirect"

E no "Receiver" fica do jeito que estava

Até mais,
Roberto Jundi Furutani


Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
leandrocm86
JavaBaby
[Avatar]

Membro desde: 02/06/2008 09:55:34
Mensagens: 80
Offline

Exatamente como o furutani falou.
O primeiro argumento do metodo setAttribute é o nome da variável em que você vai armazenar alguma coisa, e o segundo argumento é o que vai armazenar.
Você pode colocar qualquer objeto como atributo, no seu caso você tá armazenando uma String.

This message was edited 1 time. Last update was at 30/11/2008 17:31:10

WillyKocher
JavaTeenager

Membro desde: 12/03/2007 14:47:07
Mensagens: 188
Offline

muda isso



para:


SCJP 6.0 - 91%
SCWCD 5.0
erickles
Virtual Machine Man
[Avatar]

Membro desde: 04/01/2007 09:52:17
Mensagens: 605
Localização: São Paulo - SP
Offline

Meu método sendet fico assim:



Acredito q esteja certo, porem ainda me retorna null, meu receiver fico assim:



Acho estranho essa linha:


no getAttribute nao deveriamos estar referenciando o objeto message ? Se faço isso o netBenas acusa erro...



Erick de Souza.

Twitter: @erickles
[WWW] [MSN] [ICQ]
leandrocm86
JavaBaby
[Avatar]

Membro desde: 02/06/2008 09:55:34
Mensagens: 80
Offline

Já sei o que tá rolando... a sintaxe está toda correta, só falta acrescentar um detalhe:

Porque como você pode guardar qualquer coisa como atributo, o método getAttribute nos retorna uma referência Object. Você precisa fazer um "downcast" especificando que esse objeto é na verdade uma String.
erickles
Virtual Machine Man
[Avatar]

Membro desde: 04/01/2007 09:52:17
Mensagens: 605
Localização: São Paulo - SP
Offline

Boa tentativa cara, mas ainda resulta em null...




Erick de Souza.

Twitter: @erickles
[WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team