JSP Actions

Posted by Luciano Cunha on November 20, 2023
Tags: web java jsp servlet

Actions são outro conjunto de tags que são processadas pelo servidor, auxiliando na criação de página dinâmicas, funcionais e que permitam o acesso a objetos Java.

Tipos de actions são:

  • Standard actions
  • Custom Actions
  • JSTL actions

Na sequência, dois exemplos de utilização de actions em JSP.

1. include:

  • menu.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div>
  <a href="/index.jsp">Index</a>
</div>
  • form.jsp
<jsp:include page="menu.jsp" />
<br>
<form action="/redirect" method="post">
  Username: <input type="text" name="user" id="user">
  <input type="submit" value="Enviar">
</form>

Esse exemplo demonstra a utilização da action include. Como o próprio nome diz, essa action inclui um trecho de código em outra página.

Em nosso exemplo, estamos utilizando include para adiconar o menu nas páginas de nossa app.

2. forward

  • index.jsp
<h2>Exemplos de Actions</h2>
<ul>
  <li><a href="/form.jsp">Form</a></li>
  <li><a href="/forward01.jsp">Forwards</a></li>
</ul>
  • forward01.jsp
   <jsp:forward page="forward02.jsp">
    <jsp:param name="page01" value="Passei pela pagina 1"/>
  </jsp:forward>
  • forward02.jsp
<jsp:forward page="forward03.jsp">
  <jsp:param name="page02" value="Passei pela pagina 2"/>
</jsp:forward>
  • forward03.jsp
<jsp:forward page="goal.jsp">
  <jsp:param name="page03" value="Passei pela pagina 3"/>
</jsp:forward>
  • goal.jsp
  <jsp:include page="menu.jsp"/>
  <%
     String param1 = request.getParameter("page01");
     String param2 = request.getParameter("page02");
     String param3 = request.getParameter("page03");
  %>
  <ul>
    <li><%= param1%></li>
    <li><%= param2%></li>
    <li><%= param3%></li>
  </ul>

Esse exemplo, demonstra a utilização da action forward.

Importante destacar que existe uma diferença entre redirect e forward:

  • redirect: direcionamento feito pelo servidor, mais utilizado após o processamento de um post.
  • forward: direcionamento feito pelo cliente, mantém a requisição e todo seu contexto.

No exemplo acima, temos 5 arquivos jsp, sendo eles:

  • index: a página inicial, com os links para as jsp's e para o primeiro forward.
  • forward01: primeira página que encaminha para a página 2.
  • forward02: primeira página que encaminha para a página 3.
  • forward03: primeira página que encaminha para a página goal.
  • goal: que existe todas os parâmetros coletados durante os encaminhamentos.

Essa sequência de jsp's demonstra como funciona o forward, utilizando a actions jsp:forward.

Perceba que ao chegar na página destino, temos três parâmetros, coletados durante os encaminhamentos.

- Passei pela pagina 1
- Passei pela pagina 2
- Passei pela pagina 3

Isso se deve ao fato de que o forward só redireciona a requisição, mantendo todo o seu contexto. O que não aconteceria com o redirect.

Para saber mais