Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(PARTE I)
Antes de tudo irei colocar uma frase que será motivacional para tudo que você queira
atingir um dia.
Objetivo
O objetivo deste tutorial é não só demistificar a tecnologia servlets, mas também torná-
lo íntimo da mesma.
Benchmark
Começamos apresentando tecnologias alternativas ao servlet para um breve
comparativo.
PHP
Tecnologia de código aberto quem vem tendo boa aceitação por parte de
desenvolvedores WEB.
Portabilidade: Como toda aplicação Java, você poderá migrar de SO no momento que
deseje que sua aplicação funcionará transparentemente.
Robustez: Você não precisa se procupar com destruição de objetos, coleta de resíduos
entre outras operações arquiteturais. Deixe a JVM fazer isso pra você!
Comercial: Java é uma tecnologia totalmente que se torna obiqua a cada dia que se
passa, por tanto, você obterá ganhos com isso $$$!!...
Para realmente não ser preciso o processo de criação de um servet, toda requisição
vinda por parte de um cliente é analizada a assinatura do servlet em questão, caso este
coincida com a cópia do container, não será necessário o processo de criação. Uma
assinatura é composta da hora em que um servlet foi compilado pelo container e ainda
um pacote que identifica internamente a versão de compilação do servlet.
init() - Método responsável pela inicialização do servlet, através deste, poderão ser
parametrizados um objeto responsável pela configuração de servlets ?
javax.servlet.ServletConfig ? onde este objeto carrega todos os parametros do
ambiente servlet. Estas configurações podem estar no descritor web.xml.
Um exemplo básico seria pôr a configuração para uma conexão de um banco onde um
servlet teria acesso a tais informações.
<w eb-app>
<servlet>
<servlet-name>conection</servlet-name>
<servlet-class>br.com.javafree.tutorial.servlets.mbjunior.MBJuniorServletConection</servlet-class>
1. package br.com.javafree.tutorial.servlets.mbjunior;
2.
3. import java.io.IOException;
4. import java.sql.Connection;
5. import java.sql.DriverManager;
6. import java.sql.SQLException;
7.
8. import javax.servlet.Servlet;
9. import javax.servlet.ServletConfig;
10. import javax.servlet.ServletException;
11. import javax.servlet.ServletRequest;
12. import javax.servlet.ServletResponse;
13.
14.
15. public class MBJuniorServletConection implements
16. Servlet {
17.
18. private static String CONECTION_URL = "conectionURL";
19. private static String DRIVER = "driver";
20. private static String USER = "user";
21.
22. private ServletConfig config;
23.
24. //método responsável por inicializar o servlet.
25. // aqui estou pegando o objeto responsável por obter
26. configurações do ambiente servlet.
27. public void init(ServletConfig config) throws
28. ServletException {
29. this.config = config;
30.
31. }
32.
33. //método responsável pelas requisições vindas do
34. cliente.
35. //Neste método irei obter minha conexão.
36. public void service(ServletRequest req,
37. ServletResponse resp)
38. throws ServletException,
39. IOException {
40.
41. //Irei obter meu valor parametrizados no descritor
42. atraves de chaves.
43. String conectionURL =
44. config.getInitParameter(CONECTION_URL);
45. String driver = config.getInitParameter(DRIVER);
46. String user = config.getInitParameter(USER);
47.
48. try {
49. //Carregadas as variaveis locais faça a conexão.
50. Class.forName(driver);
51. Connection connection =
52. DriverManager.getConnection(conectionURL,user,"");
53.
54. // Conexão efetuada...
55.
56. } catch (ClassNotFoundException e) {
57. throw new ServletException("O driver não está no
58. classpath da app.");
59. } catch (SQLException e) {
60. throw new ServletException("Erro na Conexão!!!");
61. }
62.
63.
64.
65.
66. }
67.
68. //método responsável pela destruição do servlet
69. public void destroy() {
70.
71. }
72.
73. /* (non-Javadoc)
74. * @see javax.servlet.Servlet#getServletConfig()
75. */
76. public ServletConfig getServletConfig() {
77. return this.config;
78. }
79.
80. /* (non-Javadoc)
81. * @see javax.servlet.Servlet#getServletInfo()
82. */
83. public String getServletInfo() {
84. return null;
85. }
86. }
package br.com.javafree.tutorial.servlets.mbjunior;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
É importante ressaltar que o método init só é invocado uma única vez quando o
container disponibilita o servlet mapeado.
service() - método responsável pelo tratamento das requisições vindas por parte do
cliente.
Vale a pena ressaltar que este servlet só será invocado caso o servlet em questão esteja a
disposição para requisições. Este método possui a partir de sua especificação assinaturas
diferentes, mas este tópico será abordado no proximo tutorial, no momento iremos
considerar uma servlet generica possui tal assinatura:
Bem galera...
Essa foi a parte inicial, espero que todos tenham curtido, na proxima sessão
entenderemos mais profundamente os principais objetos da API e como eles poderão ser
úteis.
Até Mais!! :!: :!: