<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es_ES"><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://www.manualweb.net/feed/javaee.xml" rel="self" type="application/atom+xml" /><link href="https://www.manualweb.net/" rel="alternate" type="text/html" hreflang="es_ES" /><updated>2026-01-29T16:33:46+01:00</updated><id>https://www.manualweb.net/feed/javaee.xml</id><title type="html">Manual Web | Javaee</title><subtitle>Tutoriales de programación en español.
</subtitle><author><name>manual_web</name></author><entry><title type="html">Introducción a los Servlets</title><link href="https://www.manualweb.net/javaee/introduccion-servlets/" rel="alternate" type="text/html" title="Introducción a los Servlets" /><published>2026-01-29T16:33:46+01:00</published><updated>2026-01-29T16:33:46+01:00</updated><id>https://www.manualweb.net/javaee/introduccion-servlets</id><content type="html" xml:base="https://www.manualweb.net/javaee/introduccion-servlets/"><![CDATA[<h2 id="qué-son-los-servlets">¿Qué son los servlets?</h2>

<p>Los servlets son modulos java que nos sirven para extender las capacidades de los servidores web. Aunque es una definición un poco ambigua los servlets son programas para los servidores, mientras que los applets son programas para los clientes y los middlets los programas para microdispositivos. Dentro de una evolución cronologica los servlets son la siguiente etapa de los CGI. En algunas bibliografias son referenciados como CGI de 2ª generación, la cual comparten con lenguajes como <a href="http://www.manualweb.net/tutorial-asp/" title="ASP">ASP</a>, <a href="http://www.manualweb.net/tutorial-php/" title="PHP">PHP</a> y <a href="http://www.manualweb.net/tutorial-jsp/" title="JSP">JSP</a> (que al fin y al cabo son servlets). El uso de los servlets viene a ser en un tanto por ciento elevando el del desarrollo de páginas web dinámicas (en contenido y diseño) apoyándose además en la potencia que nos proporciona el lenguaje Java.</p>

<h2 id="para-qué-podemos-utilizar-los-servlets">Para qué podemos utilizar los servlets</h2>

<p>Podremos desarrollar desde un simple servlet que nos muestre una página web simple saludandonos hasta uno que se conecte a una base de datos utilizando un pool de conexiones, encriptando la información en su envio, accediendo a bases de datos distribuidas y manteniendo su información de forma persistente en un EJB. Todo ello para conseguir una información dinámica. A partir de aqui las posibilidades son “infinitas”.</p>

<h2 id="ciclo-de-vida-del-servlet">Ciclo de vida del servlet</h2>

<p>Describir un servlet es como describir una maquina de estados. Desde el momento que inicializamos el servlet hasta que el servlet es destruido, este, pasará por una serie de estados dependiendo de cada una de las situaciones ante las que se encuentre. Muy por encima podríamos decir que la secuencia de acciones que se producen en un servlet son las siguientes. La primera vez que realicemos una petición sobre el servlet se ejecutará un método de inicio, denominado <a href="http://www.w3api.com/wiki/Java:Servlet.init()" title="init()">init</a>, en el cual inicializaremos las variables generales. Una vez que nos hemos inicializado nos pondremos a la escucha en espera de peticiones. Cada una de las peticiones que recibamos serán atendidas en hilos de ejecución diferentes, a no ser que indiquemos lo contrario. Dependiendo de como llegen los datos (mediante post o get) al servlet se ejecutará un método u otro <a href="http://w3api.com/wiki/Java:HttpServlet.doPost()" title="doPost()">doPost</a> o <a href="http://www.w3api.com/wiki/Java:HttpServlet.doGet()" title="doGet()">doGet</a>. Por último el servlet tendrá un estado de finalización en el cual eliminará las variables creadas en su inicialización, conexiones a bases de datos,… este el el método destroy.</p>

<h2 id="escribiendo-un-primer-servlet">Escribiendo un primer servlet</h2>

<p>A la hora de codificar lo primero que debemos de saber es que nuestro servlet deberá de heredar de la clase <a href="http://www.w3api.com/wiki/Java:HttpServlet" title="HttpServlet">HttpServlet</a> la cual contendrá todos los métodos necesarios para generar un servlet. Dicha clase la podemos encontrar en el <a href="http://w3api.com/wiki/Categor%C3%ADa:Java_Servlet" title="javax.servlet">paquete javax.servlet</a>.</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">javax.servlet.*</span><span class="o">;</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">MiServlet</span> <span class="kd">extends</span> <span class="nc">HttpServlet</span> <span class="o">{}</span>
</code></pre></div></div>

