logo search
[КОМП СИСТЕМЫ] / KS1

Страницы jsp

Как известно, большую часть сервлета занимают операторы вывода в выходной поток динамической HTML-страницы.

Эти операторы повторяются из сервлета в сервлет. Код сервлета становится весьма громоздким. Поэтому возникла идея не записывать теги HTML в операторах JAVA, а наоборот, записывать операторы JAVA в страницы HTML с помощью тегов специального вида. После чего обработать полученную страницу препроцессором, который распознает все теги и преобразует их в код сервлета. Таким образом получился язык разметки JSP (Java Server Pages) расширяющий язык HTML тегами специального вида:

<% имя_тега атрибуты %>

С помощью таких тегов в страницу HTML можно поместить выражение и операторы JAVA, вызвать объекты JAVA или компоненты EJB и т.д. При этом статический текст HTML в документации EJB называется шаблоном.

Вывод HTML и кода JAVA в символьный поток расширяет класс JSPWriter расширяющий класс Writer. Web-контейнеры современных JAVA Web-серверов поддерживают работу как с сервлетами, так и с JSP-страницами.

JSP-страница Hello.jsp

Заменим без потери функциональности в распределенном приложении Hello World сервлет HelloServlet.java на страницу jsp - Hello.jsp. Ee код имеет вид:

<%@page context Type = “text/html”%>

<%@page pagencoding = “UTF-8”%>

<%@import = “my.*”%>

<%Hello Session Local h=new Hello Session Bean();

string name, message, message_ejb;

name = requent.getParametr(“name”);

message = “Hello”;

Message = message + name;

message_ejb = h.say Hello();%>

<html>

<head>

<title J2EE Application</title>>

</head>

<body>

<p><%=message%></p>

<p><%=message_ejb%></p>

</body>

</html>

Для работы с Hello.jsp заменим в файле j2ee.html строку:

<form method = “Get” action = “http://localhpst:8080/Hi/Hello”>

на

<from method = “Get” action = “http://localhost:8080/Hi/Hello.jsp”>.

Результат работы Hello World-приложения с страницей Hello.jsp аналогичен работе с сервлетом HelloServlet.java.