Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
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 Tomcat

Quantidade de visualizações: 1431 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:

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");
......


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:

<?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>
......


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 ::: Classes e Componentes ::: JTree

Java Swing - Como criar sua primeira JTree usando um vetor de nomes de linguagens de programação

Quantidade de visualizações: 12739 vezes
Este exemplo mostra como criar uma JTree bem simples, e que servirá de base para a criação de aplicações Java Swing mais elaboradas. Os itens da JTree são fornecidos como um vetor de objetos, de forma que cada sub-vetor constitui uma seção da árvore. Os elementos (nós) são inseridos em suas devidas posições usando uma função recursiva.

Veja o resultado na figura abaixo:



E agora o código Java completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.tree.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma JTree simples");
     
    Object[] linguagens = {
      "Linguagens",
      new Object[]{
        "Compiladas",
        "C++",
        "Delphi"
      }, 
      new Object[]{
        "Interpretadas",
        "JavaScript",
        "Python",
        "Ruby"
      }
    };
 
    DefaultMutableTreeNode raiz = montar(linguagens);
    JTree arvore = new JTree(raiz);  
 
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
......



C# ::: Dicas & Truques ::: Strings e Caracteres

Como retornar um caractere a partir de seu código ASCII em C# usando o método ToChar() da classe Convert

Quantidade de visualizações: 12426 vezes
A classe Convert, do namespace System, possui vários métodos que possibilitam a conversão entre tipos base. Um destes métodos nos permitem informar um número inteiro e obter o caractere ou letra correspondente.

Veja um techo de código no qual informamos o valor 65 e obtemos, como retorno, a letra "A":

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      int codigo = 65;
      char letra = Convert.ToChar(codigo);

      Console.WriteLine("A letra para o código ASCII {0} é {1}", 
......


Ao executarmos este código C# nós teremos o seguinte resultado:

A letra para o código ASCII 65 é A


Python ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em Python - Como calcular Bhaskara em Python

Quantidade de visualizações: 2024 vezes
Como resolver uma equação do 2º grau usando Python

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem Python.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso código Python vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código Python. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

# importamos a bibliteca Math
import math

def main():
  # vamos pedir para o usuário informar os valores dos coeficientes
  a = float(input("Valor do coeficiente a: "))
  b = float(input("Valor do coeficiente b: "))
  c = float(input("Valor do coeficiente c: "))
  # vamos calcular o discriminante
  discriminante = (b * b) - (4 * a * c)
    
  # a equação possui duas soluções reais?
  if(discriminante > 0):
    raiz1 = (-b + math.sqrt(discriminante)) / (2 * a)
    raiz2 = (-b - math.sqrt(discriminante)) / (2 * a)
    print("Existem duas raizes: x1 = {0} e x2 = {1}".format(raiz1, raiz2))
......


Ao executar este código Python nós teremos o seguinte resultado:

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando C++ - Geometria Analítica e Álgebra Linear usando C++

Quantidade de visualizações: 1621 vezes
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0).

Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2:

\[\vec{v} = \left(7, 6\right)\]

Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D:



Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9.

Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6).

Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras:

\[a^2 = b^2 + c^2\]

Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira:

\[a = \sqrt{b^2 + c^2}\]

Passando para os valores x e y que já temos:

\[a = \sqrt{7^2 + 6^2}\]

Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final:

\[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\]

E aqui está o código C++ que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:

#include <string>
#include <iostream>
#include <math.h>
 
using namespace std;
  
int main(int argc, char *argv[]){
  float x, y, norma;
  // vamos ler os valores x e y
  cout << "Informe o valor de x: ";
  cin >> x;
  cout << "Informe o valor de y: ";
......


Ao executar este código C++ nós teremos o seguinte resultado:

Informe o valor de x: 7
Informe o valor de y: 6
A norma do vetor é: 9.219544457292887

Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Como testar se um número é potência de dois usando Java

Quantidade de visualizações: 466 vezes
Pergunta/Tarefa:

Escreva um programa Java contendo um método que recebe um número inteiro e retorna um valor boolean indicando se o valor informado é potência de dois.

Sua saída deverá ser parecida com:

Informe um valor inteiro: 8
O valor 8 é potência de dois
Informe um valor inteiro: 34
O valor 34 não é potência de dois
Informe um valor inteiro: 64
O valor 64 é potência de dois
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar um valor inteiro
    System.out.print("Informe um valor inteiro: ");
    int valor = Integer.parseInt(entrada.nextLine());
    
    // vamos testar se o número informado é potência de dois
    if(isPotenciaDeDois(valor)){
      System.out.println("O valor " + valor + " é potência de dois");
......



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 19 usuários muito felizes estudando em nosso site.