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);
}
}






