Dear all,

I have developed a web application that is running under tomcat 5.5.17 that
is under windows XP.

I have a servlet that retrieves data from a html form, creates an object and
passes this object to a manager class that inserts the data into Oracle.

Everything works fine except that I noticed that my doPost method executes
twice each command. It is incrementing twice the Oracle sequence and
inserting twice the same record. 

Does anyone have a clue on what is going on?

When I look into the table this is what I get:

SQL> select * from marcapropriedade;

IDMARCAPROPRIEDADE DESCRICAO
------------------ ------------------------------
                 1 Acordos Internacionais
                 2 Adm Pública Federal
                 3 Defesa
                 4 Mercosul
                    45 lalalala
                46 lalalala
                47 papapapapapa
                48 papapapapapa
                49 another test
                50 another test               

10 linhas selecionadas.

============================================================================
================
This is my servlet:

//package servlets;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

import objeto.MarcaPropriedade;
import objeto.MarcaPropriedadeGestor;

public class RegistraMarcaPropriedade extends HttpServlet {

  /**
   * Process the HTTP Post request
   */
  public void doPost(HttpServletRequest request, HttpServletResponse
response)
              throws ServletException, IOException {

System.out.println("I am here 1");

    // Create object to store information from previous form
    MarcaPropriedade marcaPropriedade = new MarcaPropriedade();
    marcaPropriedade.setDescricao(request.getParameter("txtDescricao"));
    System.out.println(marcaPropriedade.getDescricao());

System.out.println("I am here 2");
 
    // Create a MarcaPropriedadeGestor to add marcaPropriedade to the
database
    MarcaPropriedadeGestor marcaPropriedadeGestor = new
MarcaPropriedadeGestor();
    marcaPropriedadeGestor.add(marcaPropriedade);

System.out.println("I am here 3");
    
    // Release resources
        marcaPropriedadeGestor.releaseResources();      
   
        // Here the registration is complete.
    // Now send the user to the 'Relação de Marcas de Propriedades' page
    RequestDispatcher dispatcher =
 
this.getServletContext().getRequestDispatcher("//Sisc/exibeMarcaPropriedade.
htm");
    dispatcher.forward(request, response);
  }
}

============================================================================
====
this is what I get from LOG:

I am here 1
I am here 1
papapapapapa
papapapapapa
I am here 2
I am here 2
[Fri Jun 30 11:21:12 BRT 2006]  info: PoolManager: registered JDBC driver
oracle.jdbc.driver.OracleDriver
10
[Fri Jun 30 11:21:12 BRT 2006]  info: oracle: New pool created
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Opened a new connection
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Delivered connection from pool
dentro do add -inicio
Select MarcaPropriedadeIdSeq.NEXTVAL from DUAL
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Opened a new connection
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Delivered connection from pool
dentro do add -inicio
Select MarcaPropriedadeIdSeq.NEXTVAL from DUAL
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Opened a new connection
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Delivered connection from pool
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Opened a new connection
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Delivered connection from pool
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Returned connection to pool
47
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Returned connection to pool
48
insert into MARCAPROPRIEDADE values (?, ?)
insert into MARCAPROPRIEDADE values (?, ?)
I am here 3
I am here 3
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Returned connection to pool
[Fri Jun 30 11:21:13 BRT 2006]  info: oracle: Returned connection to pool
I am here 1
another test
I am here 2
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Delivered connection from pool
dentro do add -inicio
Select MarcaPropriedadeIdSeq.NEXTVAL from DUAL
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Delivered connection from pool
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Returned connection to pool
49
insert into MARCAPROPRIEDADE values (?, ?)
I am here 1
another test
I am here 2
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Delivered connection from pool
dentro do add -inicio
Select MarcaPropriedadeIdSeq.NEXTVAL from DUAL
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Delivered connection from pool
I am here 3
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Returned connection to pool
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Returned connection to pool
50
insert into MARCAPROPRIEDADE values (?, ?)
I am here 3
[Fri Jun 30 11:22:19 BRT 2006]  info: oracle: Returned connection to pool 

============================================================================
============
This is the htm form that calls the servlet:

<html>

<head>

<title>Inclui/Altera Marca Propriedade</title>

<script language="javascript">
////////////////////////////////////////////////////////////////////////////
/
// Set focus to the first form element
//
function focusFirst()
{
        document.all("txtDescricao").focus();
}

////////////////////////////////////////////////////////////////////////////
///
// Validate fields and submit form elements to servlet
RegistraMarcaPropriedade
//
function doFormSubmit()
{
        objfrm=document.incluiAlteraMarcaPropriedade;
        //Store the file path of the next servlet/jsp to be called
        strFilePath = "/Sisc/servlet/RegistraMarcaPropriedade"
  
        strDescricao=objfrm.txtDescricao.value;
        if(isSpecialChar(strDescricao) || !isChar(strDescricao))
        {
        alert("Favor entrar com uma descrição válida.");
                objfrm.txtDescricao.focus();
                return false;
        }

        if(isEmpty(strDescricao))
        {
        alert("Campo obrigatório");
                objfrm.TxtNumber.focus();
                return false;
        }

        objfrm.method="post";
        objfrm.action=strFilePath;
        objfrm.submit();
}

////////////////////////////////////////////////////////////////////////////
///
// Clean all the fields
//
function doClearForm()
{
  for(i=0;i<document.inputFormSearch.elements.length-1;i++)
  {
    if(document.inputFormSearch.elements[i].type=="text")
                document.inputFormSearch.elements[i].value="";
        }
        document.all("txtDescricao").focus();
        return false;
}

////////////////////////////////////////////////////////////////////////////
///
// Checks whether the form input element is empty
//
function isEmpty(formelem)
{
  expisEmpty=/[^ ]/
  return ! expisEmpty.test(formelem);
}

////////////////////////////////////////////////////////////////////////////
///
// Checks whether the form input element is numeric
//
function isNumeric(formelem)
{
        var expisNumeric=/[a-zA-Z\*\~|@\$\%\^\&\*\(\)\#\!\`\-\+\=\.\,\?]/
        return ! expisNumeric.test(formelem)
}

////////////////////////////////////////////////////////////////////////////
///
// Checks whether the form input element is a String
//
function isChar(formelem)
{
        var expisChar=/[0-9]/;
        return ! expisChar.test(formelem);
}

////////////////////////////////////////////////////////////////////////////
///
//Checks whether the form input element contains any Special Characters or
not.
//
function isSpecialChar(formelem)
{
        var expisSpecialChar=/[\&\;\"\*\~\|[EMAIL PROTECTED]<\>\\\+\=\?]/
        return expisSpecialChar.test(formelem)
}
</script>

</head>

<body onload="javascript:focusfirst()">

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%">
  <tr>
    <td width="100%" colspan="3">
    <img border="0" src="images/bannerPR.jpg" width="763" height="21"></td>
  </tr>
  <tr>
    <td width="18%">
    <b>
    <font color="#008080" size="5">SISNAC</font><font color="#008000"
size="5"> </font>
    </b></td>
    <td width="59%">
    <p align="center"><font size="4"><b>Cadastramento de Nova Marca de 
    Propriedade</b></font></td>
    <td width="23%">
    &nbsp;</td>
  </tr>
  <tr>
    <td width="18%">
    &nbsp;</td>
    <td width="82%" colspan="2" align="right">
    &nbsp;</td>
  </tr>
  <tr>
    <td width="100%" colspan="3">
    <p align="center">&nbsp;</p>
    <form name="incluiAlteraMarcaPropriedade">
      <p align="left"> Marca de Propriedade: 
        <input type="text" name="txtDescricao" size="66"></p>
      <p align="center">
        <input type="submit" value="Enviar" name="btnSubmit" onclick="
javascript:return
doFormSubmit()">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="reset" value="Apagar" name="btnApagar"></p>
    </form>
    <p align="center">&nbsp;</p>
    <p align="center">&nbsp;</p>
    </td>
  </tr>
  <tr>
    <td width="100%" colspan="3">&nbsp;</td>
  </tr>
</table>

</body>

</html>
=============================================

any help is welcome!!!

thanks

PS: I have tried different tomcats but the problem persists.

apache-tomcat-5.5.17.exe
jakarta-tomcat-4.1.31.exe
jakarta-tomcat-5.0.30.exe
jakarta-tomcat-5.0.28.exe

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to