rdpacato 2 Denunciar post Postado Julho 11, 2014 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
Vergil 15 Denunciar post Postado Julho 11, 2014 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
rdpacato 2 Denunciar post Postado Julho 14, 2014 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
rdpacato 2 Denunciar post Postado Julho 15, 2014 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