Comunicando Servlet & JSP

Salve! Salve! Pessoal! Quero agradecer aos comentarios e emails que venho recebendo!

Em especial recebi  5 emails de alguns usuarios do javaranch, onde solicitaram a tradução de algumas colunas do blog para o ingles. Porém pela minha falta de tempo, nao foi possivel atender ao pedido, mas  foi sugerido por um dos usuarios (javaranch) a criação de um pequeno resumo em ingles sobre a coluna, onde segundo esse usuario isso facilitaria no momento de decisão “se valeria apena ele realizar tradução ou nao da coluna, levando em conta o summary”.  

obs.: Não estou usando tradutor para criação dos resumos. Agradeceria aos “experts no idioma” caso encontre algum erro, favor me comunicar. 🙂

Em uma das minhas colunas explique o que é JSP e sua funcionalidade. E se você não sabe o que é um Servlet e como configurar o XML para chamá-lo veja nessa coluna.  

Hoje vou mostrar como  Servlet & JSP “conversam”.  Veja abaixo  os pequenos exemplos, porém bastante funcionais para entendimento.

Aproveitando o momento Há uma matéria minha no imasters semelhante a essa, porém usando a ferramenta netbeans 6 para desenvolvimento e percebam que com o auxilio de uma IDE o processo é mais simples.

 É importante lembrar que muito não vai adiantar se você não sabe nada sobre o código gerado pela IDE (ex.: se você não souber por que o método é doPost/doGet?!), isso afetará diretamente no momento da manutenção do software por exemplo.

 Summary

The objective this article is presents the communication between Servlet e JSP without assist one of the IDE. If you don’t know that is one Servlet or JSP see this article (in Portuguese). I will go to present too as a class .java can “talk” with one application JSP.

 

Pré-Requisito:

– Ambiente JEE instalado e configurado

– Saber o que é  Servlet & JSP.

 Minhas Colunas Java no Imasters:  

Instalando TomCat em 10min

Mais um pouco sobre threads em Java

Criando Servlet Netbeans 6

Criando uma aplicação Servlet & JSP – Netbeans 6

 Livro recomendado

Servlet & JSP

 Let’s GO… 

Exemplo 1: Criando uma pagina JSP que será acessada via Servlet 

Configurando o arquivo XML

Web.xml

[…]

<!– chamando um jsp via servlet –>

                <servlet>

                               <servlet-name>comjava</servlet-name>

                               <jsp-file>/serv.jsp</jsp-file>   

                </servlet>

               

                <servlet-mapping>

                               <servlet-name>comjava</servlet-name>

                               <url-pattern>/compra</url-pattern>

                </servlet-mapping>

<!– fim –>

[…]

Criando o arquivo .jsp

Nome do arquivo= serv.jsp

<html>

<body>

<% out.println(“Usando servlet”);

%>

</body>

</html>

Para o exemplo acima digite no browser: HTTP://localhost/sua_aplicacao/compra

Você receberá a mensagem: “Usando Servlet” e observe que na barra de endereço está o arquivo serv.jsp

Exemplo 2 : Criando um redirecionamento em Servlet.

lista.jsp

<html>

<body>

Sua Lista de compra:

<%  //usei o redirecionamento em um Servlet para chegar aqui

out.println(foo.Midia.getItem());

 %>

</body></html>

 Midia.java

package foo;

import java.util.*;

public class Midia{

               

                public static ArrayList getItem(){

                ArrayList<String> lista = new ArrayList<String>();

                                               lista.add(“Caneta”);

                                               lista.add(“CD”);

                                               lista.add(“Pen”);

                               return lista;

                }} 

web.xml

[…]

<!–chamando um Servlet e o Servlet  redireciona a pagina para o jsp –>

                <servlet>

                               <servlet-name>listacomp</servlet-name>

                               <servlet-class>servM</servlet-class>

                </servlet>

               

                <servlet-mapping>

                               <servlet-name>listacomp</servlet-name>

                               <url-pattern>/compras.do</url-pattern>

                </servlet-mapping>

