Java Server Pages M.C. Juan Carlos Olivares Rojas Servlets • Son aplicaciones que se ejecutan en el lado del servidor y responden a peticiones HTTP realizadas por los usuarios. • Se debe contener un contenedor de servlets como Apache Tomcat para poderlos ejecutar. Servlets • Todos los servlets tienen los siguientes métodos: • • • • void init(ServletConfig config); void destroy (); ServletConfig getServletConfig(); void service(ServletRequest ServletResponse res); • String getServletInfo(); req, Servlets • La clase HttpServlet siguientes métodos: implementa los • doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, service, los cuales son protected void y reciben como argumentos un objeto HttpServletRequest y HttpServletResponse. Servlets • Otros métodos son: – void service(ServletRequest ServletResponse res); – Protected getLastModified(HttpServletRequest); • HttpServletRequest: – Enumeration getAtributeNames(); – Object getAttribute(String name); req, long Servlets • HttpServletRequest: – void removeAttribute(String name); – Void setAttribute(String name, Object value); – Enumeration getParamaterNames() – String[] getParameterValues(String name); – Cookie[] getCookies(); – HttpSession getSession(); – HttpSession getSessionb(boolean create); – String getRequestedSessionId(); Servlets • HttpServletResponse: – ServletOutputStream getOutputStream(); – PrintWriter getWriter(); – void addCookie(); – void addHeader(String name, String value); – void setHeader(String name, String value); – boolean containsHeader(String name); – Void sendRedirect(String location); JSP • ¿Porqué no son tan bueno los servlets? • Por que es necesario mostrar mucho código HTML. • Es más fácil generar el diseño de manera separada y el código dinámico incrustado. JSP • La fecha de hoy es <%= new java.util.Date() %> • Las etiquetas JSP se pueden manejar como XML. • <%-- comentario JSP %> • <%! declaraciones %> JSP • Variables implícitas: – request – response – pageContext – session – application – out – config – page – exception JSP • Directivas de página: – – – – – – – – – – – language extends import session buffer autoFlush info errorPage contentType isThreadSafe pageEnconding JSP • Ejemplo de directivas de página: • <% @ page import=“java.util.*” e r r o r P a g e = “ e r r o r . j s p ” contentType=“text/plain” %> • Se pueden utilizar JavaBeans, los cuales son clases de Java con métodos bien definidos. JSP • Uso de JavaBeans: • <jsp:useBean id=“circ1” scope=“session” class=“capitulo3.Circunferencia”> • <%@ include file=“archivo.jsp”> • <jsp:include page=“pagina.jsp”/> JSP • El problema de utilizar JSP y sobretodo páginas dinámicas es tener que mantener lenguajes distintos. • Se sugiere utilizar JSP-EL (Expresion Languaje) que son etiquetas de JSP para hacer ciclos, acceder a variables, condiciones, etc. Además de utilizar JavaBeans para separa la lógica del negocio. JSP • Algunos contenedores de servlets convierten los .jsp a servlets para mejorar su desempeño. • JSP utiliza los siguientes paquetes: javax.servlet.jsp y javax.servlet.jsp.tagext • Se utiliza el carácter \ para caracteres especiales como %, ‘, “, etc. JSP • <jsp:forward page = “reenvio2.jsp”> • <jsp:param name = “fecha” value=“<%= new java.util.Date() %>” /> • </jsp:forward> • H. Deitel, et al., “Java Como Programar”, Quinta edición, Pearson Prentice Hall, México, 2004, ISBN: 970-26-0518-0, pp. 1111 - 1190. Referencias • A. Martínez, “Programación Web Java”, MP Ediciones, Argentina, 2006, ISBN: 987-526391-1, pp. 325. • ¿Preguntas?