JavaServer Pages (JSP)

JavaServer Pages és una tecnologia que permet als desenvolupadors de pàgines web generar respostes dinàmicament a peticions HTTP. La tecnologia permet que codi Java i certes accions predefinides siguin incrustades en un context estàtic. (http://ca.wikipedia.org/wiki/JavaServer_Pages)

Comentaris

<%-- comentari --%>

Directives

<%@ directiva %>
  • page. Atributs:
    • import="package.class" importar classes, és l'unic que pot aparèixer més d'un cop
    • contentType="MIME-Type" ("text/html") tipus MIME de la sortida
    • isThreadSafe="true|false" (true) fa que vàries peticions es processen amb un únic exemplar de servlet
    • session="true|false" (true): usem sessions i s'ctiva la variable session, false-> no s'usen sessions
    • buffer="sizekb|none" tamany del buffer per a out (el tamany per defecte s'especifica en el servidor)
    • autoflush="true|false" (true) si el buffer es descarrega quan està ple
    • extends="package.class" superclasse del servlet que es generarà
    • info="message" defineix un string que es pot obtenir a partir de .getServletInfo
    • errorPage="url" pàgina jsp que s'ha de processar si es llença un error
    • isErrorPage="true|false" (false) diu si aquesta pàgina actua com a pàgina d'error d'un altre jsp
    • language="java" llenguatge que usarem, sempre serà java
Exemple:
<%@ page import="java.util.*, com.foo.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
  • include. Atributs:
    • file="path" fitxer que volem incloure.
Exemple:
<%@ include file="cap.html" %>
...
<%@ include file="peu.html" %>

Declaracions

<%! declaració variables/mètodes estàtics %>

Exemple:

<%! int i=0; %>
<%! public void funcio() {
 ...
 }
%>

Expressions

Ens escriu el valor que retorna l'expressió en el document html resultant.
<%= Expressió Java =%>
Exemple:
<%= fooVariable %>
<%= fooBean.getName() %>

Scriptlets

<% codi java %>

Exemple:

<% for (int i=1; i<=4; i++) { %>
 <h<%=i%>>Hello</h<%=i%>>
<% } %>

Objectes implícits

  • out (objecte JspWriter)
  • request (objecte HttpServletRequest)
  • response (objecte HttpServletResponse)
  • session (objecte HttpSession)
  • application (ServletConetxt, a aprtir de getServletConfig().getContext() )
  • config (ServletConfig)
  • pageContext (objecte pageContext)

JavaBeans

Javabean: implementa una classe serialitzable i té mètodes getters i setters per a cada propietat. http://ca.wikipedia.org/wiki/JavaBeans

Des de JSP tenim unes etiquetes que ens serveixen per usar beans:
<jsp:useBean id="nomobjecte" type="nomclasse" scope="abast" />
  • Atribut scope (no obligatori): que em diu quin abast té la variable. Possibles valors: page, request, session i application (per defecte: page).
Per obtenir el valor d'un JavaBean:
<jsp:getProperty name="nomobjecte" property="nompropietat" />
Per posar-li valor (no ho farem per no trencar el MVC):
<jsp:setProperty name="nomobjecte" property="nompropietat" value="valorpropietat" />
  • Atribut param: em posa el valor que hi hagi al paràmetre passat a la pàgina (no podem posar param i value alhora)
<jsp:setProperty name="nomobjecte" param="nomparametre" />
També podem fer:
 <jsp:setProperty name="nomobjecte" property="*" /> 
Això fa que posi tots els paràmetres obtinguts per la URI als camps (propietats) corresponents de l'objecte.

A partir de JSP 2.0, podem usar EL (Expression Language):

${nomobjecte.propietat}

Més etiquetes

Inclou el fitxer quan la pàgina es sol·licita, no cal reiniciar res:
<jsp:include page="pagina" flush="true" />
Redirecciona a la pàgina
<jsp:forward page="pagina" />


Last modified: Monday, 1 July 2013, 09:14 AM