Por que o Servlet roda duas vezes

Pessoal, preciso muito da ajuda de vocês.

To com Eclipse 3.2, plugin da sysdeo e tomcat 5.5
Esse Servlet abaixo roda duas vezes em seguida apenas quando possui a última linha:
RunTwice_Servlet.java

package runTwice;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RunTwice_Servlet extends HttpServlet{
   private static final long serialVersionUID = 1L;
   protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
      System.out.println("doGet");
      req.setAttribute("detalheLN", "detalheLN");
      getServletContext().getRequestDispatcher("/jsprunTwice.jsp").forward(req, res);
   }
}

Então se eu chamo: http://tccgm.no-ip.org:8091/tcc/runTwice a saída é:

Por causa disso eu acho que o erro é independente do JSP, de qualquer forma aqui está ele:
jsprunTwice.jsp

<%@ page
  language="Java"
  import="runTwice.*"
  import="java.io.*"
  import="java.util.*"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
  <TITLE>RunTwice Final Teste</TITLE>
  <H1><b>RunTwice Final Teste<b></H1>
</HEAD>
<BODY>
  <FORM NAME="form" method="GET" action="/tcc/runTwice">
     <INPUT type="submit">
  </FORM>
  <%=(String)request.getAttribute("detalheLN")%>
</BODY>
<HTML>

Segue também o web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
   <servlet>
      <servlet-name>runTwice</servlet-name>
      <servlet-class>runTwice.RunTwice_Servlet</servlet-class>
   </servlet>
   <servlet>
      <servlet-name>runTwice_jsp</servlet-name>
      <jsp-file>/work/runTwice/jsprunTwice.jsp</jsp-file>
   </servlet>
   <servlet-mapping>
      <servlet-name>runTwice</servlet-name>
      <url-pattern>/runTwice</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>runTwice_jsp</servlet-name>
      <url-pattern>/jsprunTwice.jsp</url-pattern>
   </servlet-mapping>
</web-app>

Se no .java eu escrever também o doPost igual ao doGet, e fizer o form com method=“POST”, a saída vai ser:

Já me sugeriram para usar o sendRedirect do response, mas aí eu tenho que setar um atributo no contexto ou na sessão e, em ambos os casos, eu teria que tirar de lá depois. Outra coisa boa do forward é que ele deixa o endereço do servlet na barra de endereço e o sendRedirect deixa o endereço atual.
Qualquer ajuda é muito bem vinda.

É… realmente está estranho…

pq vc está fazendo o mapeamento do seu arquivo jsp?
não seria mais fácil usar o getRequestDispather encaminhando diretamente para um arquivo jsp?

Acho que pode ser que assim funcione… tira o mapeamento dos seus arquivos JSPs… deixa somente o mapeamento para as suas classes servlets…

tenta ae…

Cara, não adiantou. Com ou sem o mapeamento do jsp dá na mesma.
Alguém poderia tentar montar esse projetinho pra ver se tem o mesmo problema e se há uma solução?
Estou a ponto de desistir desse método ou até mesmo de programar. :wink: brincadeira