Problema ao cadastrar um registro

Pessoal,

Tenho um CRUD em uma pequena aplicação de estudo que eu estou construindo. Quando estou cadastrando um registro estou me deperando com um problema curioso ao fazer esta rotina:

1 - Entro no formulario de cadastro do registro
2 - Preecho o formulario e clico em cadastrar
3 - O sistema redireciona para a listagem de registros.
4 - Na tela de listagem de registros forço a atualizacao da pagina.

Apos esta atualizacao o ultimo registro cadastrado e cadastrado novamente.

O que poderia ser isso? Ja tentei mudar o Scopo do bean e nao funcionou.

CursoBEAN

@ManagedBean
@RequestScoped
public class CursoBEAN {

    private Curso curso = new Curso();
    private Coordenador coordenador =  new Coordenador();
    private Escola escola = new Escola();
    private List<Curso> cursos;

   //restante dos metodos foram suprimidos....

    public CursoBEAN() {
        curso.setCoordenador(coordenador);
        curso.setEscola(escola);
    }

    public String cadastrar() throws SQLException{ 
        CursoDAO cd = new CursoDAO();
        cd.adcionarCurso(curso);
        return "irParaListar";
    }


}[/code]


adcionar.xhtml
[code]<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <ui:composition template="/app/template/templateMaster.xhtml">
            <ui:define name="informacao">
                <h:outputText value="Adicionar curso"/>
            </ui:define>
            <ui:define name="content">
                <c:if test="#{UsuarioBEAN.verificaSessao()}">
                    <p:messages/>
                    <p:panel>
                        <h:form>
                            <h:panelGrid columns="2" id="tabelaCurso">

                                <h:outputText value="Nome:"/>
                                <h:inputText value="#{cursoBEAN.curso.nome}" size="50"/>

                                <h:outputText value="Unidade Escolar:"/>
                                <h:panelGroup>
                                    <h:selectOneMenu value="#{cursoBEAN.escola.idEscola}">
                                        <f:selectItems id="selectEscola" value="#{EscolaBEAN.combo}"/>
                                    </h:selectOneMenu>
                                    <h:commandLink id="novaEscola" value="Novo escola" action="irParaCadastrarEscola"/>
                                </h:panelGroup>

                                <h:outputText value="Coordenador:"/>
                                <h:panelGroup>
                                    <h:selectOneMenu value="#{cursoBEAN.curso.coordenador.idCoordenador}" >
                                        <f:selectItems id="selectSetor" value="#{CoordenadorBEAN.combo}"/>
                                    </h:selectOneMenu>
                                    <h:commandLink id="novoc" value="Novo coordenador" action="irCadastrarCoordenador"/>
                                </h:panelGroup>

                            </h:panelGrid>

                            <h:commandButton value="Cadastrar" action="#{cursoBEAN.cadastrar}"/>
                        </h:form>
                    </p:panel>
                </c:if>
            </ui:define>
        </ui:composition>
    </h:body>
</html>

Abracos

Posta esse método: adcionarCurso()

CursoDAO

[code]public void adcionarCurso(Curso curso) throws SQLException {

    executarComando("INSERT INTO TB_CURSO(ID_COORDENADOR, NOME) VALUES (?,?)",
            curso.getCoordenador().getIdCoordenador(),
            curso.getNome());

    executarComando("INSERT INTO TB_CURSO_ESCOLA(ID_ESCOLA, ID_CURSO) VALUES (?,?)",
            curso.getEscola().getIdEscola(),
            pegarUltimoCursoCadastrado());

}[/code]

GenericDAO

[code]public int executarComando(String query, Object… params)
throws SQLException {
PreparedStatement ps = getStatement(query);

    for (int i = 0; i < params.length; i++) {
        ps.setObject(i + 1, params[i]);

    }
    int result = ps.executeUpdate();
    ps.close();
    return result;

}[/code]

Existe a necessidade de atualizar a página ao redirecionar para a listagem? Teóricamente a lista já seria gerada com o registro efetuado. O que deve estar acontecendo é que ao atualizar a página ela está gerando uma nova requisição (request) para a sua servlet, causando a nova geração daquele registro. Se não me engano, na apostila FJ-21 da Caelum existe um capítulo que trata disso.
[]s