Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   





Clic aici
PC Magazine





IPRO - PC Magazine Romania, Aprilie 2004
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB

JSP la pachet

Exemple de utilizare ale tehnologiei

Mircea Scărlătescu

În acest număr ne vom concentra atenția asupra unor cazuri practice de folosire a noțiunilor prezentate în numerele anterioare.

Detectarea browser-ului client

Problemele care apar în momentul în care o pagină web este afișată în browsere diferite sunt arhicunoscute. Problemele apar atunci când un script funcționează bine în Internet Explorer, dar în Opera, Netscape sau alte browsere totul apare diferit. O soluție universală nu veți regăsi pentru a face ca un script să ruleze bine pe toate browserele. O soluție (preferată cam de… nimeniJ) este să realizăm 2-3 variante ale codului script-ului în funcție de browser.

În acest caz însă, punem problema de a detecta ce browser folosește clientul pentru a vizualiza pagina. Detecția browserului este prezentă în orice limbaj de scripting, iar JSP nu face excepție.

Iată care sunt pașii pentru a reuși o astfel de detecție.

<%!
public final static int IE = 0;
public final static int NETSCAPE = 1;
public final static int WML = 2;
public int getBrowser(HttpServletRequest request) {
String accept = request.getHeader("ACCEPT");
if (null != accept && -1 !=
accept.indexOf("wml")) {
return WML;
}
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 !=
agent.indexOf("MSIE")) {
return IE;
}
return NETSCAPE;
}
%>

Codul de mai sus definește 3 variabile, care corespund valorilor detecției browser-ului. De precizat că WML reprezintă un browser care citește format Wireless Markup Language, formatul folosit la navigarea pe Internet cu ajutorul device-urilor mobile.

Metoda definită, getBrowser(), acceptă obiectul Request și analizează proprietățile acestuia, mai exact citește header-ul ACCEPT. Cum folosim o astfel de metodă: iată un exemplu concret:

<%
switch (getBrowser(request)) {
case WML:
response.setContentType("text/vnd.wap.wml");
%>
<?xml version="1.0"?>
<wml>
<card id="index" title="Browser Greeting">
<p align="center">Acces via WML</p>
</card>
</wml>
<%
break;
case IE:
%>
<HTML><BODY><H1>Acces IE</H1></BODY></HTML>
<%
break;
default:
%>
<HTML><BODY><H1>Acces Netscape</H1></BODY></HTML>
<%
}
%>

Folosind metoda de mai sus, conținutul returnat de script diferă de la browser la bowser. Metoda este desigur dificil de aplicat pentru siturile de mari dimensiuni. În general, siturile sunt astfel proiectate pentru ca pe orice browser, conținutul să fie util vizitatorului. Astfel, dacă pe un anumit browser aspectul general nu este ideal, funcționalitatea nu este afectată.

Afișarea datei și orei într-un site.

Problema comună a afișării orei server-ului pe un sit. Exemplul de mai jos prezintă modalitatea de a afișa cu ajutorul obiectelor de tip bean.

<%@ page language="java" contentType="text/html" %>
<html>
<body>
<jsp:useBean id="clock" class="java.util.Date" />
<b>Timpul si ora la server:</b><hr>
<ul>
<li>Date: <jsp:getProperty name="clock"
property="date" />
<li>Month: <jsp:getProperty name="clock"
property="month" />
<li>Year: <jsp:getProperty name="clock"
property="year" />
<li>Hours: <jsp:getProperty name="clock"
property="hours" />
<li>Minutes: <jsp:getProperty name="clock"
property="minutes" />
</ul>
<hr>
</body>
</html>

Să analizăm putin acest exemplu. Prima linie specifică directivă de declarare a limbajului în care script-ul este scris. Atributele prezente specifică și tipul de răspuns întors de script, și anume HTML. Documentația JSP vă oferă o listă cu toate opțiunile pe care le puteți seta în aceste directive. În exemplul de mai sus, majoritatea conținutului este de tip HTML. Să lăsăm însă această parte (foarte ușor de înțeles) și să analizăm partea dinamică a paginii.

Observăm în primul rând prezența unei componente de tip JavaBeans. În esență o astfel de componentă repezintă o clasă Java, utilizată în contextul unei pagini web. Pentru a putea utiliza o astfel de componentă într-o pagină JSP, ea trebuie mai întâi declarată:

<jsp:useBean id="clock" class="java.util.Date" />

și reprezintă modalitatea de declarare. Id-ul repezintă un nume (unic) pentru componentă noastră. Acest nume trebuie să respecte restricțiile de nume de variabile pe care le impune limbajul de scripting (în cazul nostru Java). Atributul class reprezintă clasa Java pe care obiectul nostru o instanțiază.

O astfel de componentă este definită pentru a-i folosi proprietățile și metodele.

Astfel, bean-ul folosit mai sus, care instanțiază clasa Date are disponibile proprietățile:

După ce am declarat un bean, proprietățile acestuia pot să fie afișate folosind tag-ul JSP de mai jos:

<jsp:getProperty name="clock" property="date" />

Detalii despre cum se folosesc și ce pot să facă bean-urile în cazul JSP, vom mai avea ocazia să discutăm.

Referințe: www.java.sun.com; www.javaworld.com.


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2004 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro