Foros del Web » Programación para mayores de 30 ;) » Java »

dudas servlets

Estas en el tema de dudas servlets en el foro de Java en Foros del Web. he estado probando servlets en tomcat y por ahora me funcionan todo menos los que son llamados desde una pagina html , voy con el ...
  #1 (permalink)  
Antiguo 15/11/2004, 18:05
 
Fecha de Ingreso: noviembre-2004
Mensajes: 12
Antigüedad: 19 años, 5 meses
Puntos: 0
dudas servlets

he estado probando servlets en tomcat y por ahora me funcionan todo menos los que son llamados desde una pagina html , voy con el ejemplo :
tengo un archivo PostForm.html
y un servlet ShowParameters.java que enseña lo que metes en el formulario
el servlet lo tenga aqui ya compilado con su .class
jakarta-tomcat-5.0.28\webapps\ROOT\WEB-INF\classes\org\stevengould\Show
y el html en jakarta-tomcat-5.0.28\webapps\ROOT

Mi pregunta es como tengo que configurar el html en el form action cual es la ruta que tengo que poner me refiero a http://localhost:8080/...aqui hasta llegar a mi servlet
he probado de todo y no hay manera
Los demas servlets que no hacen referencia a paginas html m han funcionado
gracias
  #2 (permalink)  
Antiguo 15/11/2004, 20:34
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Primero que nada, recuerda que si tu formulario envia los datos por medio del metodo POST, en tu servlet debes tener el metodo

public void doPost(....

en caso contrario te dara error y te dira que ese metodo no lo soporta.

Con respecto a que direccion debes poner, debe ser la misma ruta que tienes configurado en tu web.xml

por ejemplo, si configuraste para que tu servele tenga el <url-pattern>/servlet/Prueba<url-pattern>

entonces debes tener el action hacia

http://localhost:8080/servlet/Prueba

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 16/11/2004, 06:32
 
Fecha de Ingreso: noviembre-2004
Mensajes: 12
Antigüedad: 19 años, 5 meses
Puntos: 0
gracias por tu contestacion pero me sigue sin ir te voy a poner el codigo a ver si encuentras algo k no veo yo :
la clase ShowParameters.java

package org.stevengould.show;

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


/** Shows all the parameters sent to the servlet via either
* GET or POST. Specially marks parameters that have no values or
* multiple values.
*
* Part of tutorial on servlets and JSP that appears at
* http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/
* 1999 Marty Hall; may be freely used or adapted.
*/

public class ShowParameters extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Reading All Request Parameters";
out.println(
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=CENTER>" + title + "</H1>\n" +
"<TABLE BORDER=1 ALIGN=CENTER>\n" +
"<TR BGCOLOR=\"#FFAD00\">\n" +
"<TH>Parameter Name<TH>Parameter Value(s)");
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = (String)paramNames.nextElement();
out.println("<TR><TD>" + paramName + "\n<TD>");
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() == 0)
out.print("<I>No Value</I>");
else
out.print(paramValue);
} else {
out.println("<UL>");
for(int i=0; i<paramValues.length; i++) {
out.println("<LI>" + paramValues[i]);
}
out.println("</UL>");
}
}
out.println("</TABLE>\n</BODY></HTML>");
}

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

Aqui el PostForm.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>A Sample FORM using POST</TITLE>
</HEAD>

<BODY BGCOLOR="#FDF5E6">
<H1 ALIGN="CENTER">A Sample FORM using POST</H1>

<FORM ACTION="/SampleForm" METHOD="POST">
Item Number:
<INPUT TYPE="TEXT" NAME="itemNum" size="20"><BR>
Quantity:
<INPUT TYPE="TEXT" NAME="quantity" size="20"><BR>
Price Each:
<INPUT TYPE="TEXT" NAME="price" VALUE="$" size="20"><BR>
<HR>
First Name:
<INPUT TYPE="TEXT" NAME="firstName" size="20"><BR>
Last Name:
<INPUT TYPE="TEXT" NAME="lastName" size="20"><BR>
Middle Initial:
<INPUT TYPE="TEXT" NAME="initial" size="20"><BR>
Shipping Address:
<TEXTAREA NAME="address" ROWS=3 COLS=40></TEXTAREA><BR>
Credit Card:<BR>
<INPUT TYPE="RADIO" NAME="cardType" VALUE="Visa">Visa<BR>
<INPUT TYPE="RADIO" NAME="cardType" VALUE="Master Card">Master Card<BR>
<INPUT TYPE="RADIO" NAME="cardType" VALUE="Amex">American Express<BR>
<INPUT TYPE="RADIO" NAME="cardType" VALUE="Discover">Discover<BR>
<INPUT TYPE="RADIO" NAME="cardType" VALUE="Java SmartCard">Java SmartCard<BR>
Credit Card Number:
<INPUT TYPE="PASSWORD" NAME="cardNum" size="20"><BR>
Repeat Credit Card Number:
<INPUT TYPE="PASSWORD" NAME="cardNum" size="20"><BR><BR>
<CENTER>
<INPUT TYPE="SUBMIT" VALUE="Submit Order">
</CENTER>
</FORM>

</BODY>
</HTML>

y por ultimo el web.xml

<servlet>
<servlet-name>org.stevengould.Show.ShowParameters</servlet-name>
<servlet-class>org.stevengould.Show.ShowParameters</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>org.stevengould.Show.ShowParameters</servlet-name>
<url-pattern>/SampleForm</url-pattern>
</servlet-mapping>
decir que cuando pongo http://127.0.0.1:8080/SampleForm en el navegador
me sale un error HTTP 500 que es todo esto :

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: Error reservando espacio para una instancia de servlet
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:683)
java.lang.Thread.run(Thread.java:595)


causa raíz

java.lang.NoClassDefFoundError: org/stevengould/Show/ShowParameters (wrong name: org/stevengould/show/ShowParameters)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java :620)
java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findC lassInternal(WebappClassLoader.java:1634)
org.apache.catalina.loader.WebappClassLoader.findC lass(WebappClassLoader.java:860)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1307)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1189)
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(Co yoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(P oolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:683)
java.lang.Thread.run(Thread.java:595)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/5.0.28.

ya se que hay mucha letra pero supongo k asi sera mas facil de resolver
gracias
  #4 (permalink)  
Antiguo 20/11/2004, 21:26
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oviedo
Mensajes: 99
Antigüedad: 19 años, 5 meses
Puntos: 1
Has declarado dentro de tu sevlet este package:
package org.stevengould.show;

Y has puesto en el descriptor esto:
<servlet>
<servlet-name>org.stevengould.Show.ShowParameters</servlet-name>
<servlet-class>org.stevengould.Show.ShowParameters</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>org.stevengould.Show.ShowParameters</servlet-name>
<url-pattern>/SampleForm</url-pattern>
</servlet-mapping>

show -> Show
El contenedor WEB Tomcat diferencia entre mayusculas y minusculas. Deberias poner los dos igual: Show o show.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:32.