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