<p>Solamente deberemos de sobrescribir aquellos métodos que consideremos oportunos a implementar en el servlet. Si por ejemplo no necesitásemos realizar ninguna inicialización, no haría falta el reescribir el método <a href="http://www.w3api.com/wiki/Java:Servlet.init()" title="init()">init</a>. Así un primer servlet que mostrase la frase, como no, de “Hola Mundo” quedaría de la siguiente forma:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">javax.servlet.*</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javax.servlet.http.*</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">MiPrimerServlet</span> <span class="kd">extends</span> <span class="nc">HttpServlet</span> <span class="o">{</span>
  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">doGet</span> <span class="o">(</span><span class="nc">HttpServletRequest</span> <span class="n">req</span><span class="o">,</span> <span class="nc">HttpServletResponse</span> <span class="n">res</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">ServletException</span><span class="o">,</span> <span class="nc">IOException</span> <span class="o">{</span>
    <span class="nc">PrintWriter</span> <span class="n">out</span><span class="o">;</span> <span class="n">out</span> <span class="o">=</span> <span class="n">res</span><span class="o">.</span><span class="na">getWriter</span><span class="o">();</span>
    <span class="n">res</span><span class="o">.</span><span class="na">setContentType</span><span class="o">(</span><span class="s">"text/html"</span><span class="o">);</span>
    <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">""</span><span class="o">);</span>
    <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">""</span><span class="o">);</span>
    <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">""</span><span class="o">);</span>
    <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Este es mi Primer Servlet"</span><span class="o">);</span>
    <span class="n">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">""</span><span class="o">);</span>
  <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>Como se puede apreciar, la salida que se está generando es una página web (sus etiquetas). Es decir, recalcamos la idea de que generamos el contenido de una página web dinámicamente.</p>]]></content><author><name>manual_web</name></author><summary type="html"><![CDATA[¿Qué son los servlets?]]></summary></entry><entry><title type="html">Manual Java EE</title><link href="https://www.manualweb.net/javaee/" rel="alternate" type="text/html" title="Manual Java EE" /><published>2026-01-29T16:33:46+01:00</published><updated>2026-01-29T16:33:46+01:00</updated><id>https://www.manualweb.net/index</id><content type="html" xml:base="https://www.manualweb.net/javaee/"><![CDATA[<p>Dentro de este <strong>Tutorial Javaee</strong> podrás encontrar los siguientes contenidos:</p>

<p><strong>Introducción Java EE</strong></p>
<ul>
  
    
    
    <li><a href=""></a></li>
  
</ul>

<p><strong>Servlets</strong></p>
<ul>
  
    
    
    <li><a href="/javaee/introduccion-servlets/">Introducción a los Servlets</a></li>
  
</ul>

<h3 id="descargar-manual-java-ee">Descargar Manual Java EE</h3>

<p>Puedes descargarte nuestro <a href="#">Manual Java EE en formato PDF</a>.</p>

<p>El manual se encuentra en continua revisión, de forma automática la URL proporcionada contendrá la última versión del <strong>Tutorial Java EE</strong>.</p>

<h3 id="ejemplos-manual-java-ee">Ejemplos Manual Java EE</h3>

<p>A lo largo del <strong>Tutorial Java EE</strong> se van explicando una serie de ejemplos. Podéis descargaros los ejemplos del <strong>Tutorial Java EE</strong> desde el <a href="https://github.com/manualweb/manual-javaee">GitHub de Manual Web</a>.</p>

<p>Si os gusta el contenido del material y los ejemplos os agradecemos si nos aportáis una estrella en GitHub.</p>

<p><a class="github-button" href="https://github.com/manualweb/manualweb" data-icon="octicon-star" data-style="mega" aria-label="Star manualweb/manualweb on GitHub">Star</a></p>

<h3 id="más-sobre-el-manual-java-ee">Más sobre el Manual Java EE</h3>

<p>Todas las preguntas y dudas sobre Java las puedes consultar en el <a href="http://dudasprogramacion.com/java/java-ee">Foro sobre Java EE</a>. Y puedes echar un ojo a los <a href="http://lineadecodigo.com/tag/java-ee/">ejemplos sobre el lenguaje Java EE</a>.</p>

<script id="github-bjs" src="https://buttons.github.io/buttons.js" async="" defer="defer"></script>]]></content><author><name>manual_web</name></author><summary type="html"><![CDATA[Dentro de este Tutorial Javaee podrás encontrar los siguientes contenidos: Introducción Java EE Servlets Introducción a los Servlets]]></summary></entry></feed>