Problema pra Excluir registro listado, não exclui no banco

Estou desenvolvendo uma aplicação para para controlar entidades religiosas, seus membros, patrimonio, entre outros, usando metodologia DAO, JTSL, Beans, entre outras fontes possíveis de desenvolvimento.

O fato é que quando listo os registros em forma de tabela e incluo botoes de excluir e editar ao lado do registro e clico para remover ele não remove retornando a listar a mesma tela. Além do mais o menu, que tipo sanfona, trava quando listado os registros. o modulo de cadastro esta funcionando normalmente e o menu não trava.

Alguém pode me ajudar ?

Arquivo: UsuarioDao.java

> package br.com.syschurch.jdbc.dao;

> import br.com.syschurch.jdbc.javabeans.Usuario;
> import br.com.syschurch.jdbc.factory.ConnectionFactory;
> import br.com.syschurch.jdbc.interfaces.UsuarioInterface;
> import java.sql.Connection;
> import java.sql.PreparedStatement;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.util.ArrayList;
> import java.util.List;

> public class UsuarioDao implements UsuarioInterface {

>     private Connection connection;

>     private List<Usuario> listaUsuarios = new ArrayList<Usuario>();

>     public UsuarioDao() {
>         this.connection = new ConnectionFactory().getConnection();
>     }

>     public void adicionarUsuario(Usuario usuario) {

>         String sql = "INSERT INTO tb_user (tb_username, tb_usersenha, tb_userbloqueado, tb_useremail) VALUES (?, ?, ?, ?);";
>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_username());
>             ps.setString(2, usuario.getTb_usersenha());
>             ps.setString(3, usuario.getTb_userbloqueado());
>             ps.setString(4, usuario.getTb_useremail());
>             ps.executeUpdate();
>             ps.close();
>             connection.close();

>         } catch (SQLException erroSQL) {
>         }
>     }

>     public void excluirUsuario(Usuario usuario) {

>         String sql = "DELETE FROM tb_user WHERE id_user = ?;";
>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getId_user());
>             ps.executeUpdate();
>             ps.close();
>             connection.close();
>         } catch (SQLException erro) {
>         }
>     }

>     public void editarUsuario(Usuario usuario) {

>         String sql = "UPDATE tb_user SET tb_username = ?, tb_usersenha = ?, tb_userbloqueado = ?, tb_useremail = ?;";
>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_username());
>             ps.setString(2, usuario.getTb_usersenha());
>             ps.setString(3, usuario.getTb_userbloqueado());
>             ps.setString(4, usuario.getTb_useremail());
>             ps.executeUpdate();
>             ps.close();
>             connection.close();
>         } catch (SQLException erro) {
>             throw new RuntimeException(erro);
>         }
>     }

>     public boolean existeUsuario(Usuario usuario) {

>         boolean achou = false;

>         String sql = "SELECT * FROM tb_user WHERE tb_useremail = ?;";

>         try {
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_useremail());
>             ResultSet resultSet = ps.executeQuery();

>             if (resultSet.next()) {
>                 achou = true;
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();

>         } catch (Exception e) {

>         }
>         return achou;
>     }

