:?: Olá, sou inexperiente em JSP mas estou tentando fazer um pequeno projeto pra começar e já fiz algumas páginas com acesso a banco mySQL com o código nas próprias páginas (sem servlets ou beans). Mas agora estou precisando restringir o acesso a essas páginas com uma tela de login, alguém pode me dizer como eu posso fazer isso? Há como adicionar o código nas páginas que estão prontas e fazer apenas uma página de login?
Por favor, me ajudem a encontrar uma solução.
Meu conselho é que voce trabalho com Servlet ou Bean, mas como voce esta começando!
Faça um jsp Login, aonde o usuario entra com o user e a senha. Dentro deste voce faz um scriplet que acesse o seu banco valida o usuario e redireciona para seus jsp.
Entendeu?
[]´s
Complementando, neste JSP de login você pode jogar uma variável na session dizendo se o usuário está autenticado ou não, e aí nas outras páginas que tem acesso restrito você checa essa variável, para evitar que algum usuário mal-intencionado digite a URL diretamente e entre na página do mesmo jeito.
Obrigado Bani pelo complemento.
Segurança é muito importante.
É que isso fica mecanico pra quem já desenvolve. Esqueci de citar.
Valeu.
[]´s
ai vai um pequeno exemplo de login com session…
/*
Autor: Maurício Rodrigues dos Santos.
Thiago de Oliveira.
*/
package com;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import javax.servlet.http.*;
public class Login
{
private Statement stmt;
private ResultSet rs;
private String usuario="";
private String senha="";
private String id_User="";
public void setUsuario(String values){
usuario = values;
}
public void setId_User(String values){
id_User = values;
}
public void setSenha(String values){
senha = values;
}
public String getUsuario(){
return usuario;
}
public String getId_User(){
return id_User;
}
public String getSenha(){
return senha;
}
public void LimparSessao(PageContext pageContext){
HttpSession session = pageContext.getSession();
session.removeAttribute("Logado");
}
public boolean Logar(PageContext pageContext){
HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();
HttpSession session = pageContext.getSession();
Conexao c = new Conexao();
try{
String query="SELECT usuario,id_user FROM usuarios WHERE usuario='"+getUsuario()+"' and senha='"+getSenha()+"'";
c.ConexaoDB();
stmt = c.ConexaoDB().createStatement();
rs = stmt.executeQuery(query);
if(rs.next()){
this.id_User = rs.getString(2);
System.out.println(this.id_User);
session.setAttribute("Logado", this.id_User);
response.sendRedirect("alguma pagina.jsp");
return true;
}
else{
if(session.getAttribute("Logado") != null){
session.removeAttribute("Logado");
}
}
if(session.getAttribute("Logado")!=null){
response.sendRedirect("forum.jsp");
}
stmt.close();
c.Desconecta();
}
catch (SQLException sqlex ){
sqlex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
return false;
}
}
não está lá essas coisas mas é um bom exemplo
segue o Jsp dessa classe:
[code]
<jsp:useBean id="cd" scope="session" class="com.Login" />
<jsp:setProperty name="cd" property="*" />
<html>
<head><title>Login</title>
</head>
<%
if (request.getParameter("Loga")!=null){
cd.Logar(pageContext);
}
%>
<body>
<font face=‘verdana’ size=‘2’>
<form action="" method="POST">
<table>
<tr>
<td>Login</td><td> <input type="text" name="usuario"></td><tr>
<td>Senha </td><td><input type="password" name="senha"></td></tr>
</table>
<br>
<input type="submit" name="Loga" value ="Enviar" >
</form>
</font>
</body>
</html>[/code]
:snipersmile: :black: