{"id":177,"date":"2022-12-06T09:51:09","date_gmt":"2022-12-06T09:51:09","guid":{"rendered":"http:\/\/javigomez.org\/?p=177"},"modified":"2025-09-29T20:34:20","modified_gmt":"2025-09-29T20:34:20","slug":"crear-un-servlet-en-xampp","status":"publish","type":"post","link":"https:\/\/javigomez.org\/index.php\/2022\/12\/06\/crear-un-servlet-en-xampp\/","title":{"rendered":"Crear un servlet en xampp"},"content":{"rendered":"\n<p>En esta pieza, voy a crear un servlet sencillo dentro de un xampp<\/p>\n\n\n\n<p>Nos vamos al directorio:<\/p>\n\n\n\n<p><strong>C:\\xampp\\tomcat\\webapps<\/strong><\/p>\n\n\n\n<p>En este directorio creamos el directorio de la aplicaci\u00f3n (en nuestro caso javi), y dentro de ello creamos el directorio WEB-INF. Dentro de WEB-INF creamos el  directorio classes<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"http:\/\/javigomez.org\/wp-content\/uploads\/2022\/12\/image-14-1-1.png\" alt=\"\" class=\"wp-image-178\"\/><\/figure>\n\n\n\n<p>Dentro del directorio classes podemos meter el fuente de nuestro primer servlet<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.io.*;\nimport javax.servlet.http.*;\nimport javax.servlet.*;\npublic class HelloServlet extends HttpServlet {\n\u00a0 public void doGet (HttpServletRequest req,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0HttpServletResponse res)\n\u00a0 \u00a0 throws ServletException, IOException\n\u00a0 {\n\u00a0 \u00a0 PrintWriter out = res.getWriter();\n\u00a0 \u00a0 out.println(\"Hola Javi\");\n\u00a0 \u00a0 out.close();\n\u00a0 }\n}\n<\/code><\/pre>\n\n\n\n<p>Para compilar utilizamos el comando javac, pero es necesario especificar un classpath a las librer\u00edas de servlet<\/p>\n\n\n\n<p>javac HelloServlet.java -classpath C:\\xampp\\tomcat\\lib\\servlet-api.jar <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/javigomez.org\/wp-content\/uploads\/2022\/12\/image-14-2-1.png\" alt=\"\" class=\"wp-image-179\" width=\"319\" height=\"256\"\/><\/figure>\n\n\n\n<p>Dentro del directorio de WEB-INF, creamos el archivo web.xml, que ser\u00e1 el que contenga la descripci\u00f3n de nuestro servlet<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>web.xml\n\n&lt;web-app xmlns=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\"\n\u00a0 xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n\u00a0 xsi:schemaLocation=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\/web-app_3_1.xsd\"\n\u00a0 version=\"3.1\"\n\u00a0 metadata-complete=\"true\">\n\u00a0 &lt;servlet>\n\u00a0 \u00a0 &lt;servlet-name>hello&lt;\/servlet-name>\n\u00a0 \u00a0 &lt;servlet-class>HelloServlet&lt;\/servlet-class>\n\u00a0 &lt;\/servlet>\n\u00a0 &lt;servlet-mapping>\n\u00a0 \u00a0 &lt;servlet-name>hello&lt;\/servlet-name>\n\u00a0 \u00a0 &lt;url-pattern>\/hello&lt;\/url-pattern>\n\u00a0 &lt;\/servlet-mapping>\n&lt;\/web-app>\n<\/code><\/pre>\n\n\n\n<p>En esta configuraci\u00f3n decimos el nombre del servlet y como se llama la clase que ejecuta en la secci\u00f3n de &lt;servlet&gt;<\/p>\n\n\n\n<p>En la secci\u00f3n de &lt;servlet-mapping&gt; decimos ese mismo nombre de servlet y la url que tenemos que introducir para ejecutarse<\/p>\n\n\n\n<p>Ahora solo queda apagar y encender el tomcat y probarlo<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"http:\/\/javigomez.org\/wp-content\/uploads\/2022\/12\/image-14-3-1.png\" alt=\"\" class=\"wp-image-180\"\/><\/figure>\n\n\n\n<p>Si creamos otro servlet dentro de la misma aplicaci\u00f3n, podr\u00eda ser este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.io.*;\nimport javax.servlet.http.*;\nimport javax.servlet.*;\npublic class aa extends HttpServlet {\n\u00a0 public void doGet (HttpServletRequest req,\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0HttpServletResponse res)\n\u00a0 \u00a0 throws ServletException, IOException\n\u00a0 {\n\u00a0 \u00a0 PrintWriter out = res.getWriter();\n\u00a0 \u00a0 out.println(\"&lt;b>AA&lt;\/b> est\u00e1 en negrita \");\n\u00a0 \u00a0 out.close();\n\u00a0 }\n<\/code><\/pre>\n\n\n\n<p>Se compila<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>javac aa.java -classpath C:\\xampp\\tomcat\\lib\\servlet-api.jar\n<\/code><\/pre>\n\n\n\n<p>Se configura en web.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;web-app xmlns=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\"\n\u00a0 xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n\u00a0 xsi:schemaLocation=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\/web-app_3_1.xsd\"\n\u00a0 version=\"3.1\"\n\u00a0 metadata-complete=\"true\">\n\u00a0 &lt;servlet>\n\u00a0 \u00a0 &lt;servlet-name>hello&lt;\/servlet-name>\n\u00a0 \u00a0 &lt;servlet-class>HelloServlet&lt;\/servlet-class>\n\u00a0 &lt;\/servlet>\n\u00a0 &lt;servlet-mapping>\n\u00a0 \u00a0 &lt;servlet-name>hello&lt;\/servlet-name>\n\u00a0 \u00a0 &lt;url-pattern>\/hello&lt;\/url-pattern>\n\u00a0 &lt;\/servlet-mapping>\n\u00a0 &lt;servlet>\n\u00a0 \u00a0 &lt;servlet-name>negro&lt;\/servlet-name>\n\u00a0 \u00a0 &lt;servlet-class>aa&lt;\/servlet-class>\n\u00a0 &lt;\/servlet>\n\u00a0 &lt;servlet-mapping>\n\u00a0 \u00a0 &lt;servlet-name>negro&lt;\/servlet-name>\n\u00a0 \u00a0 &lt;url-pattern>\/aanegro&lt;\/url-pattern>\n\u00a0 &lt;\/servlet-mapping>\n<\/code><\/pre>\n\n\n\n<p>Se apaga y enciende tomcat y se prueba<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"http:\/\/javigomez.org\/wp-content\/uploads\/2022\/12\/image-14-4-1.png\" alt=\"\" class=\"wp-image-181\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>En esta pieza, voy a crear un servlet sencillo dentro de un xampp Nos vamos al directorio: C:\\xampp\\tomcat\\webapps En este directorio creamos el directorio de &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[302,330,347,348],"class_list":["post-177","post","type-post","status-publish","format-standard","hentry","category-tomcat","tag-servlet","tag-tomcat","tag-web-inf","tag-web-xml"],"_links":{"self":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":1,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":970,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/177\/revisions\/970"}],"wp:attachment":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}