
22/05/2005, 14:59
|
 | | | Fecha de Ingreso: octubre-2004 Ubicación: Bolivia
Mensajes: 826
Antigüedad: 20 años, 4 meses Puntos: 1 | |
Pregunta: Como realizo declaraciones en JSP
Respuesta:
Un bloque de declaraciones típico sería <%! declaración %>
Un ejemplo de declaración de script sería el siguiente:
<HTML>
<HEAD>
<TITLE>Página simple JSP</TITLE>
</HEAD>
<BODY>
<%! String strCadena = "x";
int intContador = 0;
%>
</BODY>
</HTML>
Pregunta: ¿Como genero Scripts en JSP?
Respuesta:
En Java los Scripts estan residentes entre los tags <% y %>.
Este bloques de código estarán dentro del servlets generado incluídos en método _jspService().
Los Scripts pueden acceder a cualquier variable o Beans que haya sido declarado. También hay algunos objetos implícitos disponibles para los Scripts desde entorno del Servlet. Vamos a verlos a continuación.
Objetos implícitos Descripción
Request Es la petición del cliente. Es normalmente una subclase de la case HttpServletRequest.
Response Es la página JSP de respuesta y es una subclase de HttpServletResponse.
pageContext Los atributos de la página y los objetos implicitos necesitan ser accesibles a través de API, para permitir al motro de JSP compilar la página. Pero cada servidor tiene implementaciones específicas de cada uno de esos atributos y objetos. Para solucionar este problema, el motor de JSP utilizar la clase Factory para devolver la implementación de clase PageContext del servidor. Esta clase PageContext es inicializada con los objetos response y request y algunos atributos de la directiva de la página (erropage, session,buffer and autoflush) y facilita los otros objetos implícitos para la pagina de petición.Veremos más más adelante.
Session El objeto de sesión HTTP asociado a la petición.
Application Lo que devuelve el servlet cuando se llama a getServletConfig().getContext()
Out El objeto que representa la salida de texto por pantalla.
Config El objeto ServletConfig de la página.
Page Es la forma que tiene la página para referirse a si misma. Se usa como alternativa al objeto this
Exception Es una subclase libre de Throwable que es pasadaa la página que majena los errores.
El siguiente fragmento de código muestra como obtener el valor de una parámetro mediante el
objeto request, y como pasarlo a una cadena para mostrarlo en pantalla.
<%
String strNombre = request.getParameter("nombre");
out.println(strNombre);
%>
Pregunta: Como implemento expreciones en JSP
Respuesta:
Un ejemplo sería:
<% for (int i=0;i<5;i++) { %>
<BR>El valor del contador es <%=i%>
<% } %>
Pregunta: ¿Qué es un contenedor de Servelets?
Respuesta:
El contenedor de servlets tiene que encargarse, entre otras cosas, de pasar las peticiones del cliente al servlet y este último de devolver la respuesta solicitada al cliente. La implementación actual del servlet difiere de un programa a otro, pero la interface entre contenedor del servlet y el servlet se especifica en la API del servlet.
Basicamente, el ciclo de vida de un servlet es como se detalla a continuación:
El contenedor de servlet crea una instancia del servlet
El contenedor llama al método init() del servlet
Si el contenedor tiene una petición para el servlet, se llama al método service()
Después de destruir la instancia, el contenedor llama al método destroy()
La instancia es destruída y marcada como una colección desechada.
Ciclo de vida de un Servlet
El ciclo de vida de un Servlet tiene un diseño muy simple orientado a objetos. Un Servlet es construído e inicializado, después se procesan cero o varias peticiones y por último se destruye.
En este punto el servlet es totalmente destruído y es una colección de deshechos. Este diseño explica porque un Servlet reemplaza perfectamente a un CGI. El servlet es cargado un sóla vez y está residente en memoria mientras se procesan las respuestas.
La interface que define esta estructura es javax.servlet.Serlvet. La interface del Serlvet define lo métodos del ciclo de vida. Estos métodos son Init(), el método service() y el método destroy();
Init()
En el método Init() es dónde empieza la vida de un servlet. Es llamado inmediatamente después de ser instanciado. Y es llamado un sólo vez. El método Init() crea e inicializa los recursos que serán usados mientras se manejan las peticiones. Este método tiene la siguiente forma:
public void init(ServletConfig config) throws ServletException;
Service()
El método Service() majena las peticiones enviadas por el cliente. No pueden dar comienzo los servicios de las peticiones hasta que el método Init() no ha sido ejecutado. La implementación más habitual del metódo Service() está en la clase HttServlet.
La forma del método Services es como sigue:
public void service(ServletRequest peticion, ServletResponse respuesta)throws ServletExpetion, IOException;
El método service() implementa el paradigma de la respuesta y de la petición. El objeto ServletRequest contiene información sobre la petición del servicio e información encapsulada que proporciona el cliente. El objeto ServletResponse contiene la información que se devuelve al cliente.
Destroy()
Este método significa el final de la vida de un Servlet. Cuando un servicio se finaliza se llama al método Destroy(). Este método es dónde todos los recursos creados en el método Init() deben ser limpiados. Por ejemplo es el lugar dónde, si tenemos una conexión a una base de datos, debe cerrarse. También es el lugar dónde debe guardarse información persistente en caso de que la utilicemos en algún otro servicio. Esta es la forma que tiene el método Destroy():
public void destroy();
Un Servlet básico
A continuación se muestra la estructura que tiene un Servlet Básico.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class ServletBasico extends HttpServlet{
public void init(ServletConfig config) throws SerlvetException {
// Siempre se pasa el objet ServletConfig a la superclase
super.init(config);
}
// Proceso HTTP Get de la petición
public void doGet(HttpSerlvetRequest peticion,HttpserlvetResponse respuesta)
throws SerlvetException, IOException {
respuesta.setContentType("text/html");
PrintWriter out = respuesta.getWriter();
out.println("<html>");
out.println("<head><title>Servlet Basico</title></head>");
out.println("<body>");
// Imprime en pantalla el método enviado por la petición
out.println("El método de la petición es" + peticion.getMethod()+"\n");
out.println("</body></html>");
out.close();
}
// Proceso HTTP Post de la petición
public void doPost(HttpSerlvetRequest peticion,HttpServletResponse respuesta)
throws ServletException,IOException {
respuesta.setContentType("text/html");
PrintWriter out = respuesta.getWriter();
out.println("<html>");
out.println("<head><title>Servlet Basico</title></head>");
out.println("<body>");
// Imprime en pantalla el método enviado por la petición
out.println("El método de la petición es" + peticion.getMethod()+"\n");
out.println("</body></html>");
out.close();
}
// Devuelve la información del Servlet
public String getServletInfo(){
return "Información del Servlet de ejemplo básico";
}
En este Servlet, se han pasado por encima métodos también muy importantes que merece la pena la menos nombrarlos.
Método Descripción
getAuthType
Devuelve el equema de auténtificación
de la petición.
getCookies
Devuelve un array de Cookies
encontrados en la petición.
getHeader()
Devuelve las especificaciones del campo
de cabecera de la petición.
Hay otros muchos métodos, como getServetPath, getQueryString(),
getSession(), getMethod() etc, |