Guia Prático de Programação Web: PHP e JSP
Classificado em Computação
Escrito em em
português com um tamanho de 7,29 KB
1. Conceitos Fundamentais de JSP
Comente a seguinte expressão: “A linguagem JSP é uma linguagem que apenas funciona em ambientes Linux, tendo como principal característica o fato de usar <br> para separar as instruções”.
Não, o JSP (JavaServer Pages) é uma tecnologia baseada em Java e não está limitada a ambientes Linux. O JSP pode ser executado em qualquer plataforma que suporte o ambiente de execução Java (JRE), incluindo Windows, Linux, macOS e outros sistemas operacionais.
Além disso, não é uma prática comum ou recomendada usar <br> para separar instruções em JSP. Em JSP, as instruções são geralmente separadas por meio de tags JSP, como <% ... %> para blocos de script (scriptlets) ou <jsp:...> para tags JSP personalizadas e ações padrão.
2. Conexão com Banco de Dados em PHP
A linguagem PHP permite usar a função mysqli_connect(), que tem a particularidade de aceitar 3 ou 4 parâmetros. Esta função é usada para estabelecer uma conexão com um banco de dados MySQL.
- Três parâmetros:
mysqli_connect(host, username, password). Fornecemos o nome do host, o usuário e a senha. - Quatro parâmetros:
mysqli_connect(host, username, password, dbname). Inclui também o nome da base de dados.
Exemplo com 3 parâmetros:
$host = 'localhost';
$username = 'isabel';
$password = 'xpto123';
$dbname = 'estcb';
$conn = mysqli_connect($host, $username, $password);
if (!$conn) {
die('Não foi possível conectar: ' . mysqli_connect_error());
}
$db_selected = mysqli_select_db($conn, $dbname);
if (!$db_selected) {
die ('Não foi possível selecionar a base de dados: ' . mysqli_error($conn));
}
$sql = "SELECT * FROM aluno";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id_aluno"]. " - Nome: " . $row["nome"]. "<br>";
}
mysqli_close($conn);Exemplo com 4 parâmetros:
$host = 'localhost';
$username = 'isabel';
$password = 'Lim2';
$dbname = 'estcb';
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die('Não foi possível conectar: ' . mysqli_connect_error());
}
$sql = "SELECT * FROM aluno";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id_aluno"]. " - Nome: " . $row["nome"]. "<br>";
}
mysqli_close($conn);3. Objetos Implícitos em JSP
Os objetos implícitos são objetos Java que já estão disponíveis no JSP para facilitar o acesso a recursos do servidor.
- out: Objeto do tipo
JspWriter, utilizado para exibir dados na página (ex:out.println("Olá Mundo");). - request: Permite acesso a parâmetros enviados pelo cliente via HTTP (GET ou POST).
- response: Permite configurar a resposta que será enviada ao usuário.
- session: Utilizado para gerenciar sessões de usuário.
- application: Referencia o
ServletContextpara compartilhar valores em toda a aplicação. - config: Utilizado para leitura de parâmetros de inicialização do servlet.
- exception: Disponível em páginas de erro para tratar exceções.
- pageContext: Ponto de acesso para atributos de diversos escopos.
- page: Referência à instância da própria página (semelhante ao
thisem Java).
4. Método POST em PHP
O método POST envia dados no corpo da requisição HTTP, sendo ideal para informações sensíveis ou volumes extensos de dados, pois não expõe os valores na URL.
Formulário HTML (form.html):
<form action="processar_dados.php" method="POST">
<label for="freq_lpi">Frequência LPI:</label>
<input type="number" name="freq_lpi" id="freq_lpi">
<button type="submit">Enviar</button>
</form>Processamento PHP (processar_dados.php):
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['freq_lpi'])) {
$freq_lpi = $_POST['freq_lpi'];
echo "A frequência LPI enviada é: " . htmlspecialchars($freq_lpi);
} else {
echo "Erro: O campo 'freq_lpi' não foi enviado.";
}
}5. Método GET em JSP
O método GET anexa os dados à URL, sendo útil para consultas e dados não sensíveis.
Formulário HTML (formulario.html):
<form action="processar_dados.jsp" method="GET">
Frequência LPI: <input type="number" name="freq_lpi" required>
<input type="submit" value="Enviar">
</form>Processamento JSP (processar_dados.jsp):
<%
String freq_lpi = request.getParameter("freq_lpi");
%>
<p>Frequência LPI: <%= freq_lpi %></p>6. Análise de URLs
- URL ao clicar em “Botão”:
lpi_freq.php?desc=valor_digitado&prod_id=cad_321_a4 - URL ao clicar em “Enviar”:
lpi_freq.php?desc=cadernoA4
7. Gerenciamento de Sessões em PHP
Exemplo de uso de sessões com a variável lpi_artg_id:
- lpi1.php (Criação):
session_start(); $_SESSION['lpi_artg_id'] = 1; - lpi2.php (Incremento):
session_start(); if(isset($_SESSION['lpi_artg_id'])) { echo $_SESSION['lpi_artg_id']; $_SESSION['lpi_artg_id'] += 3; } - lpi3.php (Destruição):
session_start(); unset($_SESSION['lpi_artg_id']);
8. Gerenciamento de Sessões em JSP
- lpi1.jsp:
<% session.setAttribute("lpi_artg_id", 1); %> - lpi2.jsp:
<% Integer id = (Integer) session.getAttribute("lpi_artg_id"); if(id != null) { session.setAttribute("lpi_artg_id", id + 3); } %> - lpi3.jsp:
<% session.removeAttribute("lpi_artg_id"); %>
9. Elementos de Scripting em JSP
- Expression:
<%= expressão %>. Avalia um código Java e imprime o resultado diretamente no HTML. Ex:<%= 2 + 3 %>resulta em 5. - Scriptlet (Action):
<% código %>. Permite inserir blocos de lógica Java. Ex:<% String nome = "João"; out.println("Olá, " + nome); %>
10. Análise de Erro em SQL e PHP
O código tenta conectar ao banco "books". Se bem-sucedido, imprime "OK: SELECT efectuado com sucesso!". Caso contrário, cai no bloco catch imprimindo "ERRO: Não foi possível efectuar o SELECT!". Nota importante: A instrução SELECT fornecida no enunciado é inválida, pois não especifica colunas (ex: SELECT *), o que resultaria em erro de sintaxe SQL.