<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LuAuF &#187; J2EE</title>
	<atom:link href="http://luauf.com/category/programacion/j2ee/feed/" rel="self" type="application/rss+xml" />
	<link>http://luauf.com</link>
	<description></description>
	<lastBuildDate>Fri, 27 Jan 2012 01:44:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Tutorial por entregas de JavaServer Faces</title>
		<link>http://luauf.com/2008/07/20/tutorial-por-entregas-de-javaserver-faces/</link>
		<comments>http://luauf.com/2008/07/20/tutorial-por-entregas-de-javaserver-faces/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 00:49:40 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[JavaServer Faces]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Netbeans]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=529</guid>
		<description><![CDATA[En la página de NetBeans, más específicamente en Docs &#38; Support, se publicará una serie de tutoriales para conocer el uso básico de JSF y crear una aplicación web utilizando NetBeans. A lo largo de los mencionados tutoriales, se desarrollará una aplicación llamada jAstrologer. El siguiente documento: Introduction to the JavaServer Faces Framework, es el [...]]]></description>
			<content:encoded><![CDATA[<p>En la página de NetBeans, más específicamente en Docs &amp; Support, se publicará una serie de tutoriales para conocer el uso básico de JSF y crear una aplicación web utilizando NetBeans. A lo largo de los mencionados tutoriales, se desarrollará una aplicación llamada jAstrologer.</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/07/projects-window.png"><img class="alignnone size-medium wp-image-530" title="projects-window" src="http://luauf.com/wp-content/uploads/2008/07/projects-window-142x300.png" alt="" width="142" height="300" /></a></p>
<p>El siguiente documento: <a href="http://www.netbeans.org/kb/61/web/jastrologer-intro.html" target="_blank">Introduction to the JavaServer Faces Framework</a>, es el primero de una serie que demuestra los principios básicos para el uso del framework JSF (JavaServer Faces) para construir aplicaciones web en NetBeans.</p>
<p><span id="more-529"></span></p>
<p>Vía: <a href="http://cafelojano.wordpress.com/2008/07/17/introduccion-a-jsf-un-tutorial-con-entregas-progresivas/" target="_blank">Cafe Lojano</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/07/20/tutorial-por-entregas-de-javaserver-faces/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fragmentos de código Java en páginas JSP</title>
		<link>http://luauf.com/2008/07/20/fragmentos-de-codigo-java-en-paginas-jsp/</link>
		<comments>http://luauf.com/2008/07/20/fragmentos-de-codigo-java-en-paginas-jsp/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 16:13:48 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[JSP]]></category>
		<category><![CDATA[Servlets]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=519</guid>
		<description><![CDATA[El código Java, en una página JSP, se indica enmarcado por los símbolos &#60;% y %&#62;. Estos fragmentos son los que luego, el contenedor web busca para generar los servlets utilizando el código allí escrito. Sin embargo, hay cinco tipos diferentes de etiquetas básicas, que indican a su vez, cinco diferentes tipos de elementos JSP: [...]]]></description>
			<content:encoded><![CDATA[<p>El código Java, en una página JSP, se indica enmarcado por los símbolos &lt;% y %&gt;. Estos fragmentos son los que luego, el contenedor web busca para generar los servlets utilizando el código allí escrito.</p>
<p>Sin embargo, hay cinco tipos diferentes de etiquetas básicas, que indican a su vez, cinco diferentes tipos de elementos JSP:</p>
<ul>
<li>Scriptlets</li>
<li>Expresiones</li>
<li>Directivas</li>
<li>Declaraciones</li>
<li>Comentarios</li>
</ul>
<p><span id="more-519"></span></p>
<p>Los <strong>scriptlets </strong>son fragmentos de código Java totalmente libre, es decir, dentro de un scriptlets  puedes escribir cualquier cosa que un compilador Java pueda entender. Se identifica delimitado por las etiquetas <strong>&lt;%</strong> y <strong>%&gt;</strong>.</p>
<p><code></p>
<div class="syntax_hilite">
<div id="java-6">
<div class="java">&lt;%<br />
&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">System</span></a>.<span style="color: #006600;">out</span>.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Hola"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Chau"</span><span style="color: #66cc66;">&#41;</span>;<br />
%&gt;</div>
</div>
</div>
<p>
</code></p>
<p>Las <strong>expresiones </strong>representan una porción de código que tienen como resultado un String y cuyo resultado se enviará directamente al cliente. Las expresiones van enmarcadas por los símbolos <strong>&lt;%=</strong> y <strong>%&gt;</strong> y no deben incluir el punto y coma al final.</p>
<p><code></p>
<div class="syntax_hilite">
<div id="java-7">
<div class="java">&lt;H1&gt;¡Hola! Hoy es &lt;%= <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=allinurl%3ADate+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> %&gt;&lt;/H1&gt;</div>
</div>
</div>
<p>
</code></p>
<p>Las <strong>directivas </strong>controlan la forma en que el contenedor traduce y ejecuta la página JSP, se colocan entre los demarcadores <strong>&lt;%@</strong> y <strong>%&gt;</strong>.</p>
<p><code></p>
<div class="syntax_hilite">
<div id="java-8">
<div class="java">&lt;%@ page <span style="color: #a1a100;">import=&quot;java.util.*&quot; %&gt; </span></div>
</div>
</div>
<p>
</code></p>
<p>Las <strong>declaraciones </strong>se colocan entre los demarcadores &lt;<strong>%! </strong>y <strong>%&gt;</strong>.</p>
<p><code></p>
<div class="syntax_hilite">
<div id="java-9">
<div class="java">&lt;%!<br />
&nbsp; &nbsp; <span style="color: #993333;">long</span> hora = <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">System</span></a>.<span style="color: #006600;">currentTimeMillis</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ADate+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Date</span></a> fecha = <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=allinurl%3ADate+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #993333;">int</span> i = <span style="color: #cc66cc;">0</span>;<br />
%&gt;</div>
</div>
</div>
<p>
</code></p>
<p>Los <strong>comentarios </strong>se colocan entre los símbolos<strong> &lt;%-- </strong>y <strong>--%&gt;</strong>. Éstos no son traducidos por el compilador, ni enviados al cliente en el HTML resultante.</p>
<p><code></p>
<div class="syntax_hilite">
<div id="java-10">
<div class="java">&lt;%-- Este comentario<br />
no aparece en el <a href="http://www.google.com/search?q=allinurl%3AHTML+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">HTML</span></a> devuelto al cliente&nbsp; --%&gt;</div>
</div>
</div>
<p>
</code></p>
<p>Leido en Orientación a objetos con Java y UML de Carlos Fontela.</p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/07/20/fragmentos-de-codigo-java-en-paginas-jsp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Servlets, NetBeans y AJAX</title>
		<link>http://luauf.com/2008/05/24/servlets-netbeans-y-ajax/</link>
		<comments>http://luauf.com/2008/05/24/servlets-netbeans-y-ajax/#comments</comments>
		<pubDate>Sat, 24 May 2008 22:33:20 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=318</guid>
		<description><![CDATA[Este artículo es la continuación del ejemplo iniciado con Introducción a Java Servlets con NetBeans. El objetivo es modificar el proyecto realizado, para que los datos que se envían al Servlet se hagan por medio del objeto XMLHttpRequest y que mediante DOM accedamos y modifiquemos algunas partes de nuestro documento actual. En resumen, el objetivo [...]]]></description>
			<content:encoded><![CDATA[<p>Este artículo es la continuación del ejemplo iniciado con <a href="http://luauf.com/2008/05/21/introduccion-a-java-servlets-con-netbeans/" target="_self">Introducción a Java Servlets con NetBeans</a>. El objetivo es modificar el proyecto realizado, para que los datos que se envían al Servlet se hagan por medio del objeto XMLHttpRequest y que mediante DOM accedamos y modifiquemos algunas partes de nuestro documento actual. En resumen, el objetivo es incorporar AJAX a nuestro proyecto. Por lo tanto, también recomiendo leer una <a href="http://luauf.com/2008/05/04/ajax-introduccion-teorica/" target="_self">Introducción teórica a AJAX</a>, ya que en este artículo me enfocaré exclusivamente en el código.</p>
<p><span id="more-318"></span></p>
<p>Sobre el proyecto inicial de <a href="http://luauf.com/2008/05/21/introduccion-a-java-servlets-con-netbeans/" target="_self">Introducción a Java Servlets con NetBeans</a>, realizaremos las siguientes modificaciones:</p>
<ul>
<li>Del lado del cliente:
<ul>
<li>En el formulario de envío de datos se quitará el botón submit y se agregará un nuevo botón, que en su evento onclick ejecutará una función Javascript.</li>
<li>Se agregará una función Javascript, que instanciará el objeto XMLHttpRequest, enviará los datos al servidor y procesará la respuesta del Servlet.</li>
</ul>
</li>
<li>Del lado del servidor:
<ul>
<li>Se modificará el código de la respuesta enviada por el Servlet, antes enviaba todo un documento HTML (&lt;HTML&gt;&lt;HEAD&gt;.... &lt;/HEAD&gt;&lt;BODY&gt;...&lt;/BODY&gt;&lt;/HTML&gt;). Ahora solo enviará un fragmento de código HTML, pues el mismo, procesado por el cliente, se insertará en la página HTML existente, pues con el objeto XMLHttpRequest el cliente se evita cargar de nuevo la página (uno de los principales objetivos de AJAX)</li>
</ul>
</li>
</ul>
<p>Haciendo efectivos los cambios mencionados, el cliente queda así:</p>
<p><code></p>
<div class="syntax_hilite">
<div id="html-13">
<div class="html"><span style="color: #009900;"><a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">&lt;html&gt;</span></a></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">&lt;head&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">&lt;meta</span></a> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">"Content-Type"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"text/html; charset=UTF-8"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/title.html"><span style="color: #000000; font-weight: bold;">&lt;title&gt;</span></a></span>Hello World<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head&gt;</span></span></p>
<p>
&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script&gt;</span></a></span><br />
&nbsp; &nbsp; function Enviar() {</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; var obj = false;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if (window.XMLHttpRequest) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Cuidado aqui, el objeto XMLHttpRequest no esta disponible en versiones previas a IE7<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obj = new XMLHttpRequest();<br />
&nbsp; &nbsp; &nbsp; &nbsp; } else {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; obj.onreadystatechange = function () {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( obj.readyState == 4 <span style="color: #ddbb00;">&amp;&amp; (obj.status == 200 || window.location.href.indexOf (&quot;http&quot;)==- 1)) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById(&quot;Respuesta_Hello&quot;).innerHTML = obj.responseText;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //procesando...<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; };<br />
&nbsp; &nbsp; &nbsp; &nbsp; obj.open(&quot;GET&quot;, &quot;Servlet_Hola?nombre=&quot; + document.getElementById(&quot;nombre&quot;).value , true);<br />
&nbsp; &nbsp; &nbsp; &nbsp; obj.send(null);</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; return (true);<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></p>
<p>&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></a></span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">"Servlet_Hola"</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">"GET"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Ingrese su nombre: <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"nombre"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">""</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">"45"</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"nombre"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"button"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"Enviar (con Ajax)"</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"Enviar();"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"enviarAjax"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"Respuesta_Hello"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Este DIV contendra la respuesta enviada por el Servlet --&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></p>
<p>&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span></p>
<p><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html&gt;</span></span></div>
</div>
</div>
<p>
</code></p>
<p>Por el lado del servidor, el método <strong>processRequest</strong> del Servlet queda así:</p>
<p><code></p>
<div class="syntax_hilite">
<div id="java-14">
<div class="java"><span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #993333;">void</span> processRequest<span style="color: #66cc66;">&#40;</span>HttpServletRequest request, HttpServletResponse response<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">throws</span> ServletException, <a href="http://www.google.com/search?q=allinurl%3AIOException+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">IOException</span></a> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; response.<span style="color: #006600;">setContentType</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"text/html;charset=UTF-8"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3APrintWriter+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">PrintWriter</span></a> out = response.<span style="color: #006600;">getWriter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;strong&gt;Hola "</span> + request.<span style="color: #006600;">getParameter</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"nombre"</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">"&lt;strong&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <span style="color: #000000; font-weight: bold;">finally</span> <span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">close</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p>
</code></p>
<p>Lo ejecutamos, de la misma forma que antes ejecutabamos nuestro proyecto desde NetBeans y probamos tener el comportamiento deseado:</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/hello.jpg"><img class="aligncenter size-medium wp-image-319" title="hello" src="http://luauf.com/wp-content/uploads/2008/05/hello-300x88.jpg" alt="" width="300" height="88" /></a></p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/05/24/servlets-netbeans-y-ajax/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Introducción a Java Servlets con NetBeans</title>
		<link>http://luauf.com/2008/05/21/introduccion-a-java-servlets-con-netbeans/</link>
		<comments>http://luauf.com/2008/05/21/introduccion-a-java-servlets-con-netbeans/#comments</comments>
		<pubDate>Thu, 22 May 2008 02:37:51 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[IDEs]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Netbeans]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=305</guid>
		<description><![CDATA[Los Servlets son una de las tecnologías más importantes de Java. Esta publicación, es un simple ejemplo de construcción de un clásico Hola Mundo en una aplicación web J2EE. Para este ejemplo, habremos de utilizar: NetBeans 5.0 o superior Apache-Tomcat 5.5 o superior En mi caso, utilizaré NetBeans 6.1 con Apache-Tomcat 6.1, particularmente en su [...]]]></description>
			<content:encoded><![CDATA[<p>Los <a href="http://luauf.com/2008/05/01/servlets-vs-java-server-pages/" target="_self">Servlets</a> son una de las tecnologías más importantes de Java. Esta publicación, es un simple ejemplo de construcción de un clásico Hola Mundo en una aplicación web J2EE.</p>
<p>Para este ejemplo, habremos de utilizar:</p>
<ul>
<li>NetBeans 5.0 o superior</li>
<li><a href="http://luauf.com/2008/04/26/instalar-apache-tomcat/" target="_self">Apache-Tomcat</a> 5.5 o superior</li>
</ul>
<p>En mi caso, utilizaré <a href="http://download.netbeans.org/netbeans/6.1/final/" target="_blank">NetBeans 6.1</a> con Apache-Tomcat 6.1, particularmente en su paquete Web &amp; Java EE, que incorpora lo servidores de aplicaciones Java GlassFish y Apache Tomcat.<br />
<span id="more-305"></span></p>
<ul>
<li>Iniciamos NetBeans y seleccionamos <strong>File \ New Project...</strong></li>
<li>Se abre un diálogo que nos solicita el tipo de proyecto, seleccionamos<strong> Web Application</strong></li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t1.jpg"><img class="size-medium wp-image-307" title="t1" src="http://luauf.com/wp-content/uploads/2008/05/t1-300x207.jpg" alt="" width="300" height="207" /></a></p>
<ul>
<li>En el siguiente paso, nos solicita el nombre del proyecto (<strong>Project Name</strong>), en nuestro caso ingresamos Servlet_HelloWorld</li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t2.jpg"><img class="size-medium wp-image-308" title="t2" src="http://luauf.com/wp-content/uploads/2008/05/t2-300x186.jpg" alt="" width="300" height="186" /></a></p>
<ul>
<li>El siguiente paso, nos solicita el servidor de aplicaciones (contenedor de Servlets a utilizar). Así, del combo Server, seleccionamos Tomcat (según la versión que yo tengo instalada, Tomcat 6.0.16)</li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t3.jpg"><img class="aligncenter size-medium wp-image-309" title="t3" src="http://luauf.com/wp-content/uploads/2008/05/t3-300x186.jpg" alt="" width="300" height="186" /></a></p>
<ul>
<li>Finalmente, nos permite seleccionar el o los frameworks a utilizar (Spring, Struts, JSF, etc). No seleccionamos nada pues, por ahora, para este ejempo, no vale la pena.</li>
<li>NetBeans crea por su cuenta el proyecto, una estructura de directorios, y dentro de la carpeta <strong>Web Pages </strong>un arhivo  <strong>index.jsp</strong>, que será el punto de partida de nuestra aplicación. Si bien es de extensión JSP, por ahora no escribiremos código JSP, sinó simplemente un formulario HTML. En este formulario HTML definiremos en el atributo <strong>action </strong>el nombre del <strong>servlet </strong>que se ejecutará al enviar (submit) el formulario.</li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t4.jpg"><img class="alignnone size-medium wp-image-310" title="t4" src="http://luauf.com/wp-content/uploads/2008/05/t4-300x255.jpg" alt="" width="300" height="255" /></a></p>
<p><code></p>
<div class="syntax_hilite">
<div id="html-17">
<div class="html"><span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">"Servlet_Hola"</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">"POST"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ingrese su nombre: <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"nombre"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">""</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">"45"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"submit"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"Enviar"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"enviar"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span></div>
</div>
</div>
<p>
</code></p>
<ul>
<li>Luego, desde el explorador de proyectos, luego de hacer clic derecho en la carpeta Source Packages, seleccionamos <strong>New \ Servlet...</strong></li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t6.jpg"><img class="aligncenter size-medium wp-image-312" title="t6" src="http://luauf.com/wp-content/uploads/2008/05/t6-300x237.jpg" alt="" width="300" height="237" /></a></p>
<ul>
<li>Aquí, se abre un diálogo que nos solicita nombre y paquete del servlet.
<ul>
<li>En nombre, hay que ingresar el mismo nombre del atributo <strong>action </strong>del formulario creado anteriormente, pues este será el <strong>servlet </strong>que recibirá los datos enviados por el formulario HTML. En nuestro caso, según indicamos en el form: <strong>Servlet_Hola</strong>.</li>
<li>En paquete se puede ingresar el nombre que se quiera, ahora no es de importancia.</li>
</ul>
</li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t7.jpg"><img class="aligncenter size-medium wp-image-313" title="t7" src="http://luauf.com/wp-content/uploads/2008/05/t7-300x205.jpg" alt="" width="300" height="205" /></a></p>
<ul>
<li>Dados el nombre del servlet y el paquete, hacemos clic sobre <strong>Finish</strong>.</li>
<li>Finalizado esto, automáticamente crea una clase con el nombre de servlet dado (Servlet_Hola para nosotros), que hereda de <strong>HttpServlet</strong>. Además redefine (override) algunos métodos (<strong>doGet, doPost, getServletInfo</strong>) y los rellena con un poco de código. Además, crea un método <strong>processRequest </strong>(invocado desde los métodos doGet y doPost)<strong> </strong>para procesar los formularios que llegan por los métodos GET y POST.</li>
<li>Nosotros, en este ejemplo, nos limitaremos completar con unas pocas líneas (pues la mayoría la completó automáticamente el NetBeans) el método processRequest para que cree una página HTML que será la respuesta del formulario enviado:</li>
</ul>
<p><code></p>
<div class="syntax_hilite">
<div id="java-18">
<div class="java">package com.<span style="color: #006600;">luauf</span>.<span style="color: #006600;">servlet</span>;</p>
<p><span style="color: #a1a100;">import java.io.*;</span></p>
<p><span style="color: #a1a100;">import javax.servlet.*;</span><br />
<span style="color: #a1a100;">import javax.servlet.http.*;</span></p>
<p><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Servlet_Hola <span style="color: #000000; font-weight: bold;">extends</span> HttpServlet <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/** <br />
&nbsp; &nbsp; * Processes requests for both HTTP &lt;code&gt;GET&lt;/code&gt; and &lt;code&gt;POST&lt;/code&gt; methods.<br />
&nbsp; &nbsp; * @param request servlet request<br />
&nbsp; &nbsp; * @param response servlet response<br />
&nbsp; &nbsp; */</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #993333;">void</span> processRequest<span style="color: #66cc66;">&#40;</span>HttpServletRequest request, HttpServletResponse response<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throws</span> ServletException, <a href="http://www.google.com/search?q=allinurl%3AIOException+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">IOException</span></a> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; response.<span style="color: #006600;">setContentType</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"text/html;charset=UTF-8"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3APrintWriter+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">PrintWriter</span></a> out = response.<span style="color: #006600;">getWriter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/* <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TODO output your page here<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;html&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;head&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;title&gt;Servlet Servlet_Hola&lt;/title&gt;"</span><span style="color: #66cc66;">&#41;</span>;&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;/head&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;body&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;p&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Hola &lt;strong&gt;"</span> + request.<span style="color: #006600;">getParameter</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"nombre"</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">"&lt;strong&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;/p&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;/body&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"&lt;/html&gt;"</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> <span style="color: #000000; font-weight: bold;">finally</span> <span style="color: #66cc66;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">close</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> </p>
<p>&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// &lt;editor-fold defaultstate=&quot;collapsed&quot; desc=&quot;HttpServlet methods. Click on the + sign on the left to edit the code.&quot;&gt;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/** <br />
&nbsp; &nbsp; * Handles the HTTP &lt;code&gt;GET&lt;/code&gt; method.<br />
&nbsp; &nbsp; * @param request servlet request<br />
&nbsp; &nbsp; * @param response servlet response<br />
&nbsp; &nbsp; */</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #993333;">void</span> doGet<span style="color: #66cc66;">&#40;</span>HttpServletRequest request, HttpServletResponse response<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throws</span> ServletException, <a href="http://www.google.com/search?q=allinurl%3AIOException+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">IOException</span></a> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; processRequest<span style="color: #66cc66;">&#40;</span>request, response<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> </p>
<p>&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/** <br />
&nbsp; &nbsp; * Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.<br />
&nbsp; &nbsp; * @param request servlet request<br />
&nbsp; &nbsp; * @param response servlet response<br />
&nbsp; &nbsp; */</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #993333;">void</span> doPost<span style="color: #66cc66;">&#40;</span>HttpServletRequest request, HttpServletResponse response<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throws</span> ServletException, <a href="http://www.google.com/search?q=allinurl%3AIOException+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">IOException</span></a> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; processRequest<span style="color: #66cc66;">&#40;</span>request, response<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></p>
<p>&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/** <br />
&nbsp; &nbsp; * Returns a short description of the servlet.<br />
&nbsp; &nbsp; */</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">String</span></a> getServletInfo<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #ff0000;">"Short description"</span>;<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// &lt;/editor-fold&gt;</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p>
</code></p>
<ul>
<li>Para finalizar, vamos a ejecutar el proyecto, podemos hacerlo desde el menú <strong>Run </strong>o haciendo abriendo el menú contextual del proyecto (desde el explorador de proyectos) y seleccionando <strong>Run</strong>.</li>
<li>Al ejecutar una aplicación web con NetBeans, lo primero que hace el mismo es un <strong>Deploy</strong>, algo así como distribuir la aplicación en el servidor. Por más que nuestro servidor sea local y que el NetBeans lo haga transparente para nosotros, debemos entender que el Tomcat se ejecuta cuando ejecutamos la aplicación y que además posee una estructura de directorios (distinta a nuestra estructura de carpetas del proyecto) donde almacena las aplicaciones web que corre, archivos de configuración, paquetes de clases, etc.</li>
<li>Al ejecutar el proyecto se abrirá el browser predeterminado con la página index.jsp (la que tiene el formulario):</li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t5.jpg"><img class="aligncenter size-medium wp-image-311" title="t5" src="http://luauf.com/wp-content/uploads/2008/05/t5-300x48.jpg" alt="" width="300" height="48" /></a></p>
<ul>
<li>Si ingresamos nuestro nombre en la caja de texto y apretamos Enviar, el formulario se envía al servlet, quien se ejecuta y nos devuelve una nueva página, con un dato, en particular, cargado dinámicamente: nuestro nombre:</li>
</ul>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/05/t8.jpg"><img class="aligncenter size-medium wp-image-306" title="t8" src="http://luauf.com/wp-content/uploads/2008/05/t8-300x43.jpg" alt="" width="300" height="43" /></a></p>
<p>Basado en el texto original publicado en <a href="http://www.java-tips.org/java-tutorials/tutorials/introduction-to-java-servlets-with-netbeans.html" target="_blank">Java Tips</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/05/21/introduccion-a-java-servlets-con-netbeans/feed/</wfw:commentRss>
		<slash:comments>57</slash:comments>
		</item>
		<item>
		<title>Servlets vs Java Server Pages</title>
		<link>http://luauf.com/2008/05/01/servlets-vs-java-server-pages/</link>
		<comments>http://luauf.com/2008/05/01/servlets-vs-java-server-pages/#comments</comments>
		<pubDate>Thu, 01 May 2008 16:16:19 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JSP]]></category>
		<category><![CDATA[Servlet]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=224</guid>
		<description><![CDATA[Las primeras preguntas que me han surgido, previas a mi intrusión en J2EE fueron: ¿Que es un Servlet? ¿Que son las Java Server Pages (JSP)? ¿Cuales son las diferencias entre ambos? ¿Son tecnologías diferentes? En la medida que tomé un libro y empecé a leer acerca del tema, se me han empezado a aclarar las [...]]]></description>
			<content:encoded><![CDATA[<p>Las primeras preguntas que me han surgido, previas a mi intrusión en J2EE fueron:</p>
<ul>
<li>¿Que es un Servlet?</li>
<li>¿Que son las Java Server Pages (JSP)?</li>
<li>¿Cuales son las diferencias entre ambos? ¿Son tecnologías diferentes?</li>
</ul>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-225" title="java_logo" src="http://luauf.com/wp-content/uploads/2008/05/java_logo.gif" alt="" width="91" height="118" /></p>
<p>En la medida que tomé un libro y empecé a leer acerca del tema, se me han empezado a aclarar las cosas. Intentaré, en forma muy concreta, contestar dichas preguntas con mis primeras impresiones acerca del tema:</p>
<p><span id="more-224"></span></p>
<p>JEE (<em>Java Enterprise Edition</em>) es una plataforma de programación para el desarrollo de aplicaciones distribuidas, más precisamente en aplicaciones Java que se ejecutan sobre un servidor de aplicaciones.</p>
<p>El principio básico de funcionamiento se enfoca en una relación cliente-servidor, el cliente solicita la realización de cierta acción, mientras que el servidor realiza la acción y le responde al cliente. Este esquema de petición-respuesta es la base de las vistas de nivel superior sobre redes en Java: <strong>Servlets</strong> y <strong>Java Server</strong> Pages. <a href="http://www.sun.com/" target="_blank">Sun Microsystems</a> es responsable del desarrollo de las especificaciones para los Servlets y Java Server Pages.</p>
<p>Los Servlets son aplicaciones escritas completamente en Java que se guardan y ejecutan en un servidor de aplicaciones.  Los servidores de aplicaciones o contenedores de aplicaciones son el <em>motor del servicio </em>Servlet/JSP. Existen varios contenedores de aplicaciones, un ejemplo de estos es <a href="http://luauf.com/2008/04/26/instalar-apache-tomcat/" target="_blank">Apache Tomcat</a>. De hecho, la implementación de referencia de ambos estándares (Servlet/JSP) se encuentra bajo el desarrollo de <a href="http://www.apache.org" target="_blank">Fundación de software Apache</a> como parte del <a href="http://jakarta.apache.org" target="_blank">Proyecto Jakarta</a>.</p>
<p>La interacción entre cliente-servlet generalmente termina en la generación y posterior envío de una respuesta codificada en HTML, XHTML, XML, u otros formatos, como pueden ser pdf, xml, zip, jpeg, gif, doc, xls, etc.</p>
<p>La tecnología JSP, como leí por alguna parte, es un "<em>Servlet maquillado</em>". En realidad es una extensión de la tecnología de los Servlets. JSP permite a los desasrrolladores de sitios web crear páginas que utilicen la funcionalidad de Java para escribir scriptlets de verdadero código Java en sus páginas (para quienes hayan visto ASP o PHP, el principio de funcionamiento es prácticamente el mismo)</p>
<p>Generalmente:</p>
<ul>
<li>JSP se utiliza cuando la mayoría del contenido que se envía al cliente es estático y marclas, y solo una pequeña porción del código se genera dinámicamente.</li>
<li>Los Servlets se utilizan cuando una pequeña porción del cóntenido que se envía al cliente es estática y marcas.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/05/01/servlets-vs-java-server-pages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

