Diferència entre revisions de la pàgina «NF2 - Llenguatge JSP (15h)»
(→Objecte Page) |
|||
Línia 271: | Línia 271: | ||
</source> | </source> | ||
Per a més informació [http://www.tutorialspoint.com/jsp/jsp_actions.htm] | Per a més informació [http://www.tutorialspoint.com/jsp/jsp_actions.htm] | ||
+ | == Exercicis == | ||
+ | === System.getProperty === | ||
+ | Escriu una JSP per a la sortida dels valors retornats per System.getProperty per a diverses propietats del sistema, com java.version, java.home, os.name, user.name, user.home, user.dir etc. | ||
+ | <!-- | ||
+ | Solució: | ||
+ | <source lang="xml"> | ||
+ | <HTML> | ||
+ | <BODY> | ||
+ | Hello!<br> The time is now <%= java.util.Calendar.getInstance().getTime() %><br> | ||
+ | <table border=”1″> | ||
+ | <tr><td><b>Property Names</b></td> | ||
+ | <td><b>Property Values</b></td></tr> | ||
+ | <% | ||
+ | final String[] properties = { | ||
+ | “java.runtime.name”, | ||
+ | “java.vm.vendor”, | ||
+ | “java.runtime.version”, | ||
+ | “java.vendor.url”, | ||
+ | “user.timezone”, | ||
+ | “user.language”, | ||
+ | “os.name”, | ||
+ | “sun.desktop” | ||
+ | }; | ||
+ | for (int i = 0; i < properties.length; i++) { | ||
+ | String pname = properties[i]; | ||
+ | String pvalue = System.getProperty(pname); | ||
+ | %> | ||
+ | <tr> | ||
+ | <td><%= pname %></td> | ||
+ | <td><%= pvalue %></td> | ||
+ | </tr> | ||
+ | <% } %> | ||
+ | </table> | ||
+ | <br> <br> | ||
+ | *************************************************************************<br> | ||
+ | Java Version is <%= System.getProperty(“java.version”) %><br> | ||
+ | Java Home is <%= System.getProperty(“java.home”) %><br> | ||
+ | Operating System is <%= System.getProperty(“os.name”) %><br> | ||
+ | User Name is <%= System.getProperty(“user.name”) %><br> | ||
+ | User Home is <%= System.getProperty(“user.home”) %><br> | ||
+ | User Directory is <%= System.getProperty(“user.dir”) %><br> | ||
+ | **************************************************************************<br> | ||
+ | <br> | ||
+ | </BODY> | ||
+ | </HTML> | ||
+ | </source> | ||
+ | --> | ||
+ | === Dia i hora === | ||
+ | Escriu una JSP que mostri el dia que es avui de la següent manera, "Hola! El moment és ara ... " però utilitzant un scriptlet per a la cadena completa, incloent-hi les etiquetes HTML. | ||
+ | |||
+ | <!-- | ||
+ | <source lang="xml"> | ||
+ | <%@ page import="java.util.*" %> | ||
+ | <% | ||
+ | out.println("<HTML>"); | ||
+ | out.println(" <BODY>"); | ||
+ | // This scriptlet declares and initializes “date” | ||
+ | out.println("Evaluating date now<BR>" ); | ||
+ | java.util.Date date = new java.util.Date(); | ||
+ | |||
+ | %> | ||
+ | Hello! The time is now | ||
+ | <% | ||
+ | // out.println( “Hello! The time is now”); -> Using this instead of the above line generates the same result | ||
+ | // This scriptlet generates HTML output | ||
+ | out.println( String.valueOf( date )); | ||
+ | out.println( "<BR>Your machine’s address is " ); | ||
+ | out.println( request.getRemoteHost()+" <BR>"); | ||
+ | Calendar t = Calendar.getInstance(); | ||
+ | int time=t.get(Calendar.HOUR)+1; | ||
+ | out.println( t.get(Calendar.YEAR) + "– int value of the year <BR>"); | ||
+ | out.println( t.get(Calendar.MONTH) +" — int value of the month (0-11) <BR>"); | ||
+ | out.println( t.get(Calendar.DAY_OF_MONTH) + "– int value of the day of the month (1-31) <BR>"); | ||
+ | out.println( t.get(Calendar.DAY_OF_WEEK) + "– int value of the day of the week (0-6) <BR>"); | ||
+ | out.println( t.get(Calendar.HOUR) + "– int value of the hour in 12 hour notation (0-12) <BR>"); | ||
+ | out.println( time + "– int value of the hour in 12 hour notation (0-12) <BR>"); | ||
+ | out.println( t.get(Calendar.AM_PM) + "– returns either Calendar.AM or Calendar.PM <BR>"); | ||
+ | out.println( t.get(Calendar.HOUR_OF_DAY) + "– int value of the hour of the day in 24-hour notation (0-24) <BR>"); | ||
+ | out.println( t.get(Calendar.MINUTE) + "– int value of the minute in the hour (0-59) <BR>"); | ||
+ | out.println( t.get(Calendar.SECOND) + "– int value of the second within the minute (0-59).<BR>"); | ||
+ | out.println( t.get(Calendar.MILLISECOND)+ "– int value of the milliseconds within a second (0-999). <BR>"); | ||
+ | out.println( "</BODY>"); | ||
+ | out.println( "</HTML>"); | ||
+ | %> | ||
+ | </source> | ||
+ | --> | ||
+ | |||
+ | === Salutació === | ||
+ | Crea una JSP que depenent de si una variable s'inicialitza a true o false dona un missatge o un altre. | ||
+ | Exemple de missatge true: | ||
+ | ''Bon dia! bon dia! bon dia al de matí'' | ||
+ | |||
+ | Exemple de missatge a false: | ||
+ | ''Bona tarda! Bona tarda! Bona tarda a tothom'' | ||
+ | |||
+ | === jsp:fordwawrd === | ||
+ | Crea una pagina jsp anomenada 'fordward.jsp' que enviï a una altre pàgina anomenada 'mostraparametres.jsp', utilitzant <jsp:fordward>, dos paràmetres. | ||
+ | <!-- | ||
+ | Solució: | ||
+ | <source lang="xml"> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Action Elements</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | Hello | ||
+ | <jsp:forward page=”ssParameters.jsp”> | ||
+ | <jsp:param name=”myParam” value=”Amardeep Patel”/> | ||
+ | <jsp:param name=”Age” value=”15″/> | ||
+ | </jsp:forward> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | mostraparametres.jsp | ||
+ | <b>Name:</b> <%= request.getParameter(“myParam”) %> is <%=request.getParameter(“Age”) %> years old | ||
+ | </source> | ||
+ | |||
+ | --> | ||
== Objectes implícits == | == Objectes implícits == | ||
Línia 502: | Línia 620: | ||
=== Objecte Page === | === Objecte Page === | ||
Aquest objecte és una referència real a la instància de la pàgina. Es pot considerar com un objecte que representa el pàgina JSP sencera. L'objecte de pàgina és realment un sinònim directe per el objecte '''this'''. | Aquest objecte és una referència real a la instància de la pàgina. Es pot considerar com un objecte que representa el pàgina JSP sencera. L'objecte de pàgina és realment un sinònim directe per el objecte '''this'''. | ||
+ | |||
+ | == Exercicis == | ||
+ | |||
+ | === IP === | ||
+ | Escriu una pàgina jsp que ens mostri la IP del PC que ha fet la petició. | ||
+ | <!-- | ||
+ | Solució: | ||
+ | <source lang="xml"> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>System Information</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h3>Details of Remote Computer:</h3> | ||
+ | |||
+ | <b>Computer Name:</b>: | ||
+ | <br> | ||
+ | <%=request.getRemoteHost()%> | ||
+ | <br> | ||
+ | <br> | ||
+ | |||
+ | <b>IP Address:</b>: | ||
+ | <br> | ||
+ | <%=request.getRemoteAddr()%> | ||
+ | <br> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </source> | ||
+ | |||
+ | === Pas de paràmetres === | ||
+ | Escriviu una pàgina jsp que passa tres paràmetres a una altre pàgina JSP amb <jsp:include> i <jsp:param>. A més, la pàgina principal pot rebre tres paràmetres via GET (URL) i els mostra. Especifiqueu els tres paràmetres amb els noms: param1 , param2 i param3 | ||
+ | |||
+ | <source lang="xml"> | ||
+ | //Pàgina ex_param_1.jsp | ||
+ | <html> | ||
+ | <head></head> | ||
+ | <body> | ||
+ | <jsp:include page="//Pàgina ex_param_2.jsp" > | ||
+ | <br> | ||
+ | <jsp:param name="param1" value="val1" /> | ||
+ | <br> | ||
+ | <jsp:param name="param2" value="val2" /> | ||
+ | <br> | ||
+ | <jsp:param name="param3" value="val3" /> | ||
+ | </jsp:include> | ||
+ | <br> | ||
+ | <b>Calling page:<b> | ||
+ | <br> | ||
+ | Name1: <%= request.getParameter("param1") %> | ||
+ | <br> | ||
+ | Name2: <%= request.getParameter("param2") %> | ||
+ | <br> | ||
+ | Name3: <%= request.getParameter("param3") %> | ||
+ | <br> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | //Pàgina ex_param_2.jsp | ||
+ | <html> | ||
+ | <body> | ||
+ | <h2>Called page: </h2> | ||
+ | <b>Names:</b> | ||
+ | <br> | ||
+ | Name1: <%= request.getParameter("param1") %> | ||
+ | <br> | ||
+ | Name2: <%= request.getParameter("param2") %> | ||
+ | <br> | ||
+ | Name3: <%= request.getParameter("param3") %> | ||
+ | <br> | ||
+ | </body> | ||
+ | </html> | ||
+ | </source> |
Revisió del 00:44, 9 nov 2014
Contingut
Java Server Pages (JSP)
JavaServer Pages (JSP) és una tecnologia basada en el llenguatge Java que permet incorporar contingut dinàmic a les pàgines web. Els arxius JSP combinen HTML amb etiquetes especials i fragments de codi Java. El codi font d'una pàgina JSP pot contenir:
- Directives: Indiquen informació general de la pàgina, com pot ser importació de classes, pàgina a invocar davant errors, si la pàgina forma part d'una sessió, etc.
- Declaracions: Serveixen per declarar mètodes o variables.
- Scriptlets: Codi Java embegut.
- Expressions: Expressions Java que s'avaluen i s'envien a la sortida.
- Tags JSP: Etiquetes especials que interpreta el servidor.
Exemple de JSP:
<%@page import="java.util.*"%>
<%! String cadena="Bienvenidos a JSP"; %>
<html>
<body>
<%= cadena %>
<br>
<% out.println(new Date()); %>
</body>
</html>
Directives
Les directives són elements que proporcionen informació al motor JSP, i influiran en l'estructura del servlet generat. Hi ha tres tipus de directives: page, taglib i include.
page
S'indica amb la forma <%@ page atribut="valor">. Té diversos usos, entre els quals destacarem:
- Importar classes. Importar codi, de la mateixa forma que es realitza en un programa en Java,
s'indica amb l'atribut import. Exemple:
<%@page import="java.io.*, miPackage.miClase"%>
- Indicar si la pàgina tindrà accés a la sessió. S'especifica amb l'atribut session. L'ús de sessions es veurà amb més detall a l'apartat d'objectes implícits.
Exemple:
<%@page session="true" import="java.util.ArrayList"%>
- Gestió d'errors. Permet redireccionar a una pàgina quan es produeixi un error, s'indicaamb els atributs errorPage i isErrorPage.
Exemple:
<%@page errorPage="error.jsp">
[...]
<%@page isErrorPage="yes">
<html>
<body>
Error, contacte con el administrador [...]
</body>
</html>
include
Permet incloure un arxiu en el lloc on s'especifiqui, al contrari que amb l'acció <jsp:include> que veurem més endavant, la directiva include simplement copia el contingut de l'arxivo byte a byte, sent el resultat similar a si copiéssim el text de l'arxiu inclòs i ho peguéssim en el JSP. Exemple:
<html>
<head>
<%@ include file="titulo.txt"%>
</head>
<body>
<%@ include file="cuerpoPagina.jsp"%>
</body>
</html>
taglib
S'empra per indicar que es van a emprar llibreries d'etiquetes. Per a mes informació veure JSTL.
Declaracions
Contenen declaracions de variables o mètodes, amb la forma <%! declaració %>. Aquestes variables o mètodes seran accessibles des de qualsevol lloc de la pàgina JSP. Cal tenir en compte que el servidor transforma la pàgina JSP en un servlet, i aquest és usat per múltiples peticions, la qual cosa provoca que les variables conservin el seu valor entre successives execucions. Exemples:
<%-- Exemple 1 --%>
<%! int numeroAccesos=0; %>
<html>
<body>
<%=
"La página ha sido accedida "+(++numeroAccesos)+
" veces desde el arranque del servidor"
%>
</body>
</html>
<%-- Exemple 2 --%>
<%! java.util.Date primerAcceso=new java.util.Date(); %>
<html>
<body>
El primer acceso a la página se realizo en:
<%= primerAcceso %>
</body>
</html>
<%-- Exemple 3 --%>
<%!
private String ahora()
{
return ""+new java.util.Date();
}
%>
<html>
<body>
<%= ahora() %>
</body>
</html>
Es pot utilitzar també l'equivalent a etiquetes XML: <jsp:declaration>codi</jsp:declaration>
<%-- Exemple sense etiquietes xml: --%>
<%!
private String ahora()
{
return ""+new java.util.Date();
}
%>
<html>
<body>
<%= ahora() %>
</body>
</html>
<%-- Exemple amb etiquietes xml: --%>
<jsp:declaration>
private String ahora()
{
return ""+new java.util.Date();
}
</jsp:declaration>
<html>
<body>
<%= ahora() %>
</body>
</html>
Scriplets
Són fragments de codi Java amb la forma <% codi %>, en general, podem inserir qualsevol codi que poguéssim usar dins d'una funció Java. Per accedir a la sortida del navegador, usem l'objecte implícit out. Exemples:
<%-- Exemple 1 --%>
<table>
<% for (int i=0;i<10;i++)
{
%>
<tr><td> <%=i%> </td></tr>
<% }
%>
</table>
<%-- Exemple 2 --%>
<%
out.println("<table>");
for (int i=0;i<10;i++)
out.println("<tr><td>"+i+"</td></tr>");
out.println("</table>");
%>
<%-- Exemple 3 --%>
<%
String parametro1=request.getParameter("parametro1");
String parametro2=request.getParameter("parametro2");
MiClase miClase=new MiClase();
String salida=miClase.procesa(parametro1, parametro2);
%>
...
<%= salida %>
Es pot utilitzar també l'equivalent a etiquetes XML: <jsp:scriplet>codi</jsp:scriplet>
<%-- Exemple sense etiquietes xml: --%>
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
<%-- Exemple amb etiquietes xml: --%>
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<jsp:scriplet>
out.println("Your IP address is " + request.getRemoteAddr());
</jsp:scriplet>
</body>
</html>
Expressions
Són fragments de codi Java, amb la forma <%= expressió %> que s'avaluen i es mostren en la sortida del navegador. En general, dins d'una expressió podem usar qualsevol cosa que usaríem dins de un System.out.print(expr); Exemples:
<%= "Tamaño de cadena: "+cadena.length() %>
<%= new java.util.Date() %>
<%= Math.PI*2 %>
Es pot utilitzar també l'equivalent a etiquetes XML: <jsp:expression>codi</jsp:expression>
<%-- Exemple sense etiquietes xml: --%>
<%= "Tamaño de cadena: "+cadena.length() %>
<%= new java.util.Date() %>
<%= Math.PI*2 %>
<%-- Exemple amb etiquietes xml: --%>
<jsp:expression>
"Tamaño de cadena: "+ cadena.length()
</jsp:expression>
<jsp:expression>
new java.util.Date()
</jsp:expression>
<jsp:expression>
Math.PI*2
</jsp:expression>
Accions
Accions JSP utilitzen construccions en la sintaxi XML per controlar el comportament del motor de servle. Dinàmicament pots inserir un arxiu , reutilitzar components JavaBeans, reenviar a l'usuari a una altra pàgina , o generar HTML per a un pluggin de Java.
Només hi ha una sintaxi per a l'element d'acció , ja que s'ajusta a l'estàndard XML:
<jsp:action_name attribute ="value" />
Sintaxi | Propòsit |
---|---|
jsp:include | Inclou un arxiu a la vegada que se sol·licita la pàgina |
jsp:useBean | Troba o instància un JavaBean |
jsp:setProperty | Estableix la propietat d'un JavaBean |
jsp:getProperty | Obté la propietat d'un JavaBean |
jsp:forward | envia al sol·licitant a una nova pàgina |
jsp:plugin | Genera codi específicament per a un navegador d'un objecte o EMBED tag |
jsp:element | Defineix els elements XML de forma dinàmica |
jsp:attribute | Defineix l'atribut de l'element XML. |
jsp:body | Defineix l'element body XML dinàmicament |
jsp:text | S'utilitza per escriure text de la plantilla en les pàgines i documents JSP |
Exemples:
<%-- Exemple1 --%>
<html>
<head>
<jsp:include page="cabecera.jsp"/>
</head>
<body>
<jsp:include page="cuerpo.jsp">
<jsp:param name="tipo" value="paginaPrincipal"/>
</jsp:include>
</body>
</html>
<%-- Exemple2 --%>
<jsp:forward page="principal.jsp">
<jsp:param name="titulo" value="Principal"/>
</jsp:forward>
Per a més informació [1]
Exercicis
System.getProperty
Escriu una JSP per a la sortida dels valors retornats per System.getProperty per a diverses propietats del sistema, com java.version, java.home, os.name, user.name, user.home, user.dir etc.
Dia i hora
Escriu una JSP que mostri el dia que es avui de la següent manera, "Hola! El moment és ara ... " però utilitzant un scriptlet per a la cadena completa, incloent-hi les etiquetes HTML.
Salutació
Crea una JSP que depenent de si una variable s'inicialitza a true o false dona un missatge o un altre. Exemple de missatge true: Bon dia! bon dia! bon dia al de matí
Exemple de missatge a false: Bona tarda! Bona tarda! Bona tarda a tothom
jsp:fordwawrd
Crea una pagina jsp anomenada 'fordward.jsp' que enviï a una altre pàgina anomenada 'mostraparametres.jsp', utilitzant <jsp:fordward>, dos paràmetres.
Objectes implícits
En JSP disposem d'alguns objectes implícits, que ens permetran accedir a diferent informació i realitzar diverses accions. En JSP tenim els següents objectes implícits: request, response, out, session, application, config, pageContext, i page.
JSP suporta nou variables definides de forma automàtica, que també s'anomenen objectes implícits. Aquestes variables són:
Objecte implícit | Propòsit |
---|---|
request | Aquest és l'objecte HttpServletRequest associat amb la petició . |
response | Aquest és l'objecte HttpServletResponse associat amb la resposta al client . |
out | Aquest és l'objecte PrintWriter usat per a enviar la sortida al client . |
session | Aquest és l'objecte HttpSession associat amb la petició . |
application | Aquest és l'objecte ServletContext associat amb el context d'aplicació |
config | This is the ServletConfig object associated with the page. |
pageContext | Això encapsula ús de les característiques específiques del servidor com el més alt JspWriters rendiment . |
page | Això és simplement un sinònim d'aquesta , i s'utilitza per cridar als mètodes definits pel translated servet class |
Exception | L'objecte d'excepció permet que les dades d'excepció per a tenir accés als designats JSP . |
Objecte Request
És un objetode la classe HttpServletRequest, el seu ús principal és l'accés als paràmetres de la petició. Destacarem les següents funcions:
- String getParameter(String name)
- Retorna el valor d'un paràmetre
- Enumeration getParameterNames()
- Retorna una enumeració amb els noms de tots els paràmetres de la petició.
- String[] getParameterValues(String name)
- Els paràmetres poden tenir valor múltiple, amb aquesta funció recuperem un array amb tots els valors per a un nom donat.
- String getRemoteAddr()
- Retorna la IP del host des del qual es realitza la petició
Exemple:
<html>
<body>
<form>
<input type="text" name="parametro"/>
<input type="submit"/>
</form>
<br>
<br>
Su IP: <%=request.getRemoteAddr()%>
<br>
Su nombre de host: <%= request.getRemoteHost() %>
<br>
Valor del parámetro:
<%= request.getParameter("parametro") %>
</body>
</html>
Objecte Response
És un objecte de la classe HttpServletResponse, que vas agafar al servlet en la seva generació de la resposta per al client, conté funcions per a maneig de capçaleres, codis d'estat, cookies i transferència de control.
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Auto Refresh Header Example</title>
</head>
<body>
<center>
<h2>Auto Refresh Header Example</h2>
<%
// Set refresh, autoload time as 5 seconds
response.setIntHeader("Refresh", 5);
// Get current time
Calendar calendar = new GregorianCalendar();
String am_pm;
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
if(calendar.get(Calendar.AM_PM) == 0)
am_pm = "AM";
else
am_pm = "PM";
String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
out.println("Current Time is: " + CT + "\n");
%>
</center>
</body>
</html>
Per a més informació tutorial jsp
Objecte Out
És un objecte de la classe JspWriter, és el que ens permet accedir a la sortida del navegador des dels scriplet. Els següents són els mètodes importants que volem utilitzar per escriure Char boolean , int , double , objecte , cordes , etc:
Método | Descripción |
---|---|
out.print(dataType dt) | mprimir una dada. |
out.println(dataType dt) | Imprimir una dada i acaba amb caràcter de nova línia. |
Objecte Session
És un objecte de la classe HttpSession. Ens permet accedir a la sessió associada a la petició. A través d'aquest objecte podem, entre altres coses, guardar objectes que seran accessibles des de qualsevol JSP de la sessió o invalidar-la. Per guardar i recuperar informació usarem:
Object session.getAttribute("clave");
void session.setAttribute("clave", Object objeto);
I per invalidar la sessió:
void session.invalidate();
Exemple:
<%@ page session="true" %>
<%
java.util.ArrayList accesos= (java.util.ArrayList)session.getAttribute("accesos");
if (accesos==null)
accesos=new java.util.ArrayList();
accesos.add(new java.util.Date().toString());
session.setAttribute("accesos", accesos);
if (request.getParameter("invalidaSesion")!=null)
session.invalidate();
%>
<html>
<body>
<form>
<input type="submit" name="invalidaSesion" value="Invalidar sesión"/>
<input type="submit" value="Recargar página"/>
</form>
<br/>
Usted accedió a esta página en los siguientes momentos: <br>
<%
for (int i=0;i<accesos.size();i++)
{
%>
<%= accesos.get(i) %>
<br>
<%
}
%>
</body>
</html>
Per a més informació tutorial jsp
Objecte Application
És un objecte de la classe ServletContext. Aquest objecte és comú per a tota l'aplicació web i, entre altres coses, ens permet emmagatzemar informació que serà accessible des de totes les pàgines de l'aplicació web, independentment de la sessió. Per guardar i recuperar valors:
Object application.getAttribute("clave");
void application.setAttribute("clave", Object objeto);
Exemple:
<%@ page session="true" %>
<%
java.util.Hashtable direcciones = (java.util.Hashtable)application.getAttribute("direcciones");
if (direcciones==null)
direcciones=new java.util.Hashtable();
direcciones.put(request.getRemoteAddr(),"");
application.setAttribute("direcciones", direcciones);
%>
<html>
<body>
El servidor fue accedido desde las siguientes direcciones IP:
<%
java.util.Enumeration e= direcciones.keys();
while (e.hasMoreElements())
{
%>
<%= e.nextElement() %>
<br>
<%
}
%>
<br>
</body>
</html>
Per a més informació tutorial jsp
Objecte Config
És un objecte de la classe ServletConfig. Permet accedir a paràmetres d'inicialització del servlet i al seu context. Aquest objecte permet l'accés de JSP programador per als paràmetres d'inicialització de servlet o JSP motor com ara la camins o ubicacions d'arxius , etc. El següent mètode de configuració és l'únic que pot utilitzar sempre , i el seu ús és trivial :
config.getServletName();
Retorna el nom del servlet, que és la cadena continguda en el element <servlet-name> es defineix en el WEB-INF\web.xml
Objecte PageContext
És un objecte de la classe PageContext. Entre altres coses, ens permet emmagatzemar informació localment a la pàgina. Per guardar i recuperar valors:
Object pageContext.getAttribute("clave");
void pageContext.setAttribute("clave", Object objeto);
També podem usar PageContext per emmagatzemar i recuperar informació en sessió i en aplicació: Emmagatzemar en context de pàgina:
PageContext.setAttribute("clave", obj, PageContext.PAGE_SCOPE);
PageContext.setAttribute("clave", obj);
Emmagatzemar en context de sessió:
PageContext.setAttribute("clave",obj, PageContext.SESSION_SCOPE);
session.setAttribute("clave", objeto);
Emmagatzemar en context de aplicació:
PageContext.setAttribute("clave",obj,PageContext.APPLICATION_SCOPE);
application.setAttribute("clave",objeto);
Un dels mètodes importants és removeAttribute, que accepta un o dos arguments. Per exemple, pageContext.removeAttribute("attrName") elimina l'atribut de tots els àmbits, mentre que el següent codi només l'elimina de l'àmbit pàgina.
pageContext.removeAttribute("attrName", PAGE_SCOPE);
Objecte Page
Aquest objecte és una referència real a la instància de la pàgina. Es pot considerar com un objecte que representa el pàgina JSP sencera. L'objecte de pàgina és realment un sinònim directe per el objecte this.
Exercicis
IP
Escriu una pàgina jsp que ens mostri la IP del PC que ha fet la petició.