Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rdpacato

Redirecionar com Frameset para outra tela

Recommended Posts

Pessoal,

 

Tenho uma tela de login que acessa um servlet para validar, se estiver ok os dados, ele redireciona (era para ser) para a index.jsp, e fecharia a tela com login... só que está abrindo a tela index.jsp dentro da tela de login, alguém me ajuda?

 

 

Tela login que uso frame só para deixar a formatação de cabeçalho e rodapé:

<html>	<head>		<title> PGPM - Login </title>		<script type="text/javascript" src="http://updateyourbrowser.net/asn.js"> </script>		<meta name="description" content="Tela login do PGPM">		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">	 	</head>    <frameset rows="8%,80%,4.3%" border="1" frameborder="1">        <frame name="head" src="header.jsp" noresize="no">        <frameset cols="100%"border="0" frameborder="0">        	<frame src="access.jsp" noresize="no"></frame>    	</frameset>        <frame name="foot" src="foot.jsp" noresize="no">    </frameset></html>

A tela de access.jsp que carrega dentro da tela Login.jsp:

<html><head>	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">	<link rel='stylesheet' type='text/css' href='css/padraoVisual.css'><title>Acesso - PGPM</title></head>    <body>	<center>		<form action="ServletValidaLogin" method="post">		<br>		<br>		<br>		<br>		<br>		<br>			<table border="1px" cellspacing="0" cellpadding="6">				<tr class="tabelaAcesso">					<td style="border-color: white" style="border-style:groove"	colspan="3">Acessar</td>				</tr>				<tr class="textoAcesso">					<td align="left" style="border-color: white" style="border-style:groove">Login:</td>					<td><input type="text" name="login" id="login" align="left" maxlength=15 style="background-color: #DCDCDC"></td>				</tr>				<tr class="textoAcesso">					<td align="left" style="border-color: white" style="border-style:groove">Senha:</td>					<td><input type="password" name="senha" id="senha" align="left" maxlength=15 style="background-color: #DCDCDC"></td>				</tr>			</table>			<br>			<input type="submit" value="Acessar">		</form>	</center>	</body></html>

O Servlet que valida, e acaba abrindo o index.jsp dentro da login.jsp:

	protected void doGet(HttpServletRequest request,			HttpServletResponse response) throws ServletException, IOException {		response.setContentType("text/html");		VerificaUsuario verifica = new VerificaUsuario();		String login = "a";//request.getParameter("login");		String senha = request.getParameter("senha");		try {			boolean status = verifica.verificarUsuario(login, senha);			boolean a = true; // teste aqui será validado no BD			if (a == true) { // teste aqui será validado no BD//Dados de login corretos				request.setAttribute("loginUsuario", login);				request.getRequestDispatcher("index.jsp").forward(request, response);			} else {//Dados de login errados				request.getRequestDispatcher("login.jsp").forward(request, response); 			}		} catch (ClassNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}

Só quero que ele ao colocar os dados corretos, seja fechada a tela de login.jsp e abrir a nova index.jsp

 

 

Ninguém? Estou enroscado com isso e não consigo fazer de outra maneira, só carrega dentro do outro frame

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página access.jsp deixe o seu HEAD como abaixo.

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <link rel='stylesheet' type='text/css' href='css/padraoVisual.css'>
  <title>Acesso - PGPM</title>

  <script type="text/javascript">  
    function breakout() {  
      if (window.top != window.self) {  
        window.top.location="http://localhost/MISApp/Login/login.jsp"  
      }  
    }
  </script>
</head>

E na tag BODY faça o seguinte.

<body onLoad="javascript:breakout()"> 

Já haviam postado sobre isso em http://www.coderanch.com/t/350143/Servlets/java/jsp-forwarding-target-frame

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo, ele fica em loop na tela de login.jsp

 

Pois como ela é a primeira página, já chama a access.jsp, ai ele fica dando loop...

 

Mas obrigado pela resposta, vou continuar tentando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui,

 

Estava errado o jeito que eu estava setando no Servlet

 

É assim:

request.getSession().setAttribute("loginUsuario", 
login); 
response.sendRedirect("login.jsp");

 

 

Quando vai para a tela de login, uso scriptlet

 

 

 

 
<% if 
(request.getSession().getAttribute("loginUsuario") != 
null) {%>

<script type="text/javascript"> 

if (window.top != window.self) { 

window.top.location="index.jsp";
} 

</script> 
<%} else 
{%> 
<frameset rows="8%,80%,4.3%" border="1" 
frameborder="1">
<frame name="head" src="header.jsp" noresize="no">
<frameset cols="100%"border="0" 
frameborder="0">
<frame src="access.jsp" noresize="no"></frame>
</frameset>
<frame name="foot" src="foot.jsp" noresize="no">
</frameset>
</html>
<% } %>

Ai funcionou

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.