>     public List<Usuario> listarUsuario() {

>         List<Usuario> listaUsuario = new ArrayList<Usuario>();

>         try {
>             String sql = "SELECT * FROM tb_user;";

>             PreparedStatement ps = connection.prepareStatement(sql);
>             ResultSet resultSet = ps.executeQuery();

>             while (resultSet.next()) {

>                 Usuario usuario = new Usuario();

>                 usuario.setId_user(resultSet.getString("id_user"));
>                 usuario.setTb_username(resultSet.getString("tb_username"));
>                 usuario.setTb_useremail(resultSet.getString("tb_useremail"));
>                 usuario.setTb_userbloqueado(resultSet.getString("tb_userbloqueado"));
>                 listaUsuario.add(usuario);
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();
>         } catch (Exception erro) {
>         }
>         return listaUsuario;
>     }

>     public Usuario consultarUsuario(Usuario usuario) {

>         try {

>             String sql = "SELECT * FROM tb_user WHERE tb_username = ?;";

>             PreparedStatement ps = connection.prepareStatement(sql);
>             ps.setString(1, usuario.getTb_useremail());
>             ResultSet resultSet = ps.executeQuery();

>             if (resultSet.next()) {
>                 usuario.setId_user(resultSet.getString("id_user"));
>                 usuario.setTb_username(resultSet.getString("tb_username"));
>                 usuario.setTb_useremail(resultSet.getString("tb_useremail"));
>                 usuario.setTb_userbloqueado(resultSet.getString("tb_userbloqueado"));
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();
>         } catch (Exception e) {
>         }
>         return usuario;
>     }

>     @Override
>     public List<Usuario> getlistaUsuarios() {

>         try {
>             String sql = "SELECT * FROM tb_user;";
>             PreparedStatement ps = connection.prepareStatement(sql);
>             ResultSet resultSet = ps.executeQuery();

>             while (resultSet.next()) {
>                 Usuario usuario = new Usuario();
>                 usuario.setId_user(resultSet.getString("id_user"));
>                 usuario.setTb_username(resultSet.getString("tb_username"));
>                 usuario.setTb_useremail(resultSet.getString("tb_useremail"));
>                 usuario.setTb_userbloqueado(resultSet.getString("tb_userbloqueado"));
>                 listaUsuarios.add(usuario);
>             }
>             ps.close();
>             connection.close();
>             resultSet.close();

>         } catch (SQLException erro) {
>             throw new RuntimeException(erro);
>         }
>         return listaUsuarios;

>     }

> }

Arquivo: ConnectionFactory.java

> package br.com.syschurch.jdbc.factory;

> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.SQLException;

> public class ConnectionFactory {

>     private String driver = "com.mysql.jdbc.Driver";
>     private String url = "jdbc:mysql://localhost:3306/db_portaldosol";
>     private String email = "invited";
>     private String senha = "w190496c";

>     public Connection getConnection() {
>         try {
>             Class.forName(driver);
>             return DriverManager.getConnection(url, email, senha);
>         }
>         catch (SQLException erro){
>             throw new RuntimeException(erro);
>         }
>         catch (ClassNotFoundException erro){
>             throw new RuntimeException(erro);
>         }
>         
>     }
> }

Arquivo Usuario.java

package br.com.syschurch.jdbc.javabeans;

import java.io.Serializable;

public class Usuario implements Serializable {

private String id_user;
private String tb_username;
private String tb_useremail;
private String tb_usersenha;
private String tb_userbloqueado;
public String getTb_username() {
    return tb_username;
}
public void setTb_username(String tb_username) {
    this.tb_username = tb_username;
}
public String getTb_useremail() {
    return tb_useremail;
}
public void setTb_useremail(String tb_useremail) {
    this.tb_useremail = tb_useremail;
}
public String getTb_usersenha() {
    return tb_usersenha;
}
public void setTb_usersenha(String tb_usersenha) {
    this.tb_usersenha = tb_usersenha;
}
public String getTb_userbloqueado() {
    return tb_userbloqueado;
}
public void setTb_userbloqueado(String tb_userbloqueado) {
    this.tb_userbloqueado = tb_userbloqueado;
}
public String getId_user() {
    return id_user;
}
public void setId_user(String id_user) {
    this.id_user = id_user;
}
public void setUsuario(String usuario) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

}

Arquivo: UsuarioInterface.java

> package br.com.syschurch.jdbc.interfaces;

> import br.com.syschurch.jdbc.javabeans.Usuario;
> import java.util.List;

> public interface UsuarioInterface {
>     
>     public void adicionarUsuario(Usuario usuario);
>     public void excluirUsuario(Usuario usuario);
>     public void editarUsuario(Usuario usuario);
>     public boolean existeUsuario(Usuario usuario);
>     public Usuario consultarUsuario(Usuario usuario);
>     public List<Usuario> listarUsuario();
>     public List<Usuario> getlistaUsuarios();
>     
> }

e Finalmente o arquivo JSP: usuarioconsulta.jsp

1. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2. <jsp:useBean id="beanUsuariodao" class="br.com.syschurch.jdbc.dao.UsuarioDao"></jsp:useBean>

3. <c:import url="chamada.jsp"/>        
4. <c:import url="sidebar.jsp"/> 

5. <!-- Inicio Corpo !-->
6. <ul class="breadcrumb">  
7.     <li><a href="principal.jsp">Principal</a></li>
8.     <li><a href="#">Gerenciar Usuários</a></li>
9. </ul>
10. <div class="page-title">                    
11.     <h2><span class="fa fa-user"></span> Gerenciar Usuários</h2>
12. </div>

13. <div class="col-md-12">
14.     <a class="btn btn-primary"  href="usuariocadastra.jsp"><i class="fa fa-plus"></i> Novo Usuário</a>
15.     <br />
16.     <br />
17. </div>

18. <div class="col-md-12">
19.     <div class="panel panel-default">
20.         <div class="panel-body ">
21.             <form name="frmDados" id="form1" action="" method="post" class="form-horizontal form-bordered col-lg-12">
22.                 <div class="form-group pesquisa">
23.                     <label class="col-md-2 control-label text-black" for="pesq">PESQUISA:</label>
24.                     <div class="col-md-6">
25.                         <input type="text" name="pesq" value="" style="max-width:px;" id="pesq" required class="form-control "/>
26.                     </div>
27.                 </div>
28.                 <div class="form-group ">
29.                     <label class="col-md-2 control-label text-black"></label>
30.                     <div class="col-md-6">
31.                         <input type="submit" class="btn btn-primary" id="pesquisar" height="35px"  name ="Pesquisar" value="Pesquisar"   /> 
32.                     </div>
33.                 </div>
34.             </form>
35.         </div>
36.     </div>
37. </div>

38. <div class="col-md-12">                    
39.     <div class="panel panel-default">
40.         <div class="panel-body">
41.             <div id="print" class="table-responsive">
42.                 <form name="frmConsulta" id="form2" action="" method="">
43.                     <table id="DataTables_Table_0" class="table datatable dataTable no-footer" aria-describedby="DataTables_Table_0_info">
44.                         <thead>
45.                             <tr>
46.                                 <th style="min-width:30px">AÇÃO</th>
47.                                 <th>CODIGO</th>
48.                                 <th>USUARIO NOME</th>
49.                                 <th>EMAIL</th>
50.                             </tr>
51.                         </thead>
52.                         <tbody>
53.                             <c:forEach var="users" items="${beanUsuariodao.listaUsuarios}">                            
54.                                 <tr>
55.                                     <td>
56.                                         <a class="btn btn-info btn-rounded" href="" data-toggle="tooltip" data-placement="top" title="" data-original-title="Editar">
57.                                             <i style="margin-right: 0px;" class="fa fa-pencil"></i>
58.                                         </a>
59.                                         <a class="btn btn-danger btn-rounded excluir" href="UsuarioServlet?acao=Excluir&usuario=${users.id_user}" id="" data-toggle="tooltip" data-placement="top" title="" data-original-title="Excluir">
60.                                             <i style="margin-right: 0px;" class="fa fa-times"></i>
61.                                         </a></td>
62.                                     <td>${users.id_user}</td>
63.                                     <td>${users.tb_username}</td>
64.                                     <td>${users.tb_useremail}</td>
65.                                 </tr>
66.                             </c:forEach>                        
67.                         </tbody>
68.                     </table>
69.                 </form>
70.             </div>
71.         </div>
72.     </div>
73. </div>

74. <!-- Fim Corpo !-->

75. <c:import url="bottom.jsp"/>

Codigo massa com JDBC, Servlets e JSP puro!!

Coloca o codigo do seu UsuarioServlet. Mas eu acho que sua tabela nao está atualizando depois de excluir, pq a referencia dos dados da lista está antiga ainda

Igor, obrigado pelo comentário. A proposta é justamente trabalhar com o código mais limpo. Segue abaixo o arquivo UsuarioServlet.java.

package br.com.syschurch.servlets.controller;

import br.com.syschurch.jdbc.dao.UsuarioDao;
import br.com.syschurch.jdbc.javabeans.Usuario;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UsuarioServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String acao = request.getParameter("acao");
        String destino = "usuarioconsulta.jsp";
        String mensagem = "";

        List<Usuario> lista = new ArrayList<>();

        Usuario usuario = new Usuario();
        UsuarioDao usuariodao = new UsuarioDao();

        try {

            // Se a ação for DIFERENTE de Listar são lidos os dados da tela
            if (acao.equalsIgnoreCase("Listar")) {
                lista = usuariodao.listarUsuario();
                request.setAttribute("listaUsuario", lista);                
            }
            if (acao.equalsIgnoreCase("Incluir")) {
                // Verifica se a matrícula informada já existe no Banco de Dados
                // Se existir enviar uma mensagem senão faz a inclusão
            }
            if (usuariodao.existeUsuario(usuario)) {
                mensagem = "Usuario informado já existe!";
            } else {
                usuariodao.adicionarUsuario(usuario);
            }
            if (acao.equalsIgnoreCase("Alterar")) {
                usuariodao.editarUsuario(usuario);
            }
            if (acao.equalsIgnoreCase("Excluir")) {
                usuariodao.excluirUsuario(usuario);
            }
            if (acao.equalsIgnoreCase("Consultar")) {
                usuario = usuariodao.consultarUsuario(usuario);
                request.setAttribute("usuario", usuario);                
//                destino = "aluno.jsp"; 
            }
        } catch (Exception e) {
            mensagem += e.getMessage();
            destino = "erro.jsp";
        }

        // Se a mensagem estiver vazia significa que houve sucesso!
        // Senão será exibida a tela de erro do sistema.
        if (mensagem.length()
                == 0) {
            mensagem = "Usuário Cadastrado com sucesso!";
        } else {
//            destino = "erro.jsp";
        }

        // Lista todos os registros existente no Banco de Dados
        lista = usuariodao.listarUsuario();

        request.setAttribute("listaUsuario", lista);
        request.setAttribute("mensagem", mensagem);

        //O sistema é direcionado para a página 
        //sucesso.jsp Se tudo ocorreu bem
        //erro.jsp se houver algum problema.
        RequestDispatcher rd = request.getRequestDispatcher(destino);
        rd.forward(request, response);
    }
}

ainda estou recebendo essa mensagem de saida no NetBeans… mas estou sem saber o que significa.

jQuery.Deferred exception: $(...).dataTable is not a function (10:03:30:181 | warning, null)
  at web/js/jquery.min.js:2
jQuery.Deferred exception: $.mpb is not a function (10:03:30:200 | warning, null)
  at web/js/jquery.min.js:2
jQuery.Deferred exception: $.mpb is not a function (10:03:30:217 | warning, null)
  at web/js/jquery.min.js:2