session

Transkrypt

session
JSP
Obiekty
- page - obiekt jest dostępny tylko na stronie na której został stworzony. Wszystkie
referencje powinny być zwolnione, kiedy odpowiedź jest wysłana z powrotem do
klienta. Referencje do obiektów z zasięgiem page są przechowywane w obiekcie
pageContext;
- request - obiekt jest dostępny ze strony obsługujacej to samo żądanie, gdzie
obiekt został stworzony. Wszystkie referencje powinny być zwolnione po
zakończeniu obsługi żądania lub jeżeli żądanie jest przesłane dalej, obiekt jest nadal
dostępny;
- session - obiekt jest dostępny we wszystkich stronach obsługująścych żądania tej
samej sesji w której został stworzony. Nie jest dopuszczalne definiowanie obiektów
z zasiegiem sesji ze stron, które nie sa zorientowane na sesje (session-aware).
Wszystkie referencje powinny być zwolnione po zakończeniu sesji;
- application - obiekt jest dostępny w tej samej aplikacji w której zostałl stworzony.
Wszystkie referencje powinny być zwolnione, kiedy środowisko uruchomieniowe
odbiera ServletContext. Obiekty mogą być tworzone na stronach, które nie są
zorientowane na sesje (session-aware). Referencje do obiektów są trzymane w
obiekcie application.
Elementy skryptowe
<%! To jest deklaracja %>
<% To jest skryplet %>
<%= To jest wyrazenie %>
Deklaracje
Deklaracje są używane do deklarowania zmiennych i metod. Deklaracje nie
tworzą żadnego strumienia wyjściowego, są inicjowane kiedy strona JSP
jest inicjowana.
<%! int i = 0; %>
<%! public String f(int i) {if (i<3) return("..");...} %>
Pierwszy przykłlad deklaruje zmiennąinteger i przypisuje jej zero, drugi
deklaruje metode f.
Skrypty
Skrypt może zawierać dowolny fragment kodu. Skrypt jest wykonywany
podczas żądania strony przez klienta.
Przykład wyświetla odpowiednie powitanie w zależności od pory dnia.
<% if (Calendar.getInstance().get(Calendar.AM_PM) == Calendar.AM) {%
>
Dzien dobry
<% } else { %>
Dobry wieczor
<% } %>
Wyrażenia
Wyrażenia są elementami generujacymi wynik i wyświetlającymi go na
wyjściu obiektu JspWriter. Wynik jest konwertowany do typu String. Jeżeli
wynik nie może być przekonwertowany, występuje błąd
ClassCastException.
Przykład wstawienia aktualnej daty na stronie.
<%= (new java.util.Date()).toLocaleString() %>
Akcje
Akcje mają składnie elementów XML (tag startowy, ciało i końcowy tag)
<mytag attr1="attribute value" ...>
zawartość
</mytag>
lub pusty tag
<mytab attr1="attribute value" .../>
<jsp:useBean>
<jsp:useBean id=" name" scope= "page|request|session|application"
typeSpec />
typeSpec ::=class=" className" |
class=" className" type=" typeName" |
type=" typeName" class=" className" |
beanName=" beanName" type=" typeName" |
type=" typeName" beanName=" beanName" |
type=" typeName"
<jsp:setProperty>
<jsp:setProperty name=" beanName" prop_expr />
prop_expr ::= property="*" |
property=" propertyName"|
property=" propertyName" param=" parameterName"|
property=" propertyName" value=" propertyValue"
propertyValue ::= string
Przykłady:
<jsp:setProperty name="request" property="*" />
<jsp:setProperty name="user" property="user" param="username" />
Przypisanie wartości z pól pobranych z żądania.
<jsp:setProperty name="results" property="row" value="<%= i+1 %>" />
Przypisanie atrybutowi wartości.
<jsp:getProperty>
Przykład:
<jsp:getProperty name="user" property="name" />
<jsp:include>
<jsp:include page="/templates/copyright.html"/>
<jsp:forward>
<% String gdzie = "/templates/"+jakas_wartosc; %>
<jsp:forward page='<%= gdzie %>' />
<jsp:param>
Element jsp:param jest używany do dostarczania informacji w postaci
klucz/wartość. Element jest używany w akcjach jsp:include, jsp:forward i
jsp:plugin. Jeżeli jest realizowane doklejenie lub przekierowanie
(jsp:include lub jsp:forward), dołączana lub przekierowana strona będzie
"widziała" oryginalne parametry łącznie z nowymi dodanymi przez element
jsp:param.
Np. jeżeli parametry żądania mają parametr A=foo, a parametr A=bar jest
dodany do przekierowania, przekierowana strona będzie miała parametr A
równy A=bar,foo.
<jsp:param name=" name" value=" value" />
Dyrektywy
<%@ page atrybut %>
atrybut ::= { language=" jezyk skryptowy"}
{ extends=" NazwaKlasy"}
{ import=" importList"}
{ session="true|false" }
{ buffer="none| rozmiarkb" }
{ autoFlush="true| false" }
{ isThreadSafe="true|false" }
{ info=" informacja" }
{ errorPage=" error_url"
{ isErrorPage="true|false" }
{ contentType="ctinfo" }
Polskie znaki
<%@ page contentType="text/html; codepage=iso-8859-2; charset=iso8859-2" %>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-Language" content="pl">
<%
response.addHeader("Pragma", "No-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Expires", "1");
%>
Bean
package hello;
public class NameHandler {
private String username;
public NameHandler() {
username = null;
}
public void setUsername( String name ) {
username = name;
}
public String getUsername() {
return username;
}
}
Polskie litery
public class charset {
public static String c = "iso-8859-2";
private static String bc = "iso-8859-1";
public static String getString(HttpServletRequest r, String s) {
String rs = r.getParameter(s);
try {
if (rs != null) {
return new String(rs.getBytes(bc), c);
} else {
return "";
}
} catch (Exception e) {
if (danet.d.d) System.out.println(e);
return "";
}
}
}

Podobne dokumenty