{"id":151,"date":"2009-08-15T22:37:24","date_gmt":"2009-08-16T02:37:24","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/guga\/?p=151"},"modified":"2009-08-15T23:01:02","modified_gmt":"2009-08-16T03:01:02","slug":"servlets","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/guga\/2009\/08\/15\/servlets\/","title":{"rendered":"Servlets"},"content":{"rendered":"<p><strong>Qu\u00e9 es un <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del>?<\/strong><br \/>\nEs una clase Java que se ejecuta en el servidor.<\/p>\n<p><strong>Qu\u00e9 librer\u00edas necesito importar para usar <del datetime=\"2009-08-16T01:46:04+00:00\">servlets<\/del>?<\/strong><br \/>\njavax.servlet.*<br \/>\njavax.servlet.http.*<\/p>\n<p><strong><br \/>\nCu\u00e1l es la diferencia(al momento de programar) entre un <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del> y una p\u00e1gina JSP<\/strong>?<br \/>\nEl <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del> est\u00e1 formado por c\u00f3digo Java con HTML \"embebido\". La p\u00e1gina JSP es c\u00f3digo HTML con c\u00f3digo Java embebido.<\/p>\n<p><strong>C\u00f3mo funciona un <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del>?<\/strong><br \/>\nAl hacer el requerimiento al servidor:<br \/>\n1.- Se crea un objeto de tipo <strong>HttpServletRequest<\/strong> y otro <strong>HttpServletResponse<\/strong><br \/>\n2.- Se carga el <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del> compilado, es decir con extensi\u00f3n <strong>.class<\/strong> en la memoria asignada al servidor.<br \/>\n3.- Se invoca al m\u00e9todo <strong>init()<\/strong> del <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del><br \/>\n    El m\u00e9todo <strong>init()<\/strong> se ejecuta <strong>UNA SOLA VEZ<\/strong> con el primer   requerimiento, para los requerimientos posteriores no se ejecutar\u00e1.<\/p>\n<p><strong>Cu\u00e1les son los m\u00e9todos m\u00e1s importantes de un <del datetime=\"2009-08-16T01:46:04+00:00\">servlet<\/del>?<\/strong><br \/>\nAdem\u00e1s del m\u00e9todo <strong>init()<\/strong>, hay dos m\u00e9todos muy importantes. <strong>doGet<\/strong> y <strong>doPost<\/strong>.<br \/>\n--------------------------------------------------------------------------------------------------------<code><br \/>\n protected void<strong> doGet<\/strong>(HttpServletRequest request, HttpServletResponse response)<br \/>\n    throws ServletException, IOException {<br \/>\n        processRequest(request, response);<br \/>\n    } <\/code><br \/>\n--------------------------------------------------------------------------------------------------------<br \/>\n <code>protected void <strong>doPost<\/strong>(HttpServletRequest request, HttpServletResponse response)<br \/>\n    throws ServletException, IOException {<br \/>\n        processRequest(request, response);<br \/>\n    }<\/code><br \/>\n--------------------------------------------------------------------------------------------------------<br \/>\nY uno m\u00e1s....<br \/>\n    <code>protected void <strong>processRequest<\/strong>(HttpServletRequest request, HttpServletResponse response)<br \/>\n    throws ServletException, IOException {<br \/>\n        response.setContentType(\"text\/html;charset=UTF-8\");<br \/>\n        PrintWriter out = response.getWriter();<br \/>\n        try {<br \/>\n                    .<br \/>\n                    .<br \/>\n                    .<\/p>\n<p>        } finally {<br \/>\n            out.close();<br \/>\n        }<br \/>\n    }<\/code><br \/>\n--------------------------------------------------------------------------------------------------------<br \/>\n<em>Lo que debes saber:<\/em><br \/>\n<strong>doPost<\/strong> es el m\u00e9todo que se ejecuta cuando el requerimiento es enviado por POST<br \/>\n<strong>doGet <\/strong>es el m\u00e9todo que se ejecuta cuando el requerimiento es enviado por GET<\/p>\n<p><em><br \/>\nLo que debes observar:  <\/em><\/p>\n<li>Los tres m\u00e9todos reciben como par\u00e1metros los objetos HttpServletResponse y HttpServletRequest.<\/li>\n<li>Los dos m\u00e9todos, <strong>doGet<\/strong> y <strong>doPost<\/strong> llaman al tercero,<strong> processRequest<\/strong>. Este \u00faltimo m\u00e9todo se ha creado para evitar la repetici\u00f3n de c\u00f3digo en los m\u00e9todos <strong>doGet<\/strong> y <strong>doPost<\/strong> ya que ambos preocesar\u00e1n el requerimiento de la misma manera.<\/li>\n","protected":false},"excerpt":{"rendered":"<p>Esta es una breve descripci\u00f3n de servlets.<\/p>\n","protected":false},"author":50,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[297],"tags":[10824,10825,5362,5361,10823],"class_list":["post-151","post","type-post","status-publish","format-standard","hentry","category-programacion","tag-httpservletrequest","tag-httpservletresponse","tag-java","tag-jsp","tag-servlet"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/posts\/151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/comments?post=151"}],"version-history":[{"count":7,"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/posts\/151\/revisions"}],"predecessor-version":[{"id":153,"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/posts\/151\/revisions\/153"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/media?parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/categories?post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/guga\/wp-json\/wp\/v2\/tags?post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}