<form>
</form>
<form action="/processar-formulario">
<form method="post">
<label for="nome">Nome:</label>
<input
type="text"
id="nome"
name="nome"
placeholder="Digite seu nome completo"
required
>
<label for="email">E-mail:</label>
<input
type="email"
id="email"
name="email"
placeholder="seu@email.com"
required
>
<label for="senha">Senha:</label>
<input
type="password"
id="senha"
name="senha"
minlength="8"
required
>
<p>Gênero:</p>
<input type="radio" id="masc" name="genero" value="masculino">
<label for="masc">Masculino</label>
<input type="radio" id="fem" name="genero" value="feminino">
<label for="fem">Feminino</label>
<input type="radio" id="outro" name="genero" value="outro">
<label for="outro">Outro</label>
<p>Interesses:</p>
<input type="checkbox" id="esporte" name="interesses" value="esporte">
<label for="esporte">Esportes</label>
<input type="checkbox" id="musica" name="interesses" value="musica">
<label for="musica">Música</label>
<input type="checkbox" id="tech" name="interesses" value="tecnologia">
<label for="tech">Tecnologia</label>
<label for="estado">Estado:</label>
<select id="estado" name="estado">
<option value="">Selecione...</option>
<option value="SP">São Paulo</option>
<option value="RJ">Rio de Janeiro</option>
<option value="MG">Minas Gerais</option>
</select>
<select multiple name="linguagens[]">
<option value="java">Java</option>
<option value="js">JavaScript</option>
</select>
<label for="idade">Idade:</label>
<input
type="number"
id="idade"
name="idade"
min="18"
max="120"
step="1"
>
<label for="telefone">Telefone:</label>
<input
type="tel"
id="telefone"
name="telefone"
placeholder="(99) 99999-9999"
pattern="\(\d{2}\) \d{5}-\d{4}"
>
<!-- Seletor de data -->
<label for="nascimento">Data de nascimento:</label>
<input type="date" id="nascimento" name="nascimento">
<!-- Seletor de hora -->
<label for="reuniao">Horário da reunião:</label>
<input type="time" id="reuniao" name="reuniao">
<!-- Data e hora combinados -->
<label for="entrega">Data e hora da entrega:</label>
<input type="datetime-local" id="entrega" name="entrega">
<label for="website">Seu site:</label>
<input
type="url"
id="website"
name="website"
placeholder="https://www.exemplo.com.br"
pattern="https://.*"
>
<!-- Versão básica -->
<input type="submit" value="Enviar formulário">
<!-- Versão com tag button (mais flexível) -->
<button type="submit">
Enviar dados
</button>
<form action="/buscar" method="get">
<label for="termo">Termo:</label>
<input type="text" id="termo" name="termo">
<label for="categoria">Categoria:</label>
<select id="categoria" name="categoria">
<option value="cursos">Cursos</option>
<option value="artigos">Artigos</option>
</select>
<button type="submit">Buscar</button>
</form>
<form action="/login" method="post">
<label for="email">E-mail:</label>
<input type="email" id="email" name="email">
<label for="senha">Senha:</label>
<input type="password" id="senha" name="senha">
<button type="submit">Entrar</button>
</form>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Formulário de Contato</title>
</head>
<body>
<h1>Entre em contato</h1>
<!-- Formulário HTML dentro do JSP -->
<form action="ProcessaContato" method="post">
...campos do formulário...
</form>
</body>
</html>
<%-- Podemos usar código Java para valores dinâmicos --%>
<%
String dataAtual = new java.text.SimpleDateFormat("dd/MM/yyyy")
.format(new java.util.Date());
%>
<input type="hidden" name="dataEnvio" value="<%= dataAtual %>">
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ProcessaFormulario extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Processamento dos dados aqui
}
}
// Recupera valores individuais
String nome = request.getParameter("nome");
String email = request.getParameter("email");
// Para checkboxes (múltiplos valores)
String[] interesses = request.getParameterValues("interesses");
// Verificando se um parâmetro existe
if (request.getParameter("concordo") != null) {
// Usuário marcou o checkbox
}
// Configurando a resposta
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// Gerando HTML dinamicamente
out.println("<html><body>");
out.println("<h1>Obrigado, " + nome + "!</h1>");
out.println("<p>Seu cadastro foi realizado com sucesso.</p>");
out.println("</body></html>");
// Ou redirecionando para uma página JSP
request.setAttribute("usuario", nome);
request.getRequestDispatcher("/sucesso.jsp")
.forward(request, response);
<!-- Campo obrigatório -->
<input type="text" required>
<!-- Limites de caracteres -->
<input type="text" minlength="3" maxlength="50">
<!-- Padrão personalizado (CEP brasileiro) -->
<input type="text" pattern="\d{5}-\d{3}"
placeholder="12345-678">
<!-- Números com limites -->
<input type="number" min="18" max="100">
// HTML
<form id="meuForm" onsubmit="return validarForm()">
<input type="password" id="senha">
<input type="password" id="confirmarSenha">
<div id="erro"></div>
<button type="submit">Enviar</button>
</form>
// JavaScript
function validarForm() {
const senha = document.getElementById("senha").value;
const confirma = document.getElementById("confirmarSenha").value;
const erro = document.getElementById("erro");
if (senha !== confirma) {
erro.textContent = "As senhas não coincidem!";
erro.style.color = "red";
return false; // Impede envio do formulário
}
return true; // Permite envio do formulário
}