Servlet & html

4 respostas
rafaelgloria

Eu tenho uma página em html que passa parametros para a execução de uma servlet, ateh aih tudo ok, gostaria de saber como eu posso responder com uma pagina html, sem ser com:

out.println("<HTML>");
    out.println("<HEAD><TITLE>Blablabla</TITLE></HEAD>");
    out.println("<BODY>");
    out.println("</BODY></HTML>");

Pois a minha página de resposta tem header, footer, css…
Tem como?!

[]'s
Rafael.

4 Respostas

E

Cria a sua página normalmente em um arquivo html (ou jsp) e faz

response.sendRedirect("pagina.html");
rafaelgloria

Poxa valeu mesmo kra.
Abs,
Rafael.

rafaelgloria

Kra, naum consegui naum, deu erro.
Vou continuar tentando, mas se vc tiver um luz para me dar te agradeço.

erro:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.IllegalStateException
	org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)
	Blast.doPost(blast.java:57)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.

[]'s
Rafael.

Luca

Olá

Esta mensagem sobre servlets está em pasta errada!

Vendo sua mensagem inicial, percebo que sua pergunta apenas se refere sobre como construir uma página completa com headers, css, scripts e tudo o mais de outro modo, certo?

O texto abaixo é para fins didáticos pois atualmente é pouco comum usar servlets na raça. Se houver algum errinho é porque adaptei um código que não mexo desde o início de 2001. Mas é muito bom começar aprendendo como funcionam os servlets antes de qualquer outra tecnologia web.

Para construir uma página usando servlets a gente começa como em situações análogas criando um buffer:StringBuffer buffer = new StringBuffer();
Depois vamos seguindo com os appends formando a página com tudo que precisamos:buffer.append("<html>\n<head>\n" + "<meta http-equiv=\"Pragma\" content=\"no-cache\">\n" + "<meta http-equiv=\"Cache-Control\" content=\"no-cache\">\n" + "<meta http-equiv=\"Expires\" content=\"0\">\n" + <title>Blablabla</title>\n<body>") buffer.append("tudo da sua página"); buffer.append("</body>\n</html>");

Preenchido o buffer é só fazer:String strHTML = ""; . . . strHTML = buffer.toString(); if (strHTML.length() > 0) { try { PrintWriter out = response.getWriter(); out.println(strHTML); out.flush(); } catch (IOException ioe) { System.out.println(" Erro na gravacao da pagina HTML: " + ioe.getMessage()); logDoSeuSistema.writeLog("Erro na gravação da página HTML: " + ioe.getMessage()); } }

Sobre o erro usando sendRedirect:

  1. Veja os logs no diretório $CATALINA_HOME/logs.

  2. Apenas chutando, talve você tenha escrito algo antes de fazer sendRedirect

  3. O sendRedirect é usado quase sempre assim quando você redireciona para um servlet:

response.sendRedirect(response.encodeRedirectURL(nomedoservlet + "?par_1=" + Valor[0] + "&par_2=" + Valor[1]));

Ou seja, você quase sempre precisa encapsular uma chamada a response.encodeRedirectURL. O motivo é para não interferir com o conceito de session.

[]s
Luca

Criado 18 de julho de 2004
Ultima resposta 21 de jul. de 2004
Respostas 4
Participantes 3