Servlets
Quando a Web surgiu, seu objetivo era a troca de conteúdos através, principalmente, de páginas HTML estáticas.
Hoje, boa parte do que se acessa na Web (portais, blogs, home bankings etc) é baseado em conteúdo dinâmico. O usuário requisita algo ao servidor que, por sua vez, processa essa requisição e devolve uma resposta nova para o usuário.
Uma das primeiras ideias para esses "geradores dinâmicos" de páginas HTML foi fazer o servidor Web invocar um outro programa externo em cada requisição para gerar o HTML de resposta. Era o famoso CGI que permitia escrever pequenos programas para apresentar páginas dinâmicas usando, por exemplo, Perl, PHP, ASP e até C ou C++.
Na plataforma Java, a primeira e principal tecnologia capaz de gerar páginas dinâmicas são as Servlets, que surgiram no ano de 1997.
O objetivo do Servlet é receber chamadas HTTP, processá-las e devolver uma resposta ao cliente.
Para escrevermos uma servlet, criamos uma classe Java que estenda HttpServlet e sobrescreva um método chamado service. Esse método será o responsável por atender requisições e gerar as respostas adequadas. Sua assinatura:
public class OiMundo extends HttpServlet {
protected void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
// escreve o texto
out.println("<html>");
out.println("<body>");
out.println("Primeira servlet");
out.println("</body>");
out.println("</html>");
}
HttpServlet gera aplicações Web baseadas no protocolo HTTP, mas vale lembrar que a API não foi criada somente para este protocolo, podendo ser estendida para outros protocolos também baseados em requisições e respostas.
Para habilitar um Servlet, usa-se o arquivo web.xml, que fica dentro do WEB-INF.
<servlet> <servlet-name>primeiraServlet</servlet-name> <servlet-class>br.com.caelum.servlet.OiMundo</servlet-class></servlet>
<servlet-mapping> <servlet-name>primeiraServlet</servlet-name> <url-pattern>/oi</url-pattern></servlet-mapping>
A tag <url-pattern> também te dá a flexibilidade de disponibilizar uma servlet através de várias URLs de um caminho, por exemplo o código abaixo fará com que qualquer endereço acessado dentro de /oi seja interpretado pela sua servlet:
<servlet-mapping> <servlet-name>primeiraServlet</servlet-name> <url-pattern>/oi/*</url-pattern></servlet-mapping>
Você ainda pode configurar "extensões" para as suas servlets, por exemplo, o mapeamento abaixo fará com que sua servlet seja chamada por qualquer requisição que termine com .php:
<servlet-mapping> <servlet-name>primeiraServlet</servlet-name> <url-pattern>*.php</url-pattern></servlet-mapping>
Na nova especificação Servlets 3.0, que faz parte do Java EE 6, podemos configurar a maneira como vamos acessar a nossa Servlet de maneira programática, utilizando anotações simples.
De modo geral, não é mais preciso configurar as nossas Servlets no web.xml, sendo suficiente usar a anotação @WebServlet apenas:
@WebServlet("/oi")
public class OiServlet3 extends HttpServlet {
...
}
Mas se precisarmos definir mais de uma URL para acessar a Servlet, podemos utilizar o atributo urlPatterns e passar um vetor de URLs:
@WebServlet(name = "MinhaServlet3", urlPatterns = {"/oi", "/ola"})
public class OiServlet3 extends HttpServlet{
...
}
Abaixo temos um exemplo de como pegar os valores da requisição:
String valorDoParametro = request.getParameter("nomeDoParametro");
Applet
Applets em Java podem rodar em um web browser usando uma Java Virtual Machine (JVM) ou no AppletViewer da Sun, uma aplicação standalone para testar applets. As applets java foram introduzidas na primeira versão da linguagem Java, em 1995. Applets em Java podem adicionar recursos que não são possíveis em HTML.
Ajax
Ajax (acrônimo em língua inglesa de Asynchronous Javascript and XML, em português "Javascript e XML Assíncrono") é o uso metodológico de tecnologias como Javascript e XML, providas por navegadores, para tornar páginas Web mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações. Foi inicialmente desenvolvida pelo estudioso Jessé James Garret e mais tarde por diversas associações. Apesar do nome, a utilização de XML não é obrigatória (JSON é frequentemente utilizado) e as solicitações também não necessitam ser assíncronas.
A XMLHttpRequest tem um papel importante na técnica de desenvolvimento web Ajax para se comunicar com os scripts do lado do servidor.
Fontes:
https://www.caelum.com.br/apostila-java-web/servlets/
https://pt.wikipedia.org/wiki/Applet_Java
https://pt.wikipedia.org/wiki/AJAX_(programação)