Controle de Ações de um usuario em JSP+Servlet

Galera boa tarde.

Minha duvida é a seguinte:

Eu preciso fazer com que quando um usuario executar uma ação(Ex: submit) em um formulario, ao mesmo tempo seja executado um insert em uma tabela Guardando a informação de quem foi o user e qual a terefa que ele executou, o dia e hora etc…

Eu gostaria de saber qual a melhor maneira de se implementar isso?

Seria chamando um metodo em cada servlet que executa uma ação?

Ou por um filter??

Ou existe mais alguma alternativa que se enquadra melhor??

Obs: Não quero tudo picadinho, pois ja sei +ou- como fazer, porem algum exemplo sera bem vindo :slight_smile:

abraço a todos e obrigado por tudo…

Cara se eu entendi bem você quer gravare log das ações do seu sistema, parta mim o melhor jeito de fazer isso é com o log4j dê uma olhada lá no site do projeto e você vai ver que é um jeito prático e facil de fazer o que você esta querendo.
http://projects.apache.org/projects/log4j.html
Marciano.

Opa, valeu mesmo, irei verificar e posto aqui para os colegas oque achei :slight_smile:

abraço e valeuuuu

Cara uma forma simples é criar um tabela no seu banco de dados chamada log. Quando você efetuar um ação de inserção por exemplo na tabela de usuario se a resposta for true você inseri o nome do usuário pego da sessão e o horário e inseri na tabela log.

exemplo:

if (dao.inserir(usuario)) { if (log.inserir(dao.getQuery())) { mensagem = getMensagem("inclusao"); limparDados(); this.acao = PADRAO; } else { rollback(); mensagem = getMensagem("erroBanco"); } } else { mensagem = getMensagem("erroBanco"); } }

public boolean inserir(String sql) {
boolean retorno=false;

    //Pega a Data e a Hora
    log.setData(new Timestamp(System.currentTimeMillis()));
   
   //Pega a Descrição  
   log.setDescricao(sql);

    //Pegar o Tipo de Ação. ( exemplo INSERT, UPDATE, DELETE ) 
    log.setAcao(acaoSQL(sql));

    FacesContext context = FacesContext.getCurrentInstance();
    HttpSession sessao = (HttpSession) context.getExternalContext().getSession(false);
   
   //Pega o usuario da sessão do Faces 
   log.setUsuario(sessao.getAttribute("login").toString());
   
   //Pega o nome da tabela
   log.setNmTabela(nomeTabela(sql));

    abrirConexao();
    if (dao.inserir(log)){
        retorno = true;
    }
    fecharConexao();

    return retorno;
}

acho que esse trecho vai lhe ajudar …