Prévia do material em texto
UNIVERSIDADE ESTÁCIO DE SÁ – FIR PÓS – GRADUAÇÃO EM ENGENHARIA DE SOFTWARE 2º SEMESTRE – 2º TRIMESTRE – EAD TURMA: 2015.2 DISCIPLINA: PROJETO E IMPLEMENTAÇÃO ORIENTADO A OBJETOS PROFESSOR: OSWALDO BORGES PERES IRIS BASILIO FERREIRA MATRICULA: 201507184328 TRABALHO FINAL RECIFE – PE 2016 Neste trabalho foram usadas as seguintes ferramentas: SGDB – MySQL 5.5; Conector – Driver JDBC do MySQL – mysql-connector-java-5.1.23-bin.jar; IDE – Netbeans 8.0.2; Servidor – GlassFish Server 4.1; Linguagem – Java EE. Vamos lá: 1. Abrir Netbeans; 2. Criar novo projeto a. Java Web; b. Aplicação Web; c. Nomear projeto: ProjetoWeb; d. Escolher o servidor GlassFish 4.1 e. Finalizar. 3. Adicionar as bibliotecas: a. Driver JDBC do MySQL; b. JSF 2.2. 4. Criar os pacotes: a. Controle; i. AlterarUsuario.java; ii. InserirUsuario.java; iii. LoginServlet.java; iv. removerUsuario.java. b. Dao; i. Conexao.java; ii. Memoria.java; iii. UsuarioDAO.java. c. Modelo. i. Usuario.java. Vamos ao código: Script do Banco de dados: create database trabalho_db; use trabalho_db; create table usuário_tbl( id_usuario int(11) not null auto_increment, nome varchar(100) not null, usuário varchar(32) not null, senha varchar(32) not null, lembrete varchar(50) not null, nível varchar(32), primary key(id_usuario) ); INSERT INTO usuario_tbl(nome, usuario, senha, lembrete, nivel) VALUES(“Oswaldo”,”admin”,”admin”,”teste”,”admin”); INSERT INTO usuario_tbl(nome, usuario, senha, lembrete, nivel) VALUES(“Oswaldo”,”user”,”user”,”teste”,”user”); package modelo; /** * * @author Iris Basilio Ferreira */ public class Usuario { private int id; private String nome; private String login; private String senha; private String lembrete; private String nivel; //Gets e Sets public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } 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; } public String getLembrete() { return lembrete; } public void setLembrete(String lembrete) { this.lembrete = lembrete; } public String getNivel() { return nivel; } public void setNivel(String nivel) { this.nivel = nivel; } } ============================================================ package dao; import com.mysql.jdbc.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * * @author Iris Basilio Ferreira */ public class Conexao { private final String DRIVER = "com.mysql.jdbc.Driver"; private final String URL = "jdbc:mysql://localhost/trabalho_db"; private final String USER = "root"; private final String PASSWORD = "cafe7894"; private Connection conn; public Conexao(){ try { Class.forName(DRIVER); conn = (Connection) DriverManager.getConnection(URL, USER, PASSWORD); System.out.println("Conexão realizada com sucesso..."); } catch (ClassNotFoundException | SQLException erro) { System.out.println("Erro ao tentar conectar com o banco!!!"+erro.getMessage()); } } public Connection conectar(){ return conn; } public void fecharConexao(){ try{ conn.close(); }catch(Exception erro){ System.out.println("Erro ao tentar fechar a conexão com o banco!!!"+erro.getMessage()); } } } ============================================================ package dao; /** * * @author Iris Basilio Ferreira */ public class Memoria { private String nome; private String nivel; private String url; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getNivel() { return nivel; } public void setNivel(String nivel) { this.nivel = nivel; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } ============================================================ package dao; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import modelo.Usuario; /** * * @author Iris Basilio Ferreira */ public class UsuarioDAO { public String inserir(Usuario usuario) { String retorno = "Falha"; Conexao conexao = new Conexao(); try { Statement stmt = conexao.conectar().createStatement(); stmt.execute("INSERT INTO usuario_tbl(nome, usuario, senha, lembrete, nivel) VALUES('" + usuario.getNome() + "','" + usuario.getLogin() + "','" + usuario.getSenha() + "','" + usuario.getLembrete() + "','" + usuario.getNivel()+ "');"); retorno = "Sucesso"; } catch (Exception erro) { System.out.println("Erro ao gravar registro"); } finally { conexao.fecharConexao(); } return retorno; } public List<Usuario> listar() { List<Usuario> usuarios = new ArrayList<Usuario>(); Conexao conexao = new Conexao(); try { Statement stmt = conexao.conectar().createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM usuario_tbl"); while (rs.next()) { Usuario usuario = new Usuario(); usuario.setId(rs.getInt("id_usuario")); usuario.setNome(rs.getString("nome")); usuario.setLogin(rs.getString("usuario")); usuario.setSenha(rs.getString("senha")); usuario.setLembrete(rs.getString("lembrete")); usuario.setNivel(rs.getString("nivel")); usuarios.add(usuario); } } catch (Exception erro) { System.out.println("Erro ao tentar listar os usuarios"); } finally { conexao.fecharConexao(); } return usuarios; } public Usuario selecionar(int id) { Usuario usuario = new Usuario(); Conexao conexao = new Conexao(); try { Statement stmt = (Statement) conexao.conectar().createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM usuario_tbl where id_usuario= '" + id + "'"); rs.next(); usuario.setId(rs.getInt("id_usuario")); usuario.setNome(rs.getString("nome"));usuario.setLogin(rs.getString("usuario")); usuario.setSenha(rs.getString("senha")); usuario.setLembrete(rs.getString("lembrete")); usuario.setNivel(rs.getString("nivel")); } catch (Exception erro) { System.out.println("Erro ao tentar listar os dados do banco"); } finally { conexao.fecharConexao(); } return usuario; } public String alterar(Usuario usuario) { String retorno = "falha"; Conexao conexao = new Conexao(); try { Statement stmt = conexao.conectar().createStatement(); stmt.executeUpdate("update usuario_tbl set nome = '" + usuario.getNome() + "',usuario='" + usuario.getLogin() + "',senha='" + usuario.getSenha() + "',lembrete='" + usuario.getLembrete() + "', nivel='" + usuario.getNivel() + "' where id_usuario ='" + usuario.getId() + "'"); retorno = "Sucesso"; } catch (Exception erro) { System.out.println("Erro ao tentar alterar os dados do banco"); } finally { conexao.fecharConexao(); } return retorno; } public String remover(int id) { String retorno = "falha"; Conexao conexao = new Conexao(); try { Statement stmt = (Statement) conexao.conectar().createStatement(); stmt.execute("delete from usuario_tbl where id_usuario = '" + id + "'"); retorno = "Sucesso"; } catch (Exception erro) { System.out.println("Erro ao tentar remover os dados do banco"); } finally { conexao.fecharConexao(); } return retorno; } public Usuario buscar(String login) { Usuario usuario = new Usuario(); Conexao conexao = new Conexao(); try { Statement stmt = (Statement) conexao.conectar().createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM usuario_tbl where usuario= '" + login+ "'"); rs.first(); usuario.setId(rs.getInt("id_usuario")); usuario.setNome(rs.getString("nome")); usuario.setLogin(rs.getString("usuario")); usuario.setSenha(rs.getString("senha")); usuario.setLembrete(rs.getString("lembrete")); usuario.setNivel(rs.getString("nivel")); conexao.fecharConexao(); } catch (Exception erro) { System.out.println("Erro ao tentar listar os dados do banco"); } finally { conexao.fecharConexao(); } return usuario; } } ============================================================ package controle; import dao.UsuarioDAO; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import modelo.Usuario; /** * * @author Iris Basilio Ferreira */ @WebServlet(name = "AlterarUsuario", urlPatterns = {"/AlterarUsuario"}) public class AlterarUsuario extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id = Integer.parseInt(request.getParameter("txtId")); String nome = request.getParameter("txtNome"); String login = request.getParameter("txtUsuario"); String senha = request.getParameter("txtSenha"); String lembrete = request.getParameter("txtLembrete"); String nivel = request.getParameter("txtNivel"); Usuario usuario = new Usuario(); usuario.setId(id); usuario.setNome(nome); usuario.setLogin(login); usuario.setSenha(senha); usuario.setLembrete(lembrete); usuario.setNivel(nivel); UsuarioDAO dao = new UsuarioDAO(); String retorno = dao.alterar(usuario); if(retorno.equals("Sucesso")){ response.sendRedirect("admin.jsp"); }else{ PrintWriter out = response.getWriter(); out.print("<html>"); out.print("<h2>Não foi possível alterar o nome!</h2>"); out.print("<br>"); out.print("<a href='admin.jsp'>Voltar</a>"); out.print("</html>"); } } } ============================================================ package controle; import dao.Memoria; import dao.UsuarioDAO; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import modelo.Usuario; /** * * @author Iris Basilio Ferreira */ @WebServlet(name = "InserirUsuario", urlPatterns = {"/InserirUsuario"}) public class InserirUsuario extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String Nome = request.getParameter("txtNome"); String Usuario = request.getParameter("txtUsuario"); String Senha = request.getParameter("txtSenha"); String Lembrete = request.getParameter("txtLembrete"); String Nivel = "USER"; Usuario usuario = new Usuario(); usuario.setNome(Nome); usuario.setLogin(Usuario); usuario.setSenha(Senha); usuario.setLembrete(Lembrete); usuario.setNivel(Nivel); UsuarioDAO usuarioDAO = new UsuarioDAO(); String retorno = usuarioDAO.inserir(usuario); if (retorno.equals("Sucesso")) { HttpSession session = request.getSession(); Memoria m =new Memoria(); String resp = m.getNivel(); if(resp =="ADM"); response.sendRedirect("admin.jsp"); } } } ============================================================ package controle; import dao.Memoria; import dao.UsuarioDAO; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import modelo.Usuario; /** * * @author Iris Basilio Ferreira */ public class LoginServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ HttpSession session = request.getSession();//Obtem sessão do usuário, caso exist. Usuario user = null; String Login = request.getParameter("txtLogin"); String Senha = request.getParameter("txtSenha"); try { UsuarioDAO dao = new UsuarioDAO(); user = dao.buscar(Login); String nivel = user.getNivel(); } catch (Exception e) { } //Verificando se os campos estão vazios if (user == null) { session.invalidate(); request.getRequestDispatcher("Login.jsp").forward(request, response); } else { session.setAttribute("user", user); String teste = user.getNivel(); if (teste == "ADM") { Memoria m = new Memoria(); m.setUrl("admin.jsp"); request.getRequestDispatcher("admin.jsp").forward(request, response); } else { Memoria m = new Memoria(); m.setUrl("user.jsp"); request.getRequestDispatcher("user.jsp").forward(request, response); } } } } ============================================================ package controle; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dao.UsuarioDAO; import java.io.PrintWriter; /** * * @author Iris Basilio Ferreira */ public class RemoverUsuario extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id = Integer.parseInt(request.getParameter("txtId")); UsuarioDAO usuarioDAO = new UsuarioDAO(); String retorno = usuarioDAO.remover(id); if(retorno.equals("Sucesso")){ response.sendRedirect("admin.jsp"); }else{ PrintWriter out = response.getWriter(); out.print("<html>"); out.print("<h2>Não foi possível excluir o arquivo</h2>"); out.print("<br>"); out.print("<a href='admin.jsp'>Voltar</a>"); out.print("</html>"); } } } Resultado final: