Obtendo Resultado da Execuçãod e uma JSP Em Server-Side

8 respostas
pcalcado

Procurei bastante mas não achei por aí.

Preciso pegar o conteúdo do resultado da execução de uma JSP e pós-processa-lo em Server Side.

Imagine que tenho:

<html><%="oi"%></html>

Eu preciso que o resultado:

<html>oi</html>

Esteja numa String que eu possa manipular.

Ideas?

8 Respostas

jgbt

se eu entendi, acessar via URL e fazer o parse do Stream retornado não rola?

[]'s

pcalcado

Funcionar funcionaria, mas não no ambiente em questão (a máquina não faz loopback).

jgbt

putz cara dae é difícil…
talvez tentar buscar o servlet gerado e tentar parsear ele… sei la. nunca vi nada que faça isso.

[]'s

pcalcado

Eu pensei em fazer pré-compilação da JSP mas não queria algo tão…hm… imprevisível :stuck_out_tongue:

Acho que vou acabar fazendo alguma gambiarra com o include e response mesmo…

sergiolopes

O problema é que em geral o resultado de um JSP é baseado no request feito. Se você não vai fazer um request, como determinar o que fazer quando o JSP executar request.getQQCoisa() ??

Usando Tomcat por exemplo, você conseguiria chamar o “service” da servlet gerada pelo jasper passando um httpservletrequest seu e um response seu (que pode por exemplo, sobrescrever o getWriter() pra escrever a saída em algum stream que depois você recupere como String).

Mauricio_Linhares

Na verdade nem precisava chamar o service, um filtro que empacote o response já resolvia, fazia ele retornar uns objetos OutputStream ou PrintWriter que escrevessem onde você quizesse.

Mas o problema é pegar enquanto está processando ou executar essa expressão “on the fly”?

pcalcado

Então, eu tenho um request, que é recebido por um servlet, e preciso que seja executada uma JSP com este request. Uma analogia: imagina que eu preciso processar XSLT em server side ou em client-side, depende do caso. Quem gera o XML é uma JSP e eu posso tanto devolver pro cliente uma XSLT com um XML ou gerar e processar o XML+XSLT no servidor.

Mauricio_Linhares

Bem, você pode simplesmente dar um forward no JSP passando um “mock response” que escreva na verdade num StringWriter e pegar o resultado pra fazer o que você quiser.

Criado 9 de julho de 2007
Ultima resposta 9 de jul. de 2007
Respostas 8
Participantes 4