[RESOLVIDO] Limpar Cache

4 respostas
T

Boa noite companheiros,

Venho aqui mais uma vez solicitar uma ajuda, o problema é o seguinte:
tenho uma página jsp com um formulário, ao clicar no botão enviar,
este formulário é submetido para uma pagina java (servlet), onde faz a inclusão do registro no banco,
e retorna a uma página jsp onde lista os registros,
até ai tudo bem, o problema é que ao inserir um registro,
caso atualize a página, ele executa a mesma operação, ou seja, ele inclui os mesmos dados novamente.

4 Respostas

H

Os valores desses campos estão em sessão? Se sim, basta limpar esses valores no MB/Servlet.

T

estou simplesmente submetendo o formulário na jsp,
capturando o mesmo com request.getParameter("campo") e fazendo a operação de inclusão
conforme código abaixo.

CADASTRAR DICA DE SAÚDE
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!doctype html public "-//w3c//dtd xhtml 1.0 strict//pt" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
<html>

    <head>
        <title>title</title>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        <link  type="text/css" href="css/cadastro.css" rel="stylesheet"/>
        <link  type="text/css" href="css/Funcionario.css" rel="stylesheet"/>
    </head>

    <body>
	<center><h2>Cadastrar dica</h2></center>
	<br />
	<div id="divError" style="display: none;" align="left"></div>
	<br/>
	<form id="cadastro" method="post" action="ControleDicas">
	<table align="center">
        <tr valign="top" align="left">        
        	<td width="83" height="38"><font color="red">*</font><label>Tema: </label></td>
          	<td><input name="tema" type="text" id="tema" label="Tema" req="true"/>
        	</td>
        </tr>
        <tr valign="top" align="left">
        	<td width="79" height="38" ><font color="red">*</font><label>Descrição: </label></td>
          	<td><textarea name="descricao" cols="52" rows="10" id="descricao" label="Descrição" req="true"></textarea></td>
        </tr>
        <tr valign="bottom" align="right">
        	<td height="43" colspan="2">
                <input type="image" src="imagem/salvar.png" onclick="valida('cadastro');"/>
                <input type="hidden" name="acao" value="cadastrar"/>
            	<a onclick="lT1()"><img src="imagem/limpar.png"/></a>
            </td>
      </tr>
    </table>
	</form>
	</body>
</html>
CLASSE JAVA (SERVLET)...
if (acao != null && acao.equals("cadastrar")){
            String tema = request.getParameter("tema");
            String descricao = request.getParameter("descricao");
        	
            if(tema.isEmpty() || descricao.isEmpty() ){
                request.setAttribute("msg2", "Preencha todos os campos obrigatórios!");
            	request.getRequestDispatcher("Gdicas.jsp?pgn=CadastrarDicas.jsp").forward(request, response);
            }else{
                Dicas_Saude d = new Dicas_Saude();
                d.setTema(tema);
                d.setDescricao(descricao);
                
                Dicas_SaudeDao dao = new Dicas_SaudeDao();
                dao.inserir(d);
                request.setAttribute("msg", "Cadastrado com sucesso!");
                request.getRequestDispatcher("Gdicas.jsp").forward(request, response);
            }
       }
...
H

Ou você retira essas informações do request, ou então utilizar response.sendRedirect ao invés do método forward.

T

jakefrog muito obrigado,
resolvido utilizando o método response.sendRedirect

Criado 7 de junho de 2012
Ultima resposta 7 de jun. de 2012
Respostas 4
Participantes 2