Download Nueva colección ejercicios temas 6 y 7
Document related concepts
no text concepts found
Transcript
COLECCIÓN DE PROBLEMAS Y CUESTIONES
SERVIDORES DE INFORMACIÓN
Curso 2005-2006
Temas 6 y 7
Problema 1.
Completar el código del siguiente Servlet para que imprima por consola el valor de las
Cookies que le llegan en la petición HTTP y añada una Cookie a la respuesta cuyo
nombre y valor los saque de la petición HTTP.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CookieExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// print out cookies
???
for (int i = 0; i < cookies.length; i++) {
Cookie c = cookies[i];
String name = c.getName();
String value = c.getValue();
out.println(name + " = " + value);
}
// set a cookie
???
if (name != null && name.length() > 0) {
String value = request.getParameter("cookieValue");
Cookie c = new Cookie(name, value);
???
}
}
}
Sol:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CookieExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws IOException, ServletException
1
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// print out cookies
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
Cookie c = cookies[i];
String name = c.getName();
String value = c.getValue();
out.println(name + " = " + value);
}
// set a cookie
String name = request.getParameter("cookieName");
if (name != null && name.length() > 0) {
String value = request.getParameter("cookieValue");
Cookie c = new Cookie(name, value);
response.addCookie(c);
}
}
}
Pregunta 2.
Comente cómo realizar control de sesiones en un Servlet.
Sol: Pensar tanto en las Cookies como en el HttpSession
Pregunta 3.
Comente qué realiza el siguiente Servlet.
import
import
import
import
java.io.*;
java.util.*;
javax.servlet.*;
javax.servlet.http.*;
public class RequestHeaderExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Enumeration e = request.getHeaderNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = request.getHeader(name);
out.println(name + " = " + value);
}
}
}
2
Modifíquelo para que imprima los nombres de las cabeceras en negrita.
Sol:
Imprime las cabeceras de la petición HTTP.
Para imprimir los nombres de las cabeceras en negritas cambiamos la línea del out por:
out.println("<strong>");
out.println(name);
out.println("</strong>");
out.println(" = " + value);
Pregunta 4.
Comente y enumere algunos objetos implícitos en páginas JSP.
Pregunta 5.
En una página JSP podemos encontrar líneas como:
<jsp:setProperty name=“identificador del Bean” detalles de la propiedad />
indica qué podemos ver en “detalles de la propiedad”.
Sol:
property=“*” (se cogen como propiedades y valores todos los parámetros del
objeto request)
property=“Nombre” (se coge un parámetro con el mismo nombre del objeto
request)
property=“Nombre” param=“NombreParámetro” (si se desean nombres
distintos)
property=“Nombre” value=“valor parámetro” (se asignan propiedades
arbitrarias con valores concretos)
3
Pregunta 6.
Comentar las líneas del siguiente fichero:
<?xml version=“1.0” encoding=“ISO-8859-1” ?>
<!DOCTYPE taglib >
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname> ejemplos </shortname>
<info> Biblioteca de ejemplos sencillos </info>
<tag>
<name> Hola </name>
<tagclass> es.uniovi.di.servinfo.etiquetas.HolaTag </tagclass>
<info> Ejemplo simple </info>
</tag>
</taglib>
Sol:
Se trata de la definición de una librería (biblioteca) de etiquetas personalizadas para JSP
en la que solo tenemos una etiqueta (Hola) implementada en la clase HolaTag
Problema 7.
Escribir una página JSP que imprima mediante un bucle los número del 1 al 10. ¿Cómo
haría para que imprimiera del 1 a un número mandado por el cliente en un formulario?
Sol:
<%@ page language="java" %>
<TITLE>Bucle sencillo</TITLE>
Números del 1 al 10<BR>
<%
for (int i = 1; i <= 10; i++) {
out.println(i + "<BR>");
}
%>
Para coger el valor máximo de i del formulario usariamos el objeto implicito request y
obtendríamos el request.getParameter que envía el cliente.
4
Related documents