Você está aqui: Java Servlets ::: Dicas & Truques ::: Passos Iniciais |
Como criar o seu primeiro Java Servlet usando apenas o Bloco de Notas e o Apache TomcatQuantidade de visualizações: 1739 vezes |
Sim, é isso mesmo. Nesta dica mostrarei como montar a estrutura de uma aplicação Java Web e como executá-la no servidor Apache Tomcat. A idéia aqui é entender como este processo funciona antes de ficarmos totalmente dependentes de IDEs tais como Eclipse, NetBeans, etc. É claro que as IDEs agilizam muito o nosso trabalho, nos poupando de várias tarefas intermediárias. O problema em escrever uma aplicação Java Web usando IDEs é que muitos dos detalhes ficam ocultos pelas IDEs. Dessa forma, quando algum problema sério ocorre nós temos que excluir todo o projeto e recomeçar do zero ou gastar horas e horas tentando descobrir o que pode ter acontecido de errado. Aqui eu falei Bloco de Notas, mas você pode usar o seu editor de códigos favorito. Então, vamos começar. O primeiro passo é fazer uma instalação do servidor web Apache Tomcat. Se você ainda não sabe como fazer isso, basta seguir este link aqui: Como instalar o Apache Tomcat - Como baixar, instalar e testar o servidor web Apache Tomcat. Como criar a estrutura da aplicação Java Web Com o Apache Tomcat instalado e já testado, vá até o diretório "C:\Tomcat_10\webapps" e crie uma pasta chamada "estudos". Agora, dentro da pasta "estudos", crie uma pasta chamada "WEB-INF" e, dentro da pasta "WEB-INF", crie duas pastas, uma chamada "lib" e a outra chamada "classes". No final, sua estrutura deve ficar parecida com a imagem abaixo: Essa estrutura é a mais comum para aplicações Java Web. Os mais importantes aqui são o arquivo descritor de deployement web.xml (dentro do diretório WEB-INF) e os servlets, que são colocados sempre dentro do diretório "classes". Como escrever um Java Servlet usando apenas o Bloco de Notas Vamos escrever nosso Java Servlet então? Eu vou usar o Bloco de Notas, mas fique à vontade para usar o seu editor de códigos favorito. Assim, crie um arquivo chamado MensagemServlet.java com o seguinte conteúdo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import java.io.*; import jakarta.servlet.*; import jakarta.servlet.http.*; public class MensagemServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h1>Estou estudando Servlets</h1>"); out.println("</body></html>"); } } Note que nesta dica eu já troquei o pacote "javax.servlet" por "jakarta.servlet". Dependendo da sua versão do Apache Tomcat você deverá deixar "javax" mesmo. Para este tutorial nós podemos salvar o nosso Java Servlet dentro da pasta "classes" da nossa aplicação, visto que o nosso propósito é só estudar mesmo. Em uma aplicação do mundo real lembre-se de excluir os arquivos .java antes de distribuir o seu código. Como compilar o Java Servlet pela linha de comando Chegou a hora de compilar o nosso Java Servlet usando a linha de comando. Sim, isso mesmo. Nós vamos invocar o javac. Para isso, abra uma nova janela de comando e dispare os comandos: 1) C:\Users\Osmar>cd C:\Tomcat_10\webapps\estudos\WEB-INF\classes 2) C:\Tomcat_10\webapps\estudos\WEB-INF\classes>javac MensagemServlet.java Quando você pressionar Enter, é 99% certeza que você verá as seguintes mensagens de erro: MensagemServlet.java:5: error: cannot find symbol public class MensagemServlet extends HttpServlet{ ^ symbol: class HttpServlet MensagemServlet.java:6: error: cannot find symbol public void doGet(HttpServletRequest request, ^ symbol: class HttpServletRequest location: class MensagemServlet MensagemServlet.java:7: error: cannot find symbol HttpServletResponse response) throws ServletException, ^ symbol: class HttpServletResponse location: class MensagemServlet MensagemServlet.java:7: error: cannot find symbol HttpServletResponse response) throws ServletException, ^ symbol: class ServletException location: class MensagemServlet MensagemServlet.java:2: error: package jakarta.servlet does not exist import jakarta.servlet.*; ^ MensagemServlet.java:3: error: package jakarta.servlet.http does not exist import jakarta.servlet.http.*; ^ 6 errors Isso aconteceu porque nós precisamos do servlet-api.jar para compilar os Java Servlets. Você pode baixar este JAR na internet ou usar o servlet-api.jar que já vem com o Tomcat. Assim, basta mudar o comando de compilação: C:\Tomcat_10\webapps\estudos\WEB-INF\classes>javac -classpath "C:\Tomcat_10\lib\servlet-api.jar" MensagemServlet.java Se os caminhos informados no comando javac estiverem todos corretos, o Java Servlet será compilado e você encontrará um arquivo MensagemServlet.class no diretório "C:\Tomcat_10\webapps\estudos\WEB-INF\classes". Como criar o Arquivo Descritor de Deployment web.xml O Deployment Descriptor (DD) é um arquivo (ou documento) XML usado pelo contâiner web para executar Java Servlets e páginas JSP. Sua função, entre outras, é mapear URLs para as classes Servlets, inicializar parâmetros, definir páginas de erro, definir regras de segurança, declarar bibliotecas de tags, etc. Então, crie um arquivo web.xml, dentro do diretório WEB-INF, com o seguinte conteúdo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Estudos</display-name> <display-name>Um simples Java Servlet</display-name> <description>Mostra apenas uma mensagem</description> <servlet> <servlet-name>mensagem</servlet-name> <description>Meu primeiro Servlet</description> <servlet-class>MensagemServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>mensagem</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> Pronto! Já temos tudo pronto. Chegou a hora de executar o Java Servlet a partir do Apache Tomcat. Como executar o Java Servlet no Apache Tomcat Se o Apache Tomcat não estiver sendo executado, inicie o serviço, vá até a URL http://localhost:8080/estudos e veja o resultado. Se tudo correr bem, você verá o seguinte resultado: Estou estudando Servlets Algumas vezes pode ser necessário você se certificar de que a aplicação Java Web foi instalada corretamente no Apache Tomcat. Isso pode ser feito pelo Application Manager, na URL http://localhost:8080/manager/html. É nessa tela que temos todas uma lista com as aplicações instaladas e as opções de parar, reiniciar o contexto da aplicação, etc. Agora é só aprofundar os seus estudos de Java Servlets. Boa jornada! |
Link para compartilhar na Internet ou com seus amigos: |
Java Servlets ::: Dicas & Truques ::: URLs, Documentos e Páginas |
Como compartilhar dados entre um Java Servlet e uma página JSP usando a requisição HttpServletRequestQuantidade de visualizações: 8287 vezes |
Quando usamos o método forward() da interface RequestDispatcher para direcionar para um outro Java Servlet ou página JSP, tanto o objeto de requisição ServletRequest quanto o objeto de resposta ServletResponse são enviados também. Assim, podemos tirar proveito desta funcionalidade para compartilhar dados entre um servlet e uma página JSP usando a requisição. Vamos ver como isso é possível. Comece analisando o seguinte servlet: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.io.*; import jakarta.servlet.*; import jakarta.servlet.http.*; public class MeuServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ // cria uma instância da classe Pessoa Pessoa p = new Pessoa(); p.setNome("Osmar J. Silva"); // vamos colocar o objeto p na requisição request.setAttribute("pessoaBean", p); // agora direcionamos para a página exibir.jsp RequestDispatcher dispatcher = request.getRequestDispatcher("/exibir.jsp"); dispatcher.forward(request, response); } } Note que aqui eu já estou usando o pacote jakarta.servlet em vez de javax.servlet. Confirme se você está usando o Java EE ou Jakarta EE. Veja que no método doGet() deste Servlet nós temos a criação de uma instância da classe Pessoa (Pessoa.java). Esta classe tem a seguinte estrutura: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Pessoa{ private String nome; public String getNome(){ return this.nome; } public void setNome(String nome){ this.nome = nome; } } Depois de criada a instância da classe nós a colocamos na requisição atual usando: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // vamos colocar o objeto p na requisição request.setAttribute("pessoaBean", p); O passo seguinte é direcionar a requisição atual para a página exibir.jsp (a View do MVC). Veja o código para esta página: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <jsp:useBean id="pessoaBean" scope="request" type="estudos.Pessoa" /> <html> <head> <title>Estudos Servlet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> </head> <body> <h4>Nome da pessoa: <jsp:getProperty name="pessoaBean" property="nome" /></h4> </body> </html> Aqui nós estamos usando <jsp:getProperty> para acessar um dos atributos do bean pessoaBean. Poderíamos usar JSTL e EL. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <jsp:useBean id="pessoaBean" scope="request" type="estudos.Pessoa" /> <html> <head> <title>Estudos Servlet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> </head> <body> <h4>Nome da pessoa: <c:out value="${pessoaBean.nome}"/></h4> </body> </html> Fiz o mapeamento deste Java Servlet para a URL http://localhost:8080/estudos/meuservlet. Ao chamá-la nós teremos o seguinte resultado: Nome da pessoa: Osmar J. Silva |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valor = 5 for i in range(0, 4): valor++ print("O valor final é: {0} ".format(valor)) A) O valor final é: 8 B) O valor final é: 9 C) Erro de SyntaxError: invalid syntax na linha 3 D) O valor final é: 7 E) Erro de SyntaxError: invalid syntax na linha 2 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valor = 5 contador = 0 while valor < 20: valor = valor + 3 contador = contador + 1 print("O laço while repetiu {0} vezes.".format(contador)) A) O laço while repetiu 7 vezes. B) O laço while repetiu 6 vezes. C) O laço while repetiu 4 vezes. D) O laço while repetiu 5 vezes. E) O laço while repetiu 8 vezes. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação da continuidade Um cano de 2,00 cm de diâmetro se estreita para 8,00 mm. No primeiro segmento, um líquido flui com velocidade de 4,00 m/s. A velocidade do líquido no segundo segmento e a vazão de volume no cano valem, respectivamente: A) 16,0 m/s e 1,26 x 10-3 m3/s. B) 100 m/s e 5,03 x 10-4 m3/s. C) 25,0 m/s e 4,00 x 10-4 m3/s. D) 25,0 m/s e 1,26 x 10-3 m3/s. E) 1,00 m/s e 1,26 m3/s. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Perfil em aço À medida que os perfis de aço são utilizados para estruturar uma edificação, é fundamental que sejam conectados uns aos outros. Isso vai garantir a estabilidade da construção e permitir a criação de blocos mais resistentes. Considerando essa informação e a figura apresentada a seguir, assinale a alternativa que indica corretamente o tipo de conexão que está sendo utilizado. A) Conexão de cisalhamento com solda. B) Conexão de momento com solda. C) Conexão de cisalhamento com pinos. D) Conexão de momento com pinos. E) Conexão de tensão com solda. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
A transpiração é um processo fundamental na contribuição para o acúmulo de água em estado gasoso na atmosfera. Qual agente é um dos principais atores nesse processo? A) Rochas. B) Solos férteis. C) Chuvas. D) Seres vivos. E) Minerais. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de Java Servlets |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |