JSP - składnia
W tym rozdziale omówimy składnię w JSP. Zrozumiemy podstawowe użycie prostej składni (tj. Elementów) związanych z tworzeniem JSP.
Elementy JSP
Elementy JSP zostały opisane poniżej -
The Scriptlet
Skryptlet może zawierać dowolną liczbę instrukcji języka JAVA, deklaracji zmiennych lub metod lub wyrażeń, które są poprawne w języku skryptowym strony.
Poniżej znajduje się składnia Scriptlet -
<% code fragment %>
Możesz napisać odpowiednik XML powyższej składni w następujący sposób -
<jsp:scriptlet>
code fragment
</jsp:scriptlet>
Każdy tekst, znaczniki HTML lub elementy JSP, które zapisujesz, muszą znajdować się poza skryptletem. Oto prosty i pierwszy przykład JSP -
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
NOTE - Zakładając, że Apache Tomcat jest zainstalowany w C: \ apache-tomcat-7.0.2 i twoje środowisko jest skonfigurowane zgodnie z samouczkiem konfiguracji środowiska.
Zachowajmy powyższy kod w pliku JSP hello.jsp i umieść ten plik w C:\apache-tomcat7.0.2\webapps\ROOTinformator. Przeglądaj to samo za pomocą adresu URLhttp://localhost:8080/hello.jsp. Powyższy kod wygeneruje następujący wynik -
Deklaracje JSP
Deklaracja deklaruje jedną lub więcej zmiennych lub metod, których można użyć w kodzie Java później w pliku JSP. Musisz zadeklarować zmienną lub metodę przed użyciem jej w pliku JSP.
Poniżej przedstawiono składnię deklaracji JSP -
<%! declaration; [ declaration; ]+ ... %>
Możesz napisać odpowiednik XML powyższej składni w następujący sposób -
<jsp:declaration>
code fragment
</jsp:declaration>
Oto przykład dla deklaracji JSP -
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
Wyrażenie JSP
Element wyrażenia JSP zawiera wyrażenie języka skryptowego, które jest oceniane, konwertowane na łańcuch i wstawiane w miejscu, w którym pojawia się wyrażenie w pliku JSP.
Ponieważ wartość wyrażenia jest konwertowana na łańcuch, w pliku JSP można użyć wyrażenia w wierszu tekstu, niezależnie od tego, czy jest ono oznaczone tagiem HTML, czy nie.
Element expression może zawierać dowolne wyrażenie, które jest poprawne zgodnie ze specyfikacją języka Java, ale nie można używać średnika do zakończenia wyrażenia.
Poniżej znajduje się składnia wyrażenia JSP -
<%= expression %>
Możesz napisać odpowiednik XML powyższej składni w następujący sposób -
<jsp:expression>
expression
</jsp:expression>
Poniższy przykład przedstawia wyrażenie JSP -
<html>
<head><title>A Comment Test</title></head>
<body>
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
</body>
</html>
Powyższy kod wygeneruje następujący wynik -
Today's date: 11-Sep-2010 21:24:25
Komentarze JSP
Komentarz JSP oznacza tekst lub instrukcje, które kontener JSP powinien ignorować. Komentarz JSP jest przydatny, gdy chcesz ukryć lub „skomentować” część swojej strony JSP.
Poniżej przedstawiono składnię komentarzy JSP -
<%-- This is JSP comment --%>
Poniższy przykład przedstawia komentarze JSP -
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<%-- This comment will not be visible in the page source --%>
</body>
</html>
Powyższy kod wygeneruje następujący wynik -
A Test of Comments
Istnieje niewielka liczba specjalnych konstrukcji, których można użyć w różnych przypadkach, aby wstawić komentarze lub znaki, które w przeciwnym razie byłyby specjalnie traktowane. Oto podsumowanie -
S.No. | Składnia i cel |
---|---|
1 | <%-- comment --%> Komentarz JSP. Ignorowane przez silnik JSP. |
2 | <!-- comment --> Komentarz HTML. Ignorowane przez przeglądarkę. |
3 | <\% Reprezentuje static <% literal. |
4 | %\> Reprezentuje statyczny%> literał. |
5 | \' Pojedynczy cudzysłów w atrybucie używającym apostrofów. |
6 | \" Podwójny cudzysłów w atrybucie używającym cudzysłowów. |
Dyrektywy JSP
Dyrektywa JSP wpływa na ogólną strukturę klasy serwletów. Zwykle ma następującą postać -
<%@ directive attribute="value" %>
Istnieją trzy typy tagów dyrektywy -
S.No. | Dyrektywa i opis |
---|---|
1 | <%@ page ... %> Definiuje atrybuty zależne od strony, takie jak język skryptowy, strona błędu i wymagania dotyczące buforowania. |
2 | <%@ include ... %> Dołącza plik na etapie tłumaczenia. |
3 | <%@ taglib ... %> Deklaruje bibliotekę tagów, zawierającą akcje niestandardowe, używane na stronie |
Wytłumaczylibyśmy dyrektywę JSP w osobnym rozdziale JSP - Dyrektywy
Działania JSP
Użyj akcji JSP constructsw składni XML do sterowania zachowaniem mechanizmu serwletów. Możesz dynamicznie wstawić plik, ponownie użyć komponentów JavaBeans, przekierować użytkownika na inną stronę lub wygenerować HTML dla wtyczki Java.
Element Action ma tylko jedną składnię, ponieważ jest zgodny ze standardem XML -
<jsp:action_name attribute="value" />
Elementy akcji to w zasadzie predefiniowane funkcje. Poniższa tabela zawiera listę dostępnych akcji JSP -
S.No. | Składnia i cel |
---|---|
1 | jsp:include Dołącza plik w momencie żądania strony. |
2 | jsp:useBean Znajduje lub tworzy komponent JavaBean. |
3 | jsp:setProperty Ustawia właściwość JavaBean. |
4 | jsp:getProperty Wstawia właściwość JavaBean do danych wyjściowych. |
5 | jsp:forward Przekierowuje żądającego na nową stronę. |
6 | jsp:plugin Generuje kod specyficzny dla przeglądarki, który tworzy znacznik OBJECT lub EMBED dla wtyczki Java. |
7 | jsp:element Dynamicznie definiuje elementy XML. |
8 | jsp:attribute Definiuje dynamicznie definiowany atrybut elementu XML. |
9 | jsp:body Definiuje dynamicznie definiowaną treść elementu XML. |
10 | jsp:text Służy do pisania tekstu szablonu na stronach i w dokumentach JSP. |
Działania JSP wyjaśnilibyśmy w osobnym rozdziale JSP - Akcje
Niejawne obiekty JSP
JSP obsługuje dziewięć zmiennych definiowanych automatycznie, zwanych także obiektami niejawnymi. Te zmienne to -
S.No. | Obiekt i opis |
---|---|
1 | request To jest HttpServletRequest obiekt powiązany z żądaniem. |
2 | response To jest HttpServletResponse obiekt powiązany z odpowiedzią do klienta. |
3 | out To jest PrintWriter obiekt używany do wysyłania danych wyjściowych do klienta. |
4 | session To jest HttpSession obiekt powiązany z żądaniem. |
5 | application To jest ServletContext obiekt powiązany z kontekstem aplikacji. |
6 | config To jest ServletConfig obiekt powiązany ze stroną. |
7 | pageContext To hermetyzuje użycie funkcji specyficznych dla serwera, takich jak wyższa wydajność JspWriters. |
8 | page To po prostu synonim this, i służy do wywoływania metod zdefiniowanych przez przetłumaczoną klasę serwletu. |
9 | Exception Plik Exception umożliwia dostęp do danych wyjątku przez wyznaczoną stronę JSP. |
Wyjaśnilibyśmy JSP Implicit Objects w osobnym rozdziale JSP - Implicit Objects .
Instrukcje przepływu sterowania
W programowaniu JSP można używać wszystkich interfejsów API i bloków konstrukcyjnych języka Java, w tym instrukcji podejmowania decyzji, pętli itp.
Oświadczenia dotyczące podejmowania decyzji
Plik if...else blok zaczyna się jak zwykły Scriptlet, ale Scriptlet jest zamknięty w każdym wierszu tekstem HTML zawartym między tagami Scriptlet.
<%! int day = 3; %>
<html>
<head><title>IF...ELSE Example</title></head>
<body>
<% if (day == 1 || day == 7) { %>
<p> Today is weekend</p>
<% } else { %>
<p> Today is not weekend</p>
<% } %>
</body>
</html>
Powyższy kod wygeneruje następujący wynik -
Today is not weekend
Teraz spójrz na poniższe switch...case blok, który został napisany nieco inaczej za pomocą out.println() i wewnątrz Scriptletas -
<%! int day = 3; %>
<html>
<head><title>SWITCH...CASE Example</title></head>
<body>
<%
switch(day) {
case 0:
out.println("It\'s Sunday.");
break;
case 1:
out.println("It\'s Monday.");
break;
case 2:
out.println("It\'s Tuesday.");
break;
case 3:
out.println("It\'s Wednesday.");
break;
case 4:
out.println("It\'s Thursday.");
break;
case 5:
out.println("It\'s Friday.");
break;
default:
out.println("It's Saturday.");
}
%>
</body>
</html>
Powyższy kod wygeneruje następujący wynik -
It's Wednesday.
Instrukcje pętli
Możesz również użyć trzech podstawowych typów bloków zapętlających się w Javie: for, while, and do…while bloki w programowaniu JSP.
Spójrzmy na następujące for przykład pętli -
<%! int fontSize; %>
<html>
<head><title>FOR LOOP Example</title></head>
<body>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%}%>
</body>
</html>
Powyższy kod wygeneruje następujący wynik -
JSP Tutorial
JSP Tutorial
JSP Tutorial
Powyższy przykład można zapisać przy użyciu while pętla w następujący sposób -
<%! int fontSize; %>
<html>
<head><title>WHILE LOOP Example</title></head>
<body>
<%while ( fontSize <= 3){ %>
<font color = "green" size = "<%= fontSize %>">
JSP Tutorial
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>
Powyższy kod wygeneruje następujący wynik -
JSP Tutorial
JSP Tutorial
JSP Tutorial
Operatory JSP
JSP obsługuje wszystkie operatory logiczne i arytmetyczne obsługiwane przez Javę. Poniższa tabela zawiera listę wszystkich operatorów o najwyższym priorytecie, które znajdują się na górze tabeli, a te z najniższym - na dole.
W wyrażeniu najpierw zostaną ocenione operatory o wyższym priorytecie.
Kategoria | Operator | Łączność |
---|---|---|
Przyrostek | () []. (operator kropki) | Z lewej na prawą |
Jednoargumentowe | ++ - -! ~ | Od prawej do lewej |
Mnożny | * /% | Z lewej na prawą |
Przyłączeniowy | + - | Z lewej na prawą |
Zmiana | >> >>> << | Z lewej na prawą |
Relacyjny | >> = <<= | Z lewej na prawą |
Równość | ==! = | Z lewej na prawą |
Bitowe i | & | Z lewej na prawą |
Bitowe XOR | ^ | Z lewej na prawą |
Bitowe OR | | | Z lewej na prawą |
Logiczne AND | && | Z lewej na prawą |
Logiczne LUB | || | Z lewej na prawą |
Warunkowy | ?: | Od prawej do lewej |
Zadanie | = + = - = * = / =% = >> = << = & = ^ = | = | Od prawej do lewej |
Przecinek | , | Z lewej na prawą |
Literały JSP
Język wyrażeń JSP definiuje następujące literały -
Boolean - prawda i fałsz
Integer - jak w Javie
Floating point - jak w Javie
String- z pojedynczymi i podwójnymi cudzysłowami; „jest zapisywany jako \”, „jest zapisywany jako \ ', a \ jest zapisywany jako \\.
Null - null