A tecnologia JavaServer Pages (JSP) permite que você crie facilmente conteúdo da web de modo estático e dinâmico. A Tecnologia JSP disponibiliza todas as capacidades dinâmicas da tecnologia Java Servlet, mas fornece uma abordagem mais natural para a criação de conteúdo estático. Uma página JSP é um documento de texto que contém dois tipos de texto: dados estáticos, que podem ser expressos em qualquer formato baseado em texto como o HTML, SVG, WML e XML, e elementos JSP, que constroem conteúdo dinâmico.
Um Scriptlet pode conter instruções da linguagem Java, declarações de variáveis, método, ou expressões que são válidas na língua e podem ser utilizadas em páginas JSP.
Para saber mais sobre a linguagem de scripts utilizada neste exemplo, em especial HTML Forms, você pode utilizar a documentação aberta para web fornecida pela Mozilla no seguinte link:
MDN: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms
Criando um Projeto JSP Utilizando Servlet
1 – Crie um novo projeto do tipo Dynamic Web Project, e o nomeie de DaJSP. Com o botão direito no nome do projeto escolha New e selecione JSP File, o nomeie de index.jsp e clique em Next:
2 – Escolha o arquivo do tipo JSP (xhtml):
3 – Crie um novo Servlet chamado de ServletAcao apenas com o método service, utilize o código abaixo para completar os dois arquivos gerados automaticamente pela IDE Eclipse, o index.jsp e a classe ServletAcao. Clique em Run com o arquivo index.jsp aberto na IDE e o teste:
4 – Utilize a URL do Eclipse no navegador para ver como a pagina JSP se comporta em um Browser:
5 – Após clicar no botão da pagina o Servlet é utilizado através da ação do formulário HTML e o conteúdo Java da classe ServletAcao é executado:
Exemplo:
Neste exemplo criamos um projeto para web dinâmico que utiliza uma pagina JSP e um Servlet, utilizamos o Java no HTML através de declarações de Scriptlets e utilizamos o Servlet em conjunto com a ação da tag Form da pagina XHTML para que classe do Servlet execute seu conteúdo.
JSP
<?xml version="1.0" encoding="ISO-8859-1" ?> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Desenvolvimento Aberto - Servlet & Java Server Pages</title> </head> <body> <p> <!-- Este é o modo de escrever código Java em uma pagina html --> <!-- utilize a marcação abaixo: --> <% out.println("Desenvolvimento Aberto (Titulo Java Dinâmico)"); %> </p> <br /> <form action="servletacao"> <fieldset> <legend>Escolha uma banda:</legend> <br /> Seu Nome:<br /> <input type="text" name="Nome"> <br /> <br /> Bandas: <br /> <select name="bandas"> <option value="Stone Temple Pilots">Stone Temple Pilots</option> <option value="Alice in Chains">Alice in Chains</option> <option value="Screaming trees" selected>Screaming trees</option> <option value="Mother Love bone">Mother Love bone</option> </select> <br></br> <input type="submit" value="Enviar"> </fieldset> </form> </body> </html>
Java – Servlet
package org.desenvolvimento.aberto; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ServletAcao Classe do Servlet */ @WebServlet("/servletacao") public class ServletAcao extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() Construtor do Servlet */ public ServletAcao() { super(); } /** * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse * response) Metodo de serviço do Servlet * * Utilizando Request e Response */ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter imprimir = response.getWriter(); // Recupera parametros String nome = request.getParameter("Nome"); String banda = request.getParameter("bandas"); // Você também pode criar html dinâmico utilizando o Servlet imprimir.println("Desenvolvimento Aberto Servlet/JSP:"); imprimir.println("Nome: " + nome); imprimir.println("Banda escolhida: " + banda); } }