PTI-IT

Интернет програмиране с JAVA

View the Project on GitHub theVelislavKolesnichenko/PTI-IT

Java Server Pages технология. Същност и детайли

Java Server Pages (JSP) е технология за разработка на уеб страници, които поддържат динамично съдържание. Технологията представлява възможност за разработчиците да вмъкнат Java код в HTML страници чрез използване на специални тагове.

JavaServer Pages е вид Java сървлет, който е предназначен да изпълнява ролята на потребителски интерфейс за уеб приложения. Уеб разработчиците пишат JSP като текстови файлове, в които се комбинират HTML или XHTML код, XML елементи и вградени действия и команди на Java.

Използването на JSP, позволява събиране на информация от потребителите чрез уеб форми, представяне на записи от база данни или друг източник, създаване на динамични уеб страници.

JSP тагове могат да бъдат използвани за различни цели, като например извличане на информация от база данни или регистриране на предпочитанията на потребителите, достъп до JavaBeans компоненти, предаване на контрол между страници и споделяне на информация между заявки, страници и т.н.

Предимства на JSP пред подобни технологии

JSP процес

image

Обикновено JSP енджина проверява дали вече съществува сървлет, съответстващ на текущото JSP, и дали датата на изменението на JSP страницата е по-стара от сървлета. Ако тя е по-стара от своя генериран, контейнерът приема, че JSP страницата не е променяна и че генерирания за нея сървлет все още отговаря на съдържанието и. Това прави процеса по-ефективен, отколкото при други скриптови езици (като PHP) и следователно по-бърз. В известен смисъл, JSP страницата е просто още един начин да се напише сървлет, без да се налага на човек да бъде способен да програмира на Java. С изключение на етапа на транслация от JSP страница към сървлет, през останалата част от съществуването си тя се обработва точно като обикновен сървлет.

Жизнен цикъл на JSP страницата

JSP жизнения цикъл може да се дефинира като целият процес от създаването на страницата до унищожаването и, процес който е подобен на жизнения цикъл на сървлета с допълнителна стъпка, трансформацията от JSP в сървлет. Етапите, през които минава JSP страницата са следните:

Четирите основни фази на JSP жизнен цикъл са много сходни с този на сървлета и те са, както следва:

image

JSP синтаксис, тагове и елементи

Скриплети

Скриплета може да съдържа произволен брой JAVA декларации, променливи, методи или изрази, които са валидни в скриптовите езици:

<% code fragment %>

Всеки текст, HTML таг или JSP елемент трябва да са извън scriptlet таговете:

<html>
    <head>
        <title>Hello Java</title>
    </head>
    <body>
    Hello Java!<br/>
    <%
        out.println("Your IP address is " + request.getRemoteAddr());   
    %>
    </body>
</html>

JSP декларации

Посредством тях се декларират един или повече променливи или методи, които да са достъпни за използване по-късно във файла JSP. Синтаксисът на декларацията е следния

<%! declaration; [ declaration; ]+ ... %>


<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>

JSP изрази

Елементът за JSP израз съдържа код, характерен за скриптовите езици, които се обработва и изходът му се конвертира в стринг. Тъй като стойността на израза се превръща в низ, може да се използва израз в рамките на един ред от текст, независимо дали е или не е маркиран с HTML таг, във JSP файл. Елементът за израз може да съдържа всеки текст, който е валиден според езиковата спецификация на Java, но не може да се използва точка и запетая, за да се сложи край на израза. Синтаксисът е следният:

<%= expression %>

<html>
    <head>
        <title>JSP Expression</title>
    </head>
<body>
    <p>
        Today is date: <%= (new java.util.Date()).toLocaleString()%>
    </p>
    </body>
</html>

JSP директиви

JSP директивата засяга цялостната структура на класа на сървлета. Тя обикновено има следния вид:

<%@ directive attribute="value" %>

Има три типа директиви:

JSP имплицитни обекти

JSP поддържа девет обекта, които автоматично се дефинират и се наричат имплицитни. Това са:

JSP действия

JSP действията използват конструкции в XML синтаксис, за да контролират поведението на сървлет енджина. Позволяват събития като например динамично вмъкване на файл, повторно използване на JavaBeans компоненти, препращане на потребителя към друга страница, или генериране на HTML за Java плъгина. Синтаксисът на елемента за действие е следният:

<jsp:action_name attribute ="value" />

Елементите за действие са основно предварително дефинирани функции и има следните JSP действия:

JSP осигурява пълните възможности на Java да бъдат вградени в уеб приложение. Може да се използват всички API-и конструкции на Java в JSP програмирането, включително проверки на условия, цикли и други.

Операторът “If..”:

Започва като обикновен скриплет, но всеки ред, на който е затворен с HTML текст, включен между таговете.

<%! 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>

Jsp два възможност за използването на всички основни цикли от Java

Пример за for цикъл:

<%! 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>

Пример за while цикъл

<%! 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>