Você está aqui: Java Servlets ::: Dicas de Estudo e Anotações ::: Passos Iniciais |
Meu primeiro Servlet: como definir o pacote (package) dos meus servlets?Quantidade de visualizações: 8085 vezes |
Quando estamos iniciando o estudo de Servlets, uma das dúvidas mais comuns é: coloco ou não meus servlets em pacotes? À primeira vista, pode ser tentador colocá-los no pacote padrão, ou seja, dentro do sub-diretório classes do diretório WEB-INF. Esta prática não é recomendada. É preciso que os servlets sejam colocados em pacotes cujos nomes tentem ser os mais únicos possíveis. Comece analisando o Servlet a seguir: ---------------------------------------------------------------------- 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 javax.servlet.*; import javax.servlet.http.*; public class EstudosServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ PrintWriter pw = response.getWriter(); response.setContentType("text/html"); pw.println("<h1>Sou um servlet</h1>"); } } Veja que este servlet pertence ao pacote estudos. Desta forma, este servlet deve ser compilado e colocado em um sub-diretório chamado estudos, dentro do sub-diretório classes no diretório WEB-INF. Em meu sistema, o caminho deste servlet é parecido com: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- C:\Tomcat6\webapps\estudos-servlets\WEB-INF\classes\estudos Não se esqueça de que o nome do pacote no qual o servlet se encontra deve ser informado no elemento <Servlet> do web.xml. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <servlet> <servlet-name>EstudosServlet</servlet-name> <servlet-class>estudos.EstudosServlet</servlet-class> </servlet> Falhar em seguir esta regra fará com que o servlet não seja encontrado pelo container web. |
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 Fenômeno de Transportes e Hidráulica |
O manômetro Um manômetro é o instrumento utilizado para medir a pressão de fluidos contidos em recipientes fechados. O manômetro para medição da pressão absoluta é usado quando pressões devem ser medidas, independentemente da pressão atmosférica. A pressão do meio medido é determinada contra uma pressão de referência, sendo que esta última corresponde ao ponto zero da pressão absoluta. Nesse contexto, determine a pressão manométrica em P devido à deflexão do mercúrio do manômetro em U da figura a seguir. A) Aproximadamente 77kPa. B) Aproximadamente 89kPa. C) Aproximadamente 94kPa. D) Aproximadamente 106kPa. E) Aproximadamente 111kPa. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Locação da obra Locar ou marcar a obra é uma das etapas de maior importância da construção. Sobre essa etapa, assinale a alternativa que apresenta a afirmação verdadeira. A) A demarcação dos pontos que definem o edifício no terreno é feita a partir de um referencial previamente definido, considerando-se três coordenadas, sendo duas planimétricas e uma altimétrica. B) Para a locação da obra, são necessários somente os projetos de estrutura e de arquitetura. C) A locação da obra deve ser realizada somente após a movimentação de terra e a execução das fundações. D) As tábuas que compõem os quadros de madeira (gabaritos) só precisam ser niveladas nos casos em que o terreno possui desnível superior a um metro. E) O gabarito somente poderá ser desmontado após a execução da totalidade da estrutura de concreto. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Introdução à Ética Aristóteles viveu entre grandes personalidades, já que foi discípulo de Platão e mestre de Alexandre, O Grande. Suas reflexões giravam em torno da política, da ética e da metafísica, e foram tão importantes que na atualidade influenciam campos científicos diversos, da política à biologia, passando, é claro, pela filosofia. Considerando essas informações, analise as afirmativas a seguir. I - Aristóteles foi o primeiro filósofo a elaborar tratados sistemáticos de ética, como a Ética a Nicômaco. II - Aristóteles investiga o que é a felicidade, e ela deve ser um bem perfeito que se busca por si mesmo, e não como meio para outra coisa. III - Ele partilhava da ideia de que uma pessoa virtuosa precisa viver numa sociedade regida por Deus, porque a ética não pode desvincular-se da religião. Está correto apenas o que se afirma em: A) I e II, apenas. B) III, apenas. C) I, apenas. D) II, apenas. E) II e III, apenas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de lajes maciças à flexão As lajes maciças são armadas em cruz, quando apresentam a relação entre o maior e o menor vão inferior a 2. Nessas situações, a laje pode ser dimensionada a partir de valores preestabelecidos em tabelas como a de Marcus. Considere a laje maciça armada em cruz apresentada na figura a seguir: Dados: Peso específico do concreto = 25kN/m3 Carga do contrapiso + revestimento = 2,00kN/m2 Carga acidental = 2,50kN/m2 Altura da laje (h) = 10cm Altura útil (d) = 6cm Cobrimento nominal = 2,5cm fcd = fck / 1,4 (considerar concreto de 20MPa) fyd = fyk / 1,15 (considerar aço CA-50) Assinale a alternativa correta: A) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 11cm na laje em questão. B) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 12cm na laje. C) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 13cm na laje. D) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 14cm na laje. E) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 15cm na laje. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Cisalhamento e detalhamento de vigas Conforme a NBR 6118 (ABNT, 2014), a armadura transversal mínima deve ser colocada nas vigas de modo a garantir a estabilidade das estruturas, mesmo na eventualidade de serem aplicados carregamentos não previstos no cálculo, evitando a ruptura abrupta logo após o surgimento das primeiras fissuras inclinadas. Nesse contexto, qual a armadura transversal mínima necessária por metro de viga, tendo em vista que ela tem seção de 30 x 80cm e altura útil de 77cm? Adote concreto C35 e aço CA-50. A) 2,43cm2/m. B) 2,84cm2/m. C) 3,12cm2/m. D) 3,54cm2/m. E) 3,85cm2/m. 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 |