Scriplets en una aplicación web con Java

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Hola mundo con Scriptlet

Hola mundo con Scriptlet

Comentarios

<h1>Página con comentarios</h1>
<%
//Esto es un comentario de una sola línea
/*
* y esto un comentario de varias líneas
*/
%>

Variables en Scriplet

<h1>JSP Scriplet</h1>
<%
	String texto = "Soy una cadena";
	int i = 5;
	int j = 3;
%>
<%=texto %><br/>
<%=i %>+<%=j %>=<br/>
<%=i+j %><br/>
<%=i+""+j %>

El contenedor transforma un JSP en un servlet

JSP			Servlet

			public class basicCounter_jsp extends SomeSpecialHttpServlet{
				public void _jspService(HttpServletRequest request,
				HttpServletResponse response) 
				throws java.io.IOException, ServletException{
					PrintWriter out = response.getWriter();
					response.setContenType("text/html");
<html><body>		->  		out.println("<html><body>");
<% int count=0; %> 	-> 		int count = 0;  
This page count is now:	-> 		out.write("This page count is now:");
<%= ++ count %>		-> 		out.print(++count);
</body></html>		-> 		out.write("</body></html>");

Todo el código de un scriplet cae dentro del método service.

Por tanto, las variables declaradas en un scriplet son locales.

Declaración de variables y métodos miembro

Todo lo que vaya precedido de una admiración irá declarado directamente dentro de la clase, por tanto usaré el signo de exclamación para declarar variables miembro y métodos

<html>							
<body>					public class basicCounter_jsp extends SomeSpecialHttpServlet{
<%! int doubleCount(){				int doubleCount(){		
	count = count*2;			count = count*2;
	return count;				return count;
}					}
%>
<%! int count=1; %>				int count=1;
					public void _jspService(HttpServletRequest request,
						HttpServletResponse response throws java.io.IOException){
						PrintWriter out = response.getWriter();
						response.setContentType("text/html");
						out.write("<html><body>");
The page count is now:				out.write("The page count is now:");
<%= doubleCount() %>				out.print(doubleCount());
</body>						out.write("</body></html>");
</html>

Objetos implícitos

JspWriter 		-> out
HttpServletRequest 	-> request
HttpServletResponse	-> response
HttpSession 		-> session
ServletContext 		-> application
ServletConfig		-> config
Throwable		-> exception

JSP API

jspInit();	-> ejecutado al cargar el jsp

jspDestroy();   -> ejecutado tras cargar el jsp

_jspService(); 	-> desde aquí se llama al código del jsp.

Desventajas de los scriplets

  • Son difíciles de comprender por alguien que no sea programador java.
  • Es necesario hacer el Casting de objetos y esto ocasiona que tengamos que importar más Clases en los JSP. En el siguiente ejemplo habrá que importar la clase Libro.
<% Libro libro = (Libro)request.getAttribute("libro"); %>
<%=libro.getTitulo()%><br/>

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.