{"id":701,"date":"2022-05-10T10:44:12","date_gmt":"2022-05-10T13:44:12","guid":{"rendered":"https:\/\/bit7.com.br\/main\/?p=701"},"modified":"2022-06-01T11:11:53","modified_gmt":"2022-06-01T14:11:53","slug":"resumao-servlets-em-java","status":"publish","type":"post","link":"https:\/\/bit7.com.br\/main\/resumao-servlets-em-java\/","title":{"rendered":"Resum\u00e3o Servlets em Java"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Java Servlet<\/strong>&nbsp;roda em um servidor de aplica\u00e7\u00e3o que fica instalado no servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O nome \u201cservlet\u201d vem do ingl\u00eas e d\u00e1 uma ideia de pequeno servidor cujo objetivo basicamente \u00e9 receber requisi\u00e7\u00f5es HTTP, process\u00e1-las e responder ao cliente, essa resposta pode ser um HTML, uma imagem etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em Java, procuramos sempre trabalhar orientado a objeto, portanto essa nosso servlet ser\u00e1 tamb\u00e9m um objeto de uma classe Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O funcionamento se d\u00e1 da seguinte forma:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Cliente (navegador) faz uma requisi\u00e7\u00e3o HTTP ao servidor.<\/li><li>O servlet respons\u00e1vel trata a requisi\u00e7\u00e3o e responde ao cliente de acordo.<\/li><li>O cliente recebe os dados e exibe.<\/li><\/ol>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Listagem 01:<\/strong>&nbsp;Estrutura b\u00e1sica de um servlet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class OlaMundo extends HttpServlet {\nprotected void service (HttpServletRequest request,\nHttpServletResponse response)\nthrows ServletException, IOException {\n\/\/ tratamentos\n}\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para mapearmos, usaremos as tags&nbsp;&lt;servlet&gt;&nbsp;e&nbsp;&lt;servlert-mapping&gt;.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Listagem 02:<\/strong>&nbsp;Mapeamento do servlet<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;servlet&gt;\n&lt;servlet-name&gt;olaServlet&lt;\/servlet-name&gt;\n&lt;servlet-class&gt;br.servlets.OlaMundo&lt;\/servlet-class&gt;\n&lt;\/servlet&gt;\n&lt;servlet-mapping&gt;\n&lt;servlet-name&gt;olaServlet&lt;\/servlet-name&gt;\n&lt;url-pattern&gt;\/olaMundo&lt;\/url-pattern&gt;\n&lt;\/servlet-mapping&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vejamos como fica a estrutura de diret\u00f3rios gerada.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>src&nbsp;&#8211; c\u00f3digo fonte Java (.java)<\/li><li>build&nbsp;&#8211; onde o Eclipse compila as classes (.class)<\/li><li>WebContent &#8211; content directory (p\u00e1ginas, imagens, css etc v\u00e3o aqui)<\/li><li>WebContent\/WEB-INF\/&nbsp;&#8211; pasta oculta com configura\u00e7\u00f5es e recursos do projeto<\/li><li>WebContent\/WEB-INF\/lib\/&nbsp;&#8211; bibliotecas&nbsp;.jar.<\/li><li>WebContent\/WEB-INF\/classes\/&nbsp;&#8211; arquivos compilados s\u00e3o copiados para c\u00e1.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A pasta&nbsp;META-INF&nbsp;\u00e9 opcional, mas \u00e9 gerada pelo Eclipse. \u00c9 onde fica o Arquivo de manifesto como usado em arquivos&nbsp;.jar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, dentro de&nbsp;src, criaremos a classe&nbsp;br.servlets.OlaMundo.java&nbsp;com o seguinte conte\u00fado:<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Listagem 03:<\/strong>&nbsp;Montando o servlet para o hello world<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Public class OlaMundo extends HttpServlet {\nprotected void service (HttpServletRequest request,\nHttpServletResponse response)\nthrows ServletException, IOException {\nPrintWriter out = response.getWriter();\nout.println(\"&lt;html&gt;\");\nout.println(\"&lt;body&gt;\");\nout.println(\"Hello World\");\nout.println(\"&lt;\/body&gt;\");\nout.println(\"&lt;\/html&gt;\");\n}\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O JavaEE trabalha sobre o conceito de&nbsp;<strong>contextos Web<\/strong>&nbsp;para os diferentes sites e projetos no mesmo servidor. Por padr\u00e3o o Eclipse gera o&nbsp;<strong>context name<\/strong>&nbsp;com o mesmo nome do projeto, no nosso caso&nbsp;primeiroServlet, por isso nosso servlet\u2019s fica acess\u00edvel por localhost:8080\/primeiroServlet, mas podemos alterar indo em Project &gt; Properties &gt; Web Project Settings e mudando o&nbsp;<strong>Context Root<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java Servlet&nbsp;roda em um servidor de aplica\u00e7\u00e3o que fica instalado no servidor. O nome \u201cservlet\u201d vem do ingl\u00eas e d\u00e1 uma ideia de pequeno servidor cujo objetivo basicamente \u00e9 receber requisi\u00e7\u00f5es HTTP, process\u00e1-las e responder ao cliente, essa resposta pode ser um HTML, uma imagem etc. Em Java, procuramos sempre trabalhar orientado a objeto, portanto [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,9,11],"tags":[],"class_list":["post-701","post","type-post","status-publish","format-standard","hentry","category-java","category-programacao","category-web-site","entry"],"_links":{"self":[{"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/posts\/701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/comments?post=701"}],"version-history":[{"count":2,"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/posts\/701\/revisions"}],"predecessor-version":[{"id":708,"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/posts\/701\/revisions\/708"}],"wp:attachment":[{"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/media?parent=701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/categories?post=701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bit7.com.br\/main\/wp-json\/wp\/v2\/tags?post=701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}