[…]

 servM.java

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class servM extends HttpServlet{

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{

                response.setContentType(“text/html”);                           

response.sendRedirect(“/sua_aplicacao/lista.jsp”);                                              

}}

/* aqui acontece um redirecionamento quando o xml chamar essa class, onde ele vai executar a pagina lista.jsp*/ 

Conclusão

Bom, espero que tenham gostado do artigo, e percebam a comunicação entre Servlet, JSP e.java.

O seu arquivo .java  é uma classe Java normal semelhante aquela quando você começa estudar Java porém sem o método main. Vejo sempre iniciantes com essa dúvida como fazer que  “Hello World” apareça no browser.  Claro que o exposto aqui é um ponto de motivação para continuação dos estudos na plataforma JEE. Mas busquei nas três colunas (Servlet,  JSP e Hoje) apresentar um pouco de cada e sua utilidade. 

Você pode ouvir/ler que Servlet/JSP  não são mais  usados para desenvolvimento de sistema, mas acredito que isso varia de projeto para projeto. Realmente há projetos que solicitam tecnologias mais robustas e outros que tanto faz se a tecnologia é recente ou uma mais antiga (até hoje vejo software sendo desenvolvido em Clipper e vagas de emprego a procura de programadores).

Claro  que você (bom programador )deve dar preferência para aquela(s) tecnologia  que você tem o maior domínio técnico  e que  possibilite “boas práticas de programação” e  siga todas as recomendações da engenharia de software.

Um abraço a todos e até a próxima!

6 comentários em “Comunicando Servlet & JSP”

  1. Eu também não conheço muito de inglês, mas acho que seria assim:

    The objective of this article is to introduce the communication between Servlet and JSP without assist of one IDE. If you don’t know what is Servlet or JSP, see this article (in Portuguese). I will present too as a class .java can “talk” with one application JSP.

  2. olá Thiago!
    Thanks! Por sua sugestão! hehe! Fiz uma pesquisa e realmente nesse caso essa seria a melhor forma! sem falar que na hora de digitar coloquei a palavra “entre” em portugues(pensei em ingles porem escrite em port) rs!

    mas valeu! abraço!

  3. Opa Camilo, Blz?
    muito bom seu blog

    sei q minha pergunta num tem nada a ver com o post, mas tenho certeza q vc pode me ajudar.
    estou entrando nessa área de certificação java, já programei em java, gostei e daí queria me especializar, e eu tava querendo tirar a certificação scjp, porém vc já disse q o livro q vc sugeri é akele kathy sierra né, minha dúvida é, compro o livro pro java 5 ou espero o java 6? e tb se tem muita diferença de um pro outro?

    valeu,
    espero q vc possa me ajudar
    e mais uma vez parabens pelo blog, sensacional

    abraços

  4. olá Fillipe,

    Obrigado por acessar o blog! E fico grato com os elogios! A respeito da SCJP de qual tirar, sempre é bom tirar a mais recente, quando tirei a minha a 1 ano a mais recente era 1.5. O livro da kathy para 1.6 ja saiu porem ainda na versao ingles, se vc tem um ingles para le-lo, vale apena. Caso contrario esperar a tradução pode levar uns 4 ou 5 meses. Mas tb se vc nao quiser comprar o ingles e esperar a traducao vc pode começar estudar “desde ontem” todos os assuntos da 1.5 e quando sair a tradução vc pegar e estuda o conteudo que falta.. ai vc estará com quase 6 meses de estudo. So nao recomendo iniciar o estudo somente quando a tradução sair.. pois vai perder tempo. E tempo = = $$.
    No guj http://www.guj.com.br/forums/show/11.java há uma discussao recente sobre exatamente isso scjp 5 ou 6 ? Dar uma pesquisa nessa seção de certificacao que vc vai encontrar!
    Um abraço e bons estudos!! Qualquer coisa estou a disposição! 😀

  5. olá Thiago,

    Fiz novamente uma correção na parte de Summary, fiz umas pesquisas(dicionario oxford) e nesse caso seria presents mesmo.. e nao introduce.

    flw! abraço!

Deixe um comentário

O seu endereço de e-mail não será publicado.