ćwiczenia 12 - Instytutu Informatyki UJ

Transkrypt

ćwiczenia 12 - Instytutu Informatyki UJ
Programowanie w Sieci Internet
— JSP ciąg dalszy
Kraków, 9 stycznia 2015 r.
mgr Piotr Rytko
Wydział Matematyki i Informatyki
Co dziś będziemy robić
• JSP tags,
• Używanie tagów,
• Custom tags,
• JSP objests,
• Obiekty JSP pod lupą.
JSP tags
JSTL - to standardowa biblioteka tagów do JSP. Biblioteka ta zawiera tagi pozwalające
nam iterować, tworzyć zapytania logiczne, manipulować dokumentami XML,
internacjonalizować naszą stronę, czy tworzyć zapytania SQL.
Bibliotekę JSTL można podzielić na kilka grup tagów:
• Core tags (najczęściej używane tagi),
• tagi formatujące,
• tagi SQL,
• tagi XML,
• funkcje JSTLowe.
Po pobraniu i rozpakowaniu JARki z tagami, należy ją umieścić w katalogu WEB-INF\lib
a następnie inkludować dyrektywę <taglib> na początku każdego pliku JSP, który ma
korzystać z tych tagów.
Używanie tagów
Na początku pliku JSP umieszczamy dyrektywę
<%
<%
<%
<%
<%
taglib
taglib
taglib
taglib
taglib
prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %> // core tags
prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt” %> // tagi formatujące
prefix=”sql” uri=”http://java.sun.com/jsp/jstl/sql” %> // tagi SQL
prefix=”xml” uri=”http://java.sun.com/jsp/jstl/xml” %> // tagi XML
prefix=”fn” uri=”http://java.sun.com/jsp/jstl/functions” %> // funkcje JSTLowe
Teraz możemy używać tagi JSTL tak jak tagi HTML używając odpowiedniego prefiksu.
<c:out value=”${‘something’}”> - działa jak <%= ... >
<c:set var=”val” scope=”Session” value=”${2*2+2}” />
<c:if test=”${val>0}”>...</c:if> - ewaluuje body jeżeli podane warunki zostaną spełnione
<fmt:formatDate pattern=”dd-MM-yyyy” value=”<%=new java.util.Date()%>” />
<sql:query dataSource=”${dsName}” var=”result”>SELECT * from testTable</sql:query>
<xml:parse xml=”${importedFile}” var=”output” /> - parsuje dokument xmlowy do output
${fn:indexOf(string, “searchFor”)} - wyszukuje index w którym zaczyna się wyszukiwany
string wewnątrz zadanego stringu.
Custom tags
Oczywiście można tworzyć własne tagi.
Tag składa się z taga otwierającego, body i taga zamykającego.
Jeśli tag nie posiada body, to może być on zakończony w tagu otwierającym poprzez
umieszczenie na końcu, przed znakiem zamykającym nawias trójkątny, znaku ‘/’.
Aby napisać własny tag rozszerz klasę SimpleTagSupport i nadpisz metodę doTag()
public class myTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
getJspContext().getOut().println(“print tag value”);
}
}
Aby dostać się do atrybutów wystarczy utworzyć w klasie pola o takich samych
nazwach i przygotować do nich settery.
Aby dostać się do zawartości body, użyj metody getJspBody(), możesz wywołać na nim
także invoke(Writer writer) i zapisać zawartość do writera.
Obiekty JSP
W jsp mamy do czynienia z kilkoma obiektami, które pomagają nam w zarządzaniu
aplikacją, odbieraniu i wysyłaniu zapytań oraz tworzenia samego wyglądu strony.
• request,
• response,
• out,
• session,
• application,
• config,
• pageContext,
• page,
• Exception.
Obiekty JSP pod lupą
• Request jest obiektem zawierającym parametry zapytania (header).
Request zawiera tablice ciasteczek, enumerator nazw atrybutów, enumerator nazw
parametrów, sesję, język (Locale) itp.
• Response jest natomiast obiektem zawierającym odpowiedź od klienta.
Response może zdekodować URL, sprawdzić czy odpowiedź zawiera podany header,
dodać header, dodać ciasteczko, wysłać błąd HTTP, ustawić kodowanie i wiele innych.
Response zawiera także metodę pozwalającą wyczyścić cały request.
• Out to obiekt PrintWriter’a pozwalający na wypisywanie tekstu na stronie.
• Session to obiekt sesji który zawiera atrybuty wraz z wartościami (nazwa atrybutu to
String a wartość to Object).
Ponadto, sesja ma swoje Id, datę stworzenia, datę ostatniego dostępu oraz
maksymalny czas bez aktywności, po którym sesja wygasa.
Sesja zwraca także wartość boolean isNew, która mówi nam o tym, że dany klient
jeszcze nie dołączył do sesji, lub jeszcze się nie dowiedział o jej istnieniu.
Obiekty JSP pod lupą cd.
• Obiekt config daje dostęp do parametrów inicjalizacyjnych z web.xml
Za jego pomocą możemy dostać się do konfiguracji serwera, połączenia z bazą danych
etc.:
config.getInitParameter("initParameterName");
Natomiast taki parametr umieszczamy w web.xml:
<init-param> <param-name>initParameterName</param-name> <param-value>6</param-value> </init-param> Może to być dowolny sterownik bazy danych etc.
• PageContext to objekt odpowiadający całej stronie JSP. PageContext definiuje kilka
pól, takich jak:
• PAGE_SCOPE,
• REQUEST_SCOPE,
• SESSION_SCOPE,
• APPLICATION_SCOPE.
Dziękuję za uwagę!

Podobne dokumenty