Java Server Pages

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (8)  (0)

O que é necessário para começar? Desenvolvida pela Sun para desenvolvimento de aplicações Web, a partir de componentes Java que executem no lado servidor.

O que é necessário para começar? Desenvolvida pela Sun para desenvolvimento de aplicações Web, a partir de componentes Java que executem no lado servidor.

 

Este pequeno artigo apresenta a tecnologias JSP e Servlets, sendo o suficiente para o desenvolvimento de sites dinâmicos de razoável complexidade. Se a aplicação exigir uma grande robustez e escalabilidade deve se considerar o uso em conjunto de outras tecnologias da plataforma J2EE.

 

Tecnologias

Para tirar um bom proveito do JSP é preciso entender a linguagem ou ter um conhecimento básico em Java. Isso porque, a parte lógica do JSP envolve Java Beans, Objetos JDBC, Enterprise Java Beans(EJB) entre outros componentes que interagem com a plataforma Java. Portanto, para aqueles que pretendem desenvolver uma aplicação mais sofisticada que entendam um pouco mais de programação em Java.

 

O ideal é que se conheça um pouco de HTML (Hyper Text Markup Language). É comum em grandes aplicações que o programador JSP e o Designer sejam pessoas diferentes. Portanto, será usado pouquíssimas tags HTML, porque a preocupação está voltada para a parte das aplicações e não para a parte visual.

 

JSP

Um acrônimo para Java Server Pages e consiste numa linguagem de script baseada

em java para criação de sites com conteúdos dinâmicos.

 

Inicialmente as páginas na Web eram apenas páginas estáticas, isto é, seu conteúdo não variava a cada solicitação conforme algum parâmetro. Com a sofisticação dos serviços disponibilizados via Web, surgiu a necessidade de disponibilizar informações com natureza dinâmica (lista de preços atualizados, compras on-line, etc). Isso exigiu que o servidor web fizesse algum processamento adicional da solicitação a fim de gerar uma resposta personalizada.

 

Quando uma página JSP é requisitada pelo cliente através de um Browser, esta página é executada pelo servidor, e a partir daí será gerada uma página HTML que será enviada de volta ao browser do cliente. A figura abaixo ilustra esse funcionamento:

 

rcpjspndcfig01.jpg 

 

Servlets

Servlets são programas simples feitos em Java os quais rodam em um Servlet Container. Um Recipiente (Container) Servlet é como um servidor Web que trata requisições do usuário e gera respostas. Recipiente Servlet e diferente de Servidor Web porque ele é feito somente para Servlets e não para outros arquivos (como .html etc). O Recipiente Servlet é responsável por manter o ciclo de vida do Servlet. Pode ser usado sozinho (standalone) ou conjugado com um servidor Web. Exemplo de Recipiente Servlet é o Tomcat, e de servidor Web o Apache.

 

Servlets são na verdade simples classes Java as quais necessitam implementar

a interface javax.servlet.Servlet. Esta interface contém cinco métodos que precisam ser implementados. Na maioria das vezes você não precisa implementar esta interface. Por que? Porque o pacote javax.servlet já provê duas classes que implementam esta interface i.e. GenericServlet e HttpServlet.

 

Então tudo que você precisa fazer é estender uma dessas classes e sobrescrever o método que você precisa para seu Servlet. GenericServlet é uma classe muito simples que somente implementa a interface javax.servlet.Servlet e fornece apenas funcionalidades básicas. Enquanto HttpServlet é uma classe mais útil que fornece métodos para trabalhar com o protocolo HTTP. Assim se seu servlet usa o protocolo HTTP (o que ocorrerá na maioria dos casos) então ele deveria estender a classe javax.servlet.http.HttpServlet para construir um servlet e isto ´e o que faremos na nossa aplicação. Servlets uma vez iniciados são mantidos na memória. Então toda requisição que chega, vai para o Servlet na memória e este gera uma resposta.

Esta característica de “manter na memória” faz com que usar Java Servlets seja um método extremamente rápido e eficiente para construir aplicações Web.

 

A figura abaixo ilustra o funcionamento de um relacionamento entre um servlet, container e um servidor web.

 

rcpjspndcfig02.jpg 

 

O exemplo mostra o uso de um objeto HttpSession para armazenar as informações digitadas em um formulário.

 

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class SessionTeste extends HttpServlet

{

  public void doGet(HttpServletRequest req, HttpServletResponse resp)

     throws IOException, ServletException

  {

     resp.setContentType("text/html");

 

   PrintWriter out = resp.getWriter();

   out.println("<html><head>");

   out.println("<title>Teste de Sessao</title>");

   out.println("</head>");

   out.println("<body>");

   out.println("<h3>Teste de Sessao</h3>");

   HttpSession session = req.getSession(true);

   out.println("Identificador: " + session.getld());

   out.println("<br>");

   out.println("Data: ");

   out.println(new Date(session.getCreationTime()) + "<br>");

   out.println("Ultimo acesso: ");

   out.println(new Date(session.getLastAccessedTime()));

 

     String nomedado = req.getParameter("nomedado");

     String valordado = req.getParameter("valordado");

     if (nomedado != null && valordado != null)

     {

        session.setAttribute(nomedado, valordado);

     }

    

   out.println("<P>");

   out.println("Dados da Sessao:" + "<br>");

   Enumeration valueNames = session.getAttributeNames();

    

     while (valueNames.hasMoreElements())

     {

         String name = (String)valueNames.nextElement();

         String value = (String) session.getAttribute(name);

         out.println(name + "=" + value+ "<br>");

     }

 

   out.println("<P>");

   out.println("<form action=\"SessionTeste\" method=POST>");

   out.println("Nome: <input type=text size=20 name=nomedado><br>");

   out.println("Valor: <input type=text size=20 name=valordado><br>");

   out.println("<input type=submit>");

   out.println("</form>");

   out.println("</body></html>");

     }

 

  public void doPost(HttpServletRequest req, HttpServletResponse resp)

        throws IOException, ServletException

     {

        doGet(req, resp);

     }}

 

Para controlar a sessão é necessário obter um objeto HttpSession por meio do método getSession() do objeto HttpServletRequest. Opcionalmente, o método getSession() recebe como argumento um valor booleano que indica se é para criar o objeto HttpSession se ele não existir (argumento true) ou se é para retorna null caso ele não exista (argumento false). Para se associar um objeto ou informação à sessão usa-se o método setAttribute() do objeto HttpSession, passando para o método um String e um objeto que será identificado pelo String. Note que o método aceita qualquer objeto e, portanto, qualquer objeto pode ser associado à sessão. Os objetos associados a uma sessão são recuperados com o uso método getAttribute() do objeto HttpSesion, que recebe como argumento o nome associado ao objeto. Para se obter uma enumeração dos nomes associados à sessão usa-se o método getAttributeNames() do objeto HttpSession.

 

Segue abaixo o resultado da execução do exemplo.



rcpjspndcfig03.jpg

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?