import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Logar extends HttpServlet {
private static final long serialVersionUID = 1L;
String login;
String senha;
public Logar() {
super();
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Pega os dados (logi e senha) informados pelo usúario!
setLogin(request.getParameter("login"));
setSenha(request.getParameter("senha"));
Logar(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
public void Logar(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
//verifica se os campos login e senha estão vazios!
if (login.equals("") && senha.equals("")) {
out.println("");
out.println("Os campos não podem ficar vazios! "<"a href=index.jsp>Voltar");
out.println("");
} else {
//faz a conexão com o Banco de Dados!
PreparedStatement ps = null;
Connection con = null;
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost/BD", "postgres", "postgres");
String sql = ("SELECT usuarios.nome,usuarios.login,usuarios.senha FROM usuarios where login = ? and senha = ?");
ps = con.prepareStatement(sql);
//passa os dados login e senha para a consulta SQL
ps.setString(1, getLogin());
ps.setString(2, getSenha());
ResultSet rs = ps.executeQuery();
//verifica se login e senha existe!
if (rs.next()) {
//aqui você pode por exemplo recuperar algumas informações do usúario logado!
//"nome" , "tipo"
//Pega um valor da coluna indicada! nesse caso a coluna "nome"
//vai trazer o Nome do Usúario com base no nome e login imformados
String nome = rs.getString("nome");
//Passa o login e senha para Session
request.getSession().setAttribute("loginUsuario", getLogin());
request.getSession().setAttribute("senhaUsuario", getSenha());
//Chama a página de acesso! Nesse caso irá chamar a página Session.jsp
//onde passará os valores de login e senha para a session
out.println("");
out.println(""<"script>document.location.href='sessions.jsp';");
out.println("");
} else {
//login e senha incorretos!
out.println("");
out.println("Login ou senha inválidos."<"a href=index.jsp>Voltar");
out.println("");
}
} catch (Exception e) {
System.out.println("Erro " + e);
}
}
}
//Getters Setters
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
//Estrutura do Banco de Dados PostgreSQL!
/*CREATE TABLE "public"."usuarios" (
"id" SERIAL,
"nome" VARCHAR(50) NOT NULL,
"login" VARCHAR(50) NOT NULL,
"senha" VARCHAR(50) NOT NULL,
"tipo" VARCHAR(50) NOT NULL,
CONSTRAINT "usuarios_login_key" UNIQUE("login"),
CONSTRAINT "usuarios_pkey" PRIMARY KEY("id")
) WITH OIDS;
*/
index.jsp
"<"form id="form1" name="form1" method="post" action="logar">
"<"table width="200" border="0" align="center">
"<"tr>
"<"td> Login:
"<"td>
"<"input type="text" name="login" id="login" />
"<"/label>
"<"/tr>
"<"tr>
"<"td> Senha:
"<"td>
"<"input type="password" name="senha" id="senha" />
"<"/label>
"<"/tr>
"<"tr>
"<"td>
"<"td>
"<"input type="submit" name="button" id="button" value="logar" />
"<"/label>
"<"/tr>
"<"/table>
"<"/form>"
sessions.jsp
"<"body>
"<"%
String senha = null;
String login = null;
//Pega os valores login e senha passados na Servlet
login = (String) request.getSession().getAttribute("loginUsuario");
senha = (String) request.getSession().getAttribute("senhaUsuario");
//passando os valores de login e senha para a Session!
session.putValue("loginUsuario", login);
session.putValue("senhaUsuario", senha);
//chama a Página Principal do sistema!
out.println(""<"script>document.location.href='Principal.jsp';");
%">"
"<"/body>
Principal.jsp
"<"/body>
"<"%
//Verifica se está logado
if(session.getValue("loginUsuario") != null || session.getValue("senhaUsuario") != null){
//deixando vázio ele mostrarar a página ! Nessa caso o conteúdo da página Principal.jsp.
} else {
//se a session estiver vazias ele irá chamar a página index.jsp o que quer dizer que não existe usúario logado!
out.println(""<"script>document.location.href='index.jsp';");
}
%">"
"<"/body>
sair.jsp
"<"body>
"<"%
//Destroi as sessions
session.invalidate();
out.print("Você saiu do sistema.");
%">"
"<"/body>
Obs: Eu tenho problemas em postar códigos HTML, PHP e JSP etc...
Então eu estou colocando aspas no início de cada tag de HTML "<".