Vimos nos exemplos anteriores que podemos chamar um Servlet em uma página HTML. As páginas HTML disponibilizam vários recursos que podem ser utilizados para o desenvolvi- mento de interfaces amigáveis com o usuário, sendo essas acessíveis em browsers. Entre eles temos a possibilidade de criar um formulário para entrada de dados e posterior envio desses dados ao servidor. Para isso devemos utilizar a tag html <form> e configurar o método de submissão e o Servlet que vai receber os valores para que possam ser processados de acordo com a necessidade da aplicação em desenvolvimento.
O código HTML, a seguir, ilustra a criação de uma página que possibilita o envio de dados do cliente para que possam ser processados por um Servlet no lado servidor da aplicação em desenvolvimento. A execução desse código em um browser tem como resultado o que é exibido na figura 4.5.
<html> <head>
<title></title>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> </head>
<body>
<form method=”POST” action=”ExemploServlet02”> Digite uma frase: <input name=”frase” value=””>
Figura 4.4 Servlet referenciado via página HTML.
Ca pí tu lo 4 - S er vl et s
q
Servidor: 1 Uso do doPost().1 Uso do request.getParameter(String param). 1 Uso de Wrappers e casting.
A seguir, apresentamos o método doPost() da classe Servlet, que vai receber os valores enviados do formulário HTML e realizar o processamento das informações. As classes responsáveis pela comunicação entre cliente e servidor são: HttpServletRequest e HttpServletResponse.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response);
response.setContentType(“text/html;charset=UTF-8”); PrintWriter out = response.getWriter();
try {
/* TODO output your page here. You may use following sample code. */ out.println(“<html>”);
out.println(“<head>”);
out.println(“ <title>Servlet ExemploServlet02</title>”); out.println(“</head>”);
out.println(“ <body>”); out.println(“ <center>”);
out.println(“ A frase digitada foi: <b>” + request. getParameter(“frase”) + “</b>”);
out.println(“ <br><br><a href=’exemplo02.html’>Voltar</a>”); out.println(“ </center>”); out.println(“ </body>”); out.println(“</html>”); } finally { out.close(); } }
O objeto criado a partir da interface HttpServletRequest encapsula todos os dados referentes à solicitação do usuário. Esses dados são posteriormente acessados pelo método da própria interface, bem como métodos herdados da interface ServletRequest.
O objeto criado a partir da interface HttpServletResponse realiza o caminho inverso da interface HttpServletRequest. O objeto gerado a partir da instanciação dela envia dados encapsulados ao usuário em resposta à solicitação do cliente.
Figura 4.5 Formulário HTML de entrada de dados. Figura 4.6 HTML resultante do processo de Servlet.
aç õe s W eb
Exercícios de fixação e
Servlets
Qual a diferença entre applet e Servlet?
Ca pí tu lo 5 - J SP ( Ja va S er ve r P ag es )
obj
et
ivo
s
co
nc
ei
to
s
5
JSP (Java Server Pages)
Apresentar aos alunos os mecanismos de controle de aplicações Java para internet com o uso de scriplets JSP, tecnologia utilizada no desenvolvimento de páginas dinâmicas acessíveis por meio de navegadores internet.
JSP; dados estáticos; elementos sintáticos e objetos implícitos.
Introdução
JSP (Java Server Pages) é uma tecnologia para desenvolvimento de aplicações web semelhante ao Microsoft Active Server Pages (ASP), porém tem a vantagem da portabilidade de plataforma podendo ser executado em outros Sistemas Operacionais além daqueles oferecidos pela Microsoft. Permite ao desenvolvedor de sites produzir aplicações que acessam banco de dados ou arquivos-texto, que captem informações a partir de formulários, quem captem informações sobre o visitante ou sobre o servidor, o uso de variáveis e loops, entre outras coisas.
q
JavaServer Pages (JSP).
1 Tecnologia que ajuda os desenvolvedores de software a criarem páginas web geradas dinamicamente.
1 Baseadas em HTML, XML e outros tipos de documentos. Lançada em 1999 pela Sun Microsystems.
1 Similar ao PHP e ASP, mas usa a linguagem de programação Java. Não oferece nada que você não possa conseguir com os servlets puros.
1 Vantagem de ser facilmente codificado, facilitando assim a elaboração e manutenção de uma aplicação.
Quem conhece servlets verá que o JSP não oferece nada que você não possa conseguir com os servlets puros. O JSP, entretanto, oferece a vantagem de ser facilmente codificado, facilitando assim a elaboração e manutenção de uma aplicação. Além disso, essa tecnologia permite separar a programação lógica (parte dinâmica) da programação visual (parte estática), facilitando o desenvolvimento de aplicações mais robustas, onde programador e designer podem trabalhar no mesmo projeto, mas de forma independente. Outra característica do JSP é produzir conteúdos dinâmicos que possam ser reutilizados.
aç
õe
s W
eb
Quando uma página JSP é requisitada pelo cliente através de um browser, essa 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 5.1 ilustra esse funcionamento.
Cliente JSP Engine & WEB Server JSP File Component Request Request Request Response Response Response
Quando o cliente faz a solicitação de um arquivo JSP, é enviado um object request para a JSP engine. A JSP engine envia a solicitação de qualquer componente (podendo ser um JavaBeans component, servlet ou enterprise Bean) especificado no arquivo. O componente controla a requisição possibilitando a recuperação de arquivos em banco de dados ou outro dado armazenado e, em seguida, passa o objeto response de volta para a JSP engine. A JSP engine e o web server enviam a página JSP revisada de volta para o cliente, onde o usuário pode visualizar os resultados através do browser. O protocolo de comunicação usado entre o cliente e o servidor pode ser HTTP ou outro protocolo.
Por definição, JSP usa Java como sua linguagem de scripts. Por esse motivo, O JSP se apre- senta mais flexível e mais robusto do que outras plataformas baseadas simplesmente em JavaScripts e VBScripts.
q
Dificuldades no uso de servlets: 1 Problemas de manutenção. 1 Legibilidade do código.
1 Código Java misturado com código HTML. Vantagens do JSP:
1 Utilização de forma direta no HTML. 1 Possibilita a inclusão de instruções Java.