Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/05/2005, 15:00
Avatar de rockobop
rockobop
 
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 7 meses
Puntos: 1
Pregunta: ¿Cómo ejecuto un servlet?
Respuesta:

Existen dos pasos necesarios para completar la ejecución de todo servlet:
1. Compilar el Servlet.
2. Colocarlo en un lugar dónde Java Web Server pueda econtrarlo.

Para compilar el Servlet puede hacerse mediante cualquier entorno de programación de Java, como puede ser JBuilder o bien mediante JSDK. Hay que asegurarse que el SDK de Servlet está en el CLASSPATH. Si se tiene instalado en Java Web Server puede encontrarse en el archivo lib/jws.jar.
Después de compilar, lo primero que debe hacer es poner el archivo generado .class en el CLASSPATH. La forma más sencilla de hacer esto es moverlo a la carpeta /servlet.

Por ultimo para llamar al servlet debe hacerse de la siguiente manera:
http://localhost:8080/servlet/ServletBasico o mejor aún creando una simple página web que invoque al método doGet() o al método doPost().

Esta sería la página web sencilla que llamaría al servlet:
<html>
<head>
<title>Servlet Básico</title>
</head>
<body>
<form action="http://localhost:8080/servlet/ServletBasico"
method="post">
<input type="submit" value="Enviar" name="btn_enviar">
</form>
</body>
</html>
Qué es una JavaBean
Pregunta: Manejar datos de un formulario
Respuesta:

Ejemplo de Manejo de datos de formularios

package hall;

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(ServletUtilities.headWithTitle(title) +
"<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);
}
}
Usa POST para enviar los datos (como deberían hacerlo todos los formularios que tienen entradas PASSWORD), demonstrando el valor de que los servlets incluyan tanto doGet como doPost.
<!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="/servlet/hall.ShowParameters"
METHOD="POST">
Item Number:
<INPUT TYPE="TEXT" NAME="itemNum"><BR>
Quantity:
<INPUT TYPE="TEXT" NAME="quantity"><BR>
Price Each:
<INPUT TYPE="TEXT" NAME="price" VALUE="$"><BR>
<HR>
First Name:
<INPUT TYPE="TEXT" NAME="firstName"><BR>
Last Name:
<INPUT TYPE="TEXT" NAME="lastName"><BR>
Middle Initial:
<INPUT TYPE="TEXT" NAME="initial"><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"><BR>
Repeat Credit Card Number:
<INPUT TYPE="PASSWORD" NAME="cardNum"><BR><BR>
<CENTER>
<INPUT TYPE="SUBMIT" VALUE="Submit Order">
</CENTER>
</FORM>

</BODY>
</HTML>