Servlets en Tomcat 4.1.18

Jose Lopez
18 de Marzo del 2003
Estoy aprendiendo java. He creado una variante de helloworld y me ha funcionado, pero en cuanto intento hacer otro servlet no me funciona. Por ejemplo el siguiente. No se que esta mal , lo he repasado mil veces y estoy en un punto en que no avanzo nada y casi a punto de tirar la toalla.
Agradezco cualquier ayuda, aunque sea una pista para saber que hacer.

Compilo el servlet
RequestParamExample:

import java.io.*;import java.text.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;
/**
* Example servlet showing request headers
*
*/
public class RequestParamExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");

String title = "PARAMETROS DE REQUEST";
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor="white">");
out.println("<h3>" + title + "</h3>");
out.println("<h3>" + "Compilado por Jose" + "</h3>");

String firstName = request.getParameter("firstname");
String lastName = request.getParameter("lastname");
String paramsInRed = "Parametros en este Request:";
out.println(paramsInRed + "<br>");
String nombre = "Nombre ";
String apellidos = "Apellidos";
String noParams="No hay parámetro, por favor usa alguno";
if (firstName != null || lastName != null) {
out.println(nombre);
out.println(" = " + firstName + "<br>");
out.println(apellidos);
out.println(" = " + lastName);
} else {
out.println(noParams);
}

out.println("<P>");
out.print("<form action="");
out.print("RequestParamExample" ");
out.println("method=POST>");
out.println(nombre);
out.println("<input type=text size=20 name=firstname>");
out.println("<br>");
out.println(apellidos);
out.println("<input type=text size=20 name=lastname>");
out.println("<br>");
out.println("<input type=submit>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

doGet(request, response);
}
}


y creo la extructura: /webapps/Demo/WEB-INF/classes/RequestParamExample.class

con el fichero web.xml dentro de WEB-INF siguiente.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>RequestParamExample</servlet-name>
<servlet-class>RequestParamExample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RequestParamExample</servlet-name>
<url-pattern>Request</url-pattern>
</servlet-mapping>
</web-app>

No consigo ver la pagina:
http://localhost:8080/Request/RequestParamExample

Me da el mensaje de error.

HTTP Status 404 - /Request/RequestParamExample
--------------------------------------------------type Status report
message /Request/RequestParamExample
description The requested resource (/Request/RequestParamExample) is not available.
--------------------------------------------------
Apache Tomcat/4.1.18

enna
18 de Marzo del 2003
Hola!
Mira, estuve revisando tu código y lo corrí en mi laptop, y corre perfecto según el proceso de poner los servlets. Veamos...te diré el único cambio que hice. Para esto te diré en que trabajo mis servlets, de acuerdo.
Trabajo con forte for java. Para ver tu programa hice lo siguiente.
Cree un directorio donde iba a trabajar mis serlvets.
Recuerda que la estructura es la siguiente: (Este es mi ejemplo de dónde puse tu servlet)
+ c:Prueba
+ WEN-INFO (esto es un Web-Module)
+ clases (cuando uno crea un web-module, automáticamente te crea esto junto con el folder lib)

enna
18 de Marzo del 2003
Hola!
Mira, estuve revisando tu código y lo corrí en mi laptop, y corre perfecto según el proceso de poner los servlets. Veamos...te diré el único cambio que hice. Para esto te diré en que trabajo mis servlets, de acuerdo.
Trabajo con forte for java. Para ver tu programa hice lo siguiente.
Cree un directorio donde iba a trabajar mis serlvets.
Recuerda que la estructura es la siguiente: (Este es mi ejemplo de dónde puse tu servlet)
+ c:Prueba
+ WEN-INFO (esto es un Web-Module)
+ clases (cuando uno crea un web-module, automáticamente te crea esto junto con el folder lib)

enna
18 de Marzo del 2003
Hola!
Mira, estuve revisando tu código y lo corrí en mi laptop, y corre perfecto según el proceso de poner los servlets. Veamos...te diré el único cambio que hice. Para esto te diré en que trabajo mis servlets, de acuerdo.
Trabajo con forte for java. Para ver tu programa hice lo siguiente.
Cree un directorio donde iba a trabajar mis serlvets.
Recuerda que la estructura es la siguiente: (Este es mi ejemplo de dónde puse tu servlet)
+ c:Prueba
+ WEN-INFO (esto es un Web-Module)
+ clases (cuando uno crea un web-module, automáticamente te crea esto junto con el folder lib)

enna
18 de Marzo del 2003
Disculpame, se cortó la comunicación... Te decia lo siguiente:
Estuve revisando tu código y lo corrí en mi laptop, y corre perfecto según el proceso de poner los servlets direccionando bien la ruta en tu código es decir, te diré paso por paso para ver si lo puedes realizar sin problemas, ok!
Para esto te diré que yo trabajo con forte for java, pero no importa en qué trabajes solo tienes que seguir las estructuras. Para ver tu programa hice lo siguiente.
1ro. He creado un directorio donde voy a trabajar los serlvets.
2do. Recuerda que la estructura es la siguiente: (Este es mi ejemplo de dónde puse tu servlet) En la ventanita del explorer de forte for java tengo:
+ c:Prueba (directorio y file donde creo mi proyecto)
|- WEB-INFO (esto es un Web-Module)
|- clases (cuando uno crea un web-module, automáticamente te crea esto junto con el folder lib)
|- prueba1 (dentro de clases he creado un folder o package donde pongo tu servlet, en mi caso es prueba1. Recuerda que puedes poner tu servlet directamente en clases sin crear este folder pero para un mejor manejo de varios servlet uno crea un folder para almacenarlos)
|- RequestParamExample (es tu servlet)
Y listo... Luego lo compilas con F9, pero antes de esto, verifica en la ventanita de propiedades que el nombre se haya direccionado correctamente, es decir, encontrarás una opción que dice URI alli debe decir la dirección, en este caso: URI= /servlet/prueba1.RequestParamExample, si esto está asi, estás bien.
Luego en web.xml debe de estar también la ruta bien direccionada, en tu caso debe decir....algo como:
<servlet>
<servlet-name>RequestParamExample</servlet-name>
<servlet-class>prueba1.RequestParamExample</servlet-class>
</servlet>//sino creaste el folder prueba1 debe estar solo RequestParamExample
<servlet-mapping>
<servlet-name>RequestParamExample</servlet-name>
<url-pattern>/servlet/prueba1.RequestParamExample</url-pattern>//si no creaste el folder como prueba1 pues debe estar solo:/servlet/RequestParamExample
</servlet-mapping>
Listo....También en tu CODIGO DEBES DIRECCIONAR LA RUTA PONIENDO EN:
out.println("<form action="");
//aqui direcciono también la salida de donde se
//encuentra mi servlet, en este caso como tengo
//la carpeta prueba1, pues se lo agrego y debe
//decir
out.println("prueba1.RequestParamExample" ");

Eso sería todo. Espero que tengas suerte y que me hayas comprendido...