Направо към съдържанието

Java server pages

от Уикипедия, свободната енциклопедия

JavaServer Pages (JSP) - е технология, която помага на софтуерните разработчици да създават динамични Web-страници на основата на HTML, XML или други текстови формати. Създаден през 1999 г. от "Sun Microsystems",[1] JSP прилича на PHP и ASP, но използва Java.

За внедряване и стартиране на JavaServer Pages е нужен уеб контейнер като Apache Tomcat или Jetty.

Обща схема

[./Файл:JSP_Model_2.svg ] Архитектурно JSP може представлява високо ниво на абстракция в Java servlets. JSP се трансформират в сървлети по време на изпълнение; всеки JSP сървлет се кешира и се използва отново докато оригиналните JSP са променени.[2]

JSP може да се използва самостоятелно или от страна на сървъра като  model–view–controller дизайн, обикновено с JavaBeans като модел и Java сървлет (или рамкa, като Apache Struts) като контролер. Това е вид Model 2 архитектура.[3]

JSP позволява на код на Java и някои предварително определени действия да се редуват със статичнo уеб съдържание, като HTML, като получената страница се компилира и изпълнява във сървъра за да достави документ. Компилираните страници, както и всички зависими библиотеки на Java, съдържат двоичен код на Java вместо машинен код. Както и всяка друга програма на Java те трябва да бъдат изпълнени в виртуалната машина на Java (JVM), която взаимодейства с операционната система на хоста на сървъра, за да осигури абстрактна, независима от платформи среда.

JSP обикновено се използват за доставяне на HTML и XML документи, но с помощта на OutputStream те могат да предоставят и други видове данни.[4]

Web-контейнерът създава скрит JSP обект като заявка (request), отговор (response), сесия (session), приложение (application), настройки (config), страницa (page), pagecontext, out и exception. JSP Engine създава тези обекти по време на превода между Java bytecode и машинен код.

Синтаксис

JSP използват няколко разделители като скриптови функции. Най-основният е <% ... %>, който обхваща JSP skriptlet. Скриптлетът е фрагмент от код на Java, който се изпълнява, когато потребителят подаде заявка за страницата. Други популярни разделители включват <%= ... %> за изразяване (expressions), където скриптлетът и разделителите се заменят с резултата от оценяването на изразяването и директивите, обозначаващи се с  <%@ ... %>.[5]

Не е нужно Java кодът да бъде пълен или автономен в рамките на един скриптлет блок. Той може да се разпростира за маркиране на съдържание, при условие, че като цяло синтаксисът на страницата е правилен. Например, всички java , if/for/while блокове отворени в един скриптлет трябва да бъде правилно затворен в по-късен скриптлет на страницата за успешно компилиране.

Съдържание, което попадне на блок от код на java (обхващащи много скриптлетове) попадат под действието на този код. Съдържанието в If блок ще се показва в изхода, само когато If условието приема стойност True. По същия начин, съдържанието вътре в цикъл може да се появи няколко пъти в изхода, в зависимост от това, колко пъти се изпълнява тялото на цикъла.

Следното ще бъде валидно за цикъл в JSP страница:

Резултатите, показани в уеб браузъра на потребителя ще бъде:

The value of "variable" in the object "javabean" is ${javabean.variable}.

Допълнителни тагове

JSP синтаксисът добавя допълнителни тагове, наречени JSP actions, за да се задейства вградената функционалност.Грешка при цитиране: Отварящият таг <ref> е неправилен или съдържа некоректно име. Освен това, технологията позволява създаване на потребителски JSP tag библиотеки, които действат като добавка към стандартния синтаксис JSP.Грешка при цитиране: Отварящият таг <ref> е неправилен или съдържа некоректно име. Такава библиотека е JSTL поддържаща задачи като итерация и conditionals (еквивалент на "if" и "else" конструкции в Java.)Грешка при цитиране: Отварящият таг <ref> е неправилен или съдържа некоректно име.

Критика

През 2000 г. Джейсън Хънтър, автор на книгата "java Сървлет за програмиране", разкритикува JSP или увещаване и дори изискване от програмистът да смесва код на Java и HTML markup, макар и да признава, че това ще отблъсне хората от Active Server Pages нa Microsoft. По-късно той добавя бележка към сайта си твърдящи че JSP са се подобрили от 2000 г. до сега, но също отбелязва и неговите конкуренти, Apache Velocity и Tea (език на шаблони).Грешка при цитиране: Отварящият таг <ref> е неправилен или съдържа некоректно име.

Допълнителни материали

Външни линкове