Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO
Objetivos:
Introducción:
Los contenedores de Servlets son los servidores donde se ejecutarán los Servlets. Los
Servlets son los componentes de Java que se ejecutan en el servidor y construyen
páginas Web. En el presente laboratorio se escribirán los primeros servlets que nos
permitirán conocer su estructura.
Preparación:
El alumno debe haber revisado previamente el texto del curso, así como también, las
presentaciones dadas en la clase de teoría.
Procedimiento y Resultados:
ingreso.html
<html>
<body>
<form action="RecuperaPostServlet" method="post">
Nombre : <input name="nombre" type="text"/>
Apellidos:<input name="apellido" type="text"/>
<input type="submit" name="aceptar" value="Aceptar"/>
</form>
</body>
</html>
RecuperaPostServlet.java
…
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
out.println("<html>");
out.println("<body>");
out.println("</body>");
out.println("</html>");
out.close();
}
...
RecuperaGetServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
http://localhost:808_/................../RecuperaGetServlet?param1=java¶m2=ph
p
¶m3=net
Pág. 2
Servlet: Funciones extendidas
3. SERVLET DE SUMA
operaciones.html
<html>
<body>
</body>
</html>
SumaServlet.java
double d1 = Double.parseDouble(op1);
double d2 = Double.parseDouble(op2);
double resultado = d1 + d2;
PrintWriter pw = response.getWriter();
pw.println("<html><body>");
pw.println("El resultado es: " + resultado);
pw.println("</body></html>");
Pág. 3
Servlet: Funciones extendidas
encuesta.html
<html>
<body>
<h2>Encuesta</h2>
<form action="RecuperaEncuestaServlet" method="post">
<h4>¿Qué deportes practicas?</h4>
<input type="checkbox" name="deporte" value="f"/>Fútbol
<input type="checkbox" name="deporte" value="b"/>Basquet
<input type="checkbox" name="deporte" value="t"/>Tenis
<h4>¿Qué sistema operativo conoces?</h4>
<select name="so" multiple>
<option value="win">Windows
<option value="lin">Linux
<option value="mac">MacOSX
</select>
<br/>
<input type="submit" value="Enviar encuesta"/>
</form>
</body>
</html>
RecuperaEncuestaServlet.java
…
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Recuperando deportes
String[] deportes = request.getParameterValues("deporte");
for(int i=0; i<deportes.length; i++){
out.println("Te gusta el " + deportes[i] + "<br/>");
}
out.println("</body></html>");
}
…
Pág. 4
Servlet: Funciones extendidas
PrincipalServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException { PrintWriter out =
response.getWriter(); out.println("<html><body>");
out.println("<h3>Pagina principal</h3>");
RequestDispatcher rd = request.getRequestDispatcher("/TablaServlet");
rd.include(request, response); out.println("</body></html>");
out.close();
}
…
TablaServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<table border='1'>");
out.println("<tr><th>Nombre</th><th>Clave</th>");
out.println("<tr><td>drodriguez</td><td>senati</td></tr>");
out.println("</table>");
out.close();
}
…
PrincipalServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h3>Pagina principal</h3>");
RequestDispatcher rd = request.getRequestDispatcher("/TablaServlet");
rd.forward(request, response); out.println("</body></html>");
out.close();
}
…
TablaServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
PrintWriter out = response.getWriter(); out.println("<table border='1'>");
out.println("<tr><th>Nombre</th><th>Clave</th>");
out.println("<tr><td>drodriguez</td><td>senati</td></tr>");
out.println("</table>"); out.close();
}
…
UnoServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher rd = request.getRequestDispatcher("/DosServlet");
rd.forward(request, response);
}
…
Pág. 6
Servlet: Funciones extendidas
DosServlet.java
…
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
PrintWriter out =
response.getWriter();
out.println("<html><body>");
out.println("El curso es: " + curso);
out.println("<br/>"); out.println("El
ciclo es: " + ciclo);
out.println("</body></html>");
out.close();
}
…
8. REDIRECCIONAMIENTO DE SERVLET’S
RedireccionaServlet.java
…
public void doGet (HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException {
response.sendRedirect("http://www.cnn.com");
}
…
EnviaErrorServlet.java
…
public void doGet(HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
// Luego probar:
// response.sendError(401);
// response.sendError(403, “Eres un intruso”);
}
…
Pág. 7
Servlet: Funciones extendidas
LeerValoresInicioServlet.java
package lab2.servlets;
public void doGet (HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
ServletConfig config = getServletConfig();
String region = config.getInitParameter("region");
String limit = config.getInitParameter("limit");
PrintWriter pw = response.getWriter();
pw.println("<html><body>");
pw.println("La región es: " + region);
pw.println("El límite es: " + limit);
pw.println("</body></html>");
pw.close();
}
…
Pág. 8
Servlet: Funciones extendidas
Agregar en el web.xml
<servlet>
<servlet-name>peru-sales</servlet-name> <servlet-
class>lab2.servlets.LeerValoresInicioServlet </servlet-class>
<init-param>
<param-name>region</param-name>
<param-value>PERU</param-value>
</init-param>
<init-param>
<param-name>limit</param-name>
<param-value>200</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>usa-sales</servlet-name>
<servlet-class>lab2.servlets.LeerValoresInicioServlet </servlet-class>
<init-param>
<param-name>region</param-name>
<param-value>USA</param-value>
</init-param>
<init-param>
<param-name>limit</param-name>
<param-value>550</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>peru-sales</servlet-name>
<url-pattern>/VentasPeru</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>usa-sales</servlet-name>
<url-pattern>/VentasUSA</url-pattern>
</servlet-mapping>
Pág. 9
Servlet: Funciones extendidas
EnviarPDFServlet.java
…
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","attachment; filename=texto.pdf" );
OutputStream os = response.getOutputStream();
//1K buffer
byte[] bytearray = new byte[1024];
ServletContext context = getServletContext();
URL url = context.getResource("/texto.pdf");
InputStream is = url.openStream();
int bytesread = 0;
while( (bytesread = is.read(bytearray) ) != -1 ) {
os.write(bytearray, 0, bytesread);
}
os.flush();
is.close();
}
…
Agregar en el web.xml
…
<context-param>
<param-name>autor</param-name>
<param-value>hamla1@hotmail.com</param-value>
</context-param>
…
LeerParametroDelContextServlet.java
…
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
ServletContext sc = getServletContext();
String autor = sc.getInitParameter("autor");
Pág. 10
Servlet: Funciones extendidas
13. EJERCICIO: Escribir un Servlet que recupere los datos del siguiente formulario.
Conclusiones:
|Pag. 11