Jsp -> servlet ->jsp

4 respostas
F

Ola pessoal, surgiu mais uma duvida aqui durant eessas minhas tentativas de aprender JSP/Servlets.

è o seguinte, eu tenho uma pagina jsp que tem um botao e quando clica nele ela chama uma servlet, que por sua vez joga uma string no request e direciona para uma segunda jsp que pega a string do request e exibe.

So que por algum motivo a string esta vindo “null”. ai esta o codigo da servlet e da segunda jsp que pega a string do request.

Alguem poderia me ajudar a passar essa bendita string daservlet pra a jsp?? valeu

servlet:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LogServ extends HttpServlet {

	public String paginaLogin = "/principal.jsp"; 
	public String t = "teste";

	public LogServ(){super();}
	public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		teste(request, response);
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		teste(request, response);
	}

	public void teste(HttpServletRequest request, HttpServletResponse response){

		String str = "tt";
	
		request.setAttribute("t", str);

		try{
			this.getServletContext().getRequestDispatcher(paginaLogin).forward(request, response);
		}catch (Exception e){}
	}
}

Jsp:

<HTML>
<HEAD>
  <TITLE>Teste</TITLE>
</HEAD>

<BODY BGCOLOR="#FDF5E6">

<%
String str = "";
str = (String) request.getAttribute("t");
%>

<FORM ACTION="/LogServ" METHOD="POST">
  <CENTER>
  	<INPUT TYPE="TEXT" NAME="teste" VALUE="<%=str%>"><BR>
  </CENTER>
</FORM>

</BODY>
</HTML>

4 Respostas

J

Nunca fiz muitos testes com isso não, mas se nao me engano o objeto request é diferente para cada um deles, com sessão deve funcionar…

String str = "tt"; 
request.getSession().setAttribute("t", str);

jsp:

<% 
   String str = ""; 
   str = (String) request.getSession().getAttribute("t"); 
%>
M

Tente substituir:

this.getServletContext().getRequestDispatcher(paginaLogin).forward(request, response);

por:

request.getRequestDispatcher(paginaLogin).forward(request,response);
C

Também pode ser assim:

request.setAttribute("t", "tt");

RequestDispatcher rd = getServletContext().getRequestDispatcher(paginaLogin);
rd.forward(request,response);

No teu JSP

<HTML> 
<HEAD> 
  <TITLE>Teste</TITLE> 
</HEAD> 

<BODY BGCOLOR="#FDF5E6"> 

<FORM ACTION="/LogServ" METHOD="POST"> 
  <CENTER> 
     <INPUT TYPE="TEXT" NAME="teste" VALUE="<%=request.getAttribute("t")%>"><BR> 
  </CENTER> 
</FORM> 

</BODY> 
</HTML>
D

Oi, fer_scalia!
Galera, quando ela da o submit do form dela chamando o servlet, nesse servlet não deveria ter um request.getParameter() para que ela pudesse pegar o valor que vem da JSP?!
Exemplo

String nome = request.getParameter("teste");

pra que assim ela pudesse dispachar para uma página JSP qualquer, não é por isso que está indo vazio!?

Qualquer coisa me corrijam ai, pois comecei agora tbm!

Falou!

Criado 10 de agosto de 2005
Ultima resposta 19 de ago. de 2005
Respostas 4
Participantes 5