JSP
Característiques bàsiques de JSP
Elements scriptlet
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
<%@ page import="java.util.*, com.foo.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
include
Atributs:
- file fitxer que volem incluir
<%@ include file="cap.html" %>
...
<%@ include file="peu.html" %>
Comentaris
<%-- comentari --%>
Declaracions
<%! declarció variables/mètodes %>
Exemple:
<%! int i=0; %>
<%! public void funcio() {
...
}
%>
Expressions
Ens escriu el valor que retorna de 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 la classe serializable i té mètodes getters i setters per a cada propietat.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 camp abast té la variable. Posisibles 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" />atibut param: em posa el valor que hi hagi al paràmetre passat a la pàgina (no podem posar param i value alhora)
Podem no posar ni value ni param i que associi el valor amb el paràmetre corresponent. Per exemple: <jsp:setProperty name="nomobjecte" property="*" /> fa que posi tots els paràmetres obtinguts per la URI als camps (propietats) corresponents de l'objecte
Amb JSP 2.0:
${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" />
