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 ServletContext para 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 this em 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.

Entradas relacionadas: