Технология активных серверных страниц
Технология активных серверных страниц
Рассматривается методика построения Web-приложений на основе активных серверных страниц Java (JSP). Приводятся примеры построения JSP-страниц в среде JBuilder и доставки страниц на сервер Tomcat.
1. Структура JSP-страниц
Серверные страницы Java (JSP) являются расширением технологии сервлетов и существенно упрощают создание Web-приложений. Структура JSP-страниц содержит разметку HTML или XML и скриптлеты – фрагменты кода Java, ограниченные символами <% и %>. Скриптлеты предоставляют возможность программистам вставлять код Java для обработки запросов и реализации взаимодействия с другими Web-приложениями. Помимо скриптлетов технология JSP-страниц использует стандартные действия, посредством которых осуществляется включение содержимого из других ресурсов, переадресация, а также взаимодействие с аплетами и компонентами JavaBeans. Описание действий ограничивается тегами XML <jsp:действие> и </jsp:действие>, где действие – это имя стандартного действия. В случаях, когда между начальным и конечным тегами ничего нет, должен быть использован синтаксис XML для пустых элементов <jsp:действие/>.
JSP-страница может быть создана в любом текстовом редакторе и не требует предварительной компиляции, поэтому она может быть включена непосредственно на сервер Tomcat в любой подкаталог папки webapps (например, в webapps\ROOT). Однако для упрощения процесса отладки целесообразно создавать JSP-страницу в какой-либо интегрированной среде, например в среде JBuilder и после тестирования в этой среде осуществлять ее доставку на сервер Tomcat. При этом, если JSP-страница не связана с аплетами и компонентами JavaBeans, то доставлять на сервер следует только jsp-файл, так как JSP-страница может работать с любым файлом web.xml, в котором содержится корневой элемент web-app.
Создание JSP-страницы в среде JBuilder осуществляется при помощи следующей последовательности шагов:
- Выбрать пункт меню File | New Project.
- В панели Project Wizard Step 1 of 3 ввести в окно Name имя проекта (например, Hello), в окно Directory – имя рабочей папки (например, D:\T), убрать флажок у кнопки Generate Project notes file и нажать на кнопку Finish.
- Выбрать пункт меню File | New.
- В панели Object Gallery выбрать вкладку Web, выделить тип приложения JavaServer Page и нажать на кнопку OK.
- В панели JSP Wizard Step 1 of 4 ввести в окно Name имя JSP-страницы (например, hello), снять флажок Generate sample bean, если в проекте не предполагается использовать компоненты JavaBeans, и нажать на кнопку Finish.
В результате будет создан проект, включающий в себя файл с расширением .jsp (например, hello.jsp), программный код которого необходимо модифицировать в соответствии с конкретным характером разрабатываемого приложения.
Построение и доставка на сервер JSP-страниц
Подсчет числа обращений к странице. Рассмотрим методику подсчета числа обращений к JSP-странице.
А. Проанализируйте структуру файла countAccess.jsp и обратите внимание на синтаксис скриптлета, посредством которого выполняется объявление переменной accessCount, а также на JSP-выражение, в котором осуществляется приращение этой переменной.
Б. Создайте проект с именем CountAccess согласно методике, изложенной в 1, заменив файл countAccess.jsp приводимым далее программным кодом. Протестируйте проект, запустив JSP-страницу countAccess.jsp в среде JBuilder.
Файл countAccess.jsp
<%@ page contentType="text/html; charset=windows-1251" %>
<html>
<head>
<title>Подсчет числа обращений к странице </title>
</head>
<body bgcolor="#DDDDDD">
<h1>Подсчет числа обращений к странице </h1>
<%-- Объявление переменной accessCount --%>
<%! private int accessCount = 0; %>
<h2>Число обращений к странице после загрузки сервера:</h2>
<h2><%= ++accessCount %></h2>
<h3>Для повторного обращения нажать на кнопку "Обновить"</h3>
</body>
</html>
Контрольное задание 1. Составьте собственный вариант JSP-страницы countAccess.jsp, изменив фон страницы. Протестируйте созданную JSP-страницу в среде JBuilder. Разверните страницу на сервер Tomcat в папку
webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0.1
Взаимодействие JSP-страницы со стандартными методами Java. В качестве примера рассмотрим работу JSP-страницы с методом Date из пакета java.util, при помощи которого выводится информация о текущем времени и дате.
А. Проанализируйте структуру файла clock.jsp и обратите внимание на тег meta, атрибуты которого устанавливают интервал, по истечении которого происходит повторный вызов метода Date с целью обновления времени.
Б. Создайте проект с именем Clock согласно методике, изложенной в 1, заменив файл clock.jsp приводимым далее программным кодом. Протестируйте JSP-страницу в среде JBuilder.
Файл clock.jsp
<%@ page contentType="text/html; charset=windows-1251" %>
<html>
<head>
<meta http-equiv = "refresh" content = "60" >
<title>Простой пример JSP</title>
<style type = "text/css">
.big { font-weight: bold; font-size: 3em }
</style>
</head>
<body>
<p class = "big" style = "color: #FF00FF">Простой пример JSP </p>
<table style = "border: 6px outset">
<tr> <td style = "background-color: #20B2AA">
<p class = "big" style = "color: #EEE8AA">
<!-- JSP-выражение для вывода даты и времени -->
<%= new java.util.Date() %>
</p>
</td> </tr>
</table>
</body>
</html>
Контрольное задание Составьте собственный вариант JSP-страницы clock1.jsp, изменив фон страницы и установив вдвое меньший интервал для обновления времени. Проведите тестирование JSP-страницы в среде JBuilder. Разверните страницу на сервер Tomcat в папку webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0.1.
Выражения JSP. Рассмотрим методику работы с JSP-выражениями, имеющими синтаксис <%= выражение %>. В выражениях могут использоваться предопределенные переменные (объекты) request, response, session, out, при помощи которых вызываются методы Java.
А. Проанализируйте структуру файла jspExpressions.jsp и обратите внимание на использование JSP-выражений, а также предопределенных объектов.
Б. Создайте проект с именем JSPExpressions согласно методике, изложенной в 1, заменив в проекте файл jspExpressions.jsp приводимым далее программным кодом. Протестируйте проект, запустив построенную JSP-страницу jspExpressions.jsp в среде JBuilder.
Файл jspExpressions.jsp
<%@ page contentType="text/html; charset=windows-1251" %>
<html>
<head>
<title>JSP - выражения </title>
<style type = "text/css">
.big { font-weight: bold; font-size: 1.5em; color:green }
</style>
</head>
<body class = "big" bgcolor="#FFDAB9">
<h2> JSP-выражения </h2>
<ul>
<li>Текущее время: <%= new java.util.Date() %>
<li>Имя хоста: <%= request.getRemoteHost() %>
<li>Идентификатор сессии: <%= session.getId() %>
<li>Тестовый параметр <code>testParam</code> в адресной строке:
<%= request.getParameter("testParam") %>
</ul>
<p>Для ввода значения тестового параметра testParam ввести <br>
в адресную строку его имя и значение <br>
(например ?testParam=MyString) и нажать на клавишу Enter</p>
</body>
</html>
Контрольное задание 3. Составьте новый вариант JSP-страницы jspExpressions.jsp, изменив фон страницы и цвет используемого шрифта. Протестируйте JSP-страницу в среде JBuilder. Разверните страницу на сервер Tomcat в папку webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0.1.
Скриптлеты JSP. Рассмотрим общую методику построения скриптлетов.
В ограниченных тегами <% и %> скриптлетах помимо выражений JSP могут использоваться произвольные фрагменты программ на языке Java, что существенно расширяет функциональные возможности JSP-страниц.
А. Проанализируйте структуру файла setBGColor.jsp и обратите внимание на содержание и функциональное назначение используемых в нем скриптлетов (первый из них выделен комментариями).
Б. Создайте проект с именем SetBGColor согласно методике, изложенной в 1, заменив в проекте файл setBGColor.jsp приводимым далее программным кодом. Протестируйте проект, запустив JSP-страницу setBGColor.jsp в среде JBuilder.
Файл setBGColor.jsp
<%@ page contentType="text/html; charset=windows-1251" %>
<html>
<head>
<title>Установка цвета фона страницы</title>
</head>
<% // начало скриптлета
String bgColor = request.getParameter("bgColor");
boolean hasExplicitColor;
if (bgColor != null) {
hasExplicitColor = true;
} else {
hasExplicitColor = false;
bgColor = "white";
}
%>
<%-- Конец скриптлета --%>
<body bgcolor="<%= bgColor %>">
<h2 align="center">Установка цвета фона страницы </h2>
<%
if (hasExplicitColor) {
out.println("Вы выбрали замечательный цвет фона страницы " +
bgColor + ".");
} else {
out.println("Применен цвет по умолчанию WHITE. " +
"Введите в адресную строку запрос с указанием цвета " +
"в виде RRGGBB значения (например ?bgColor=FFDAB9) " +
"и нажмите на клавишу Enter.");
}
%>
</body>
</html>
Контрольное задание 4. Составьте собственный вариант проекта SetBGColor1, в котором по умолчанию страница setBGColor.jsp имеет цвет FFDAB9. Протестируйте JSP-страницу в среде JBuilder. Разверните страницу на сервер Tomcat в папку webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0.1.
Обработка http-запросов. Рассмотрим методику построения JSP-страницы, отправляющей данные на сервер по методу GET. В качестве отклика сервер посылает клиенту текстовую строку, в которую включено значение, введенное пользователем на клиентской стороне.
А. Проанализируйте структуру файла hello.jsp и обратите внимание на начальную строку с описанием директив, на скриптлеты (первый из них выделен комментариями), а также на выражение <%= name %>, посредством которого клиенту возвращается введенное имя. Это имя передается серверу при помощи метода getParameter, который вызывается через предопределенный (неявный) объект request.
Б. Создайте проект с именем Hello согласно методике, изложенной в 1, заменив в проекте файл hello.jsp приводимым далее программным кодом. Протестируйте JSP-страницу в среде JBuilder.
Файл hello.jsp
<%@ page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>Передача данных по методу GET </title>
</head>
<body bgcolor="#FFDAB9">
<h2>Технология работы с Java Server Pages </h2>
<% // начало скриптлета
request.setCharacterEncoding("Cp1251");
String name = request.getParameter( "firstName" );
if ( name != null ) {
%> <%-- Конец скриптлета --%>
<h1> Здравствуйте, <%= name %>! <br>
Java Server Pages приветствуют Вас! </h1>
<%
} // end if
else {
%>
<form action = "hello.jsp" method = "get">
<h3> Введите Ваше имя и нажмите на кнопку "Послать"</h3>
<p><input type = "text" name = "firstName" >
<input type = "submit" value = "Послать" > </p>
</form>
<%
} // end else
%>
</body>
</html>
Контрольное задание 5. Составьте собственный вариант JSP-страницы hello1.jsp, изменив фон страницы и заменив содержание посылаемой на клиентскую сторону строки на сообщение "Ваше имя, firstName, теперь нам известно" (firstName – имя, введенное клиентом). Замените метод запроса GET на метод POST и проведите тестирование JSP-страницы в среде JBuilder. Разверните страницу на сервер Tomcat в папку webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0.1
Переадресация обработки запроса. Рассмотрим методику переадресации обработки при помощи действия <jsp:forward>, имеющего единственный атрибут, задающий относительный URL-адрес ресурса, к которому должен быть переадресован запрос. Переадресация осуществляется из JSP-страницы begin.jsp к JSP-странице next.jsp.
А. Проанализируйте структуру файлов begin.jsp и next.jsp. Обратите внимание на вложенное в действие <jsp:forward> действие <jsp:param name = "date" value = "<%= new java.util.Date() %>" />, при помощи которого на страницу next.jsp передается информация о времени и дате.
Б. Создайте проект с именем BeginNext, создав в нем согласно методике, изложенной в 1, две JSP-страницы с именами begin.jsp и next.jsp. Замените файлы begin.jsp и next.jsp приводимым далее программным кодом. Протестируйте проект, запустив JSP-страницу begin.jsp в среде JBuilder.
Файл begin.jsp
<%@ page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>Передача данных c переадресацией </title>
</head>
<body bgcolor="#FFDAB9">
<h2>Технология работы с Java Server Pages </h2>
<%
request.setCharacterEncoding("Cp1251");
String name = request.getParameter( "firstName" );
if ( name != null ) {
%>
<jsp:forward page = "next.jsp">
<jsp:param name = "date" value = "<%= new java.util.Date() %>" />
</jsp:forward>
<%
} // end if
else {
%>
<form action = "begin.jsp" method = "get">
<p>Введите Ваше имя и нажмите на кнопку "Послать"</p>
<p><input type = "text" name = "firstName" >
<input type = "submit" value = "Послать" >
</p>
</form>
<%
} // end else
%>
</body>
</html>
Файл next.jsp
<%@ page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>Переадресация запроса</title>
</head>
<body bgcolor="#00FFFF">
<%request.setCharacterEncoding("Cp1251");%>
<h1>Привет, <%= request.getParameter( "firstName" ) %>! <br>
Ваш запрос получен и переадресован на next.jsp<br>
с передачей в качестве параметра текущего времени
</h1>
<table style = "background-color: yellow; border: 6px outset;">
<tr> <td >
<h2 > <%= request.getParameter( "date" ) %> </h2>
</td> </tr>
</table>
</body>
</html>
Контрольное задание 6. Составьте вариант проекта BeginNext1, включив в него JSP-страницы begin.jsp и next.jsp, изменив фон каждой страницы. Протестируйте проект в среде JBuilder. Разверните обе JSP-страницы на сервер Tomcat в папку webapps\ROOT и вызовите в браузере файл
begin.jsp через порт 9090 и IP-адрес 127.0.0.1
Включение файлов при выполнении запроса. Рассмотрим методику построения JSP-страниц, на которые при выполнении запроса включаются произвольные html- или jsp-файлы. Такие файлы предварительно должны быть помещены в одну папку с исходной JSP-страницей.
А. Проанализируйте структуру файла jspInclude.jsp и обратите внимание на действие <jsp:include/>, содержащее два атрибута page и flush. В качестве значения первого атрибута задается имя включаемого файла, значением второго атрибута следует выбирать true.
Б. Создайте проект с именем JSPInclude согласно методике, изложенной
в 1, заменив в проекте файл jspInclude.jsp приводимым далее программным кодом. Сохраните проект и перейдите в Проводник, где скопируйте в папку defaultroot проекта JSPInclude файлы clock.jsp и countAccess.jsp. Протестируйте проект, запустив JSP-страницу jspExpressions.jsp в среде JBuilder.
Файл jspInclude.jsp
<%@ page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>Использование jsp:include</title>
<style type = "text/css">
table, tr, td {
font-size: .9em;
border: 3px groove;
padding: 5px;
background-color: #FFDAB9;
}
</style>
</head>
<body>
<center>
<table style = "border: 6px outset;">
<tr> <td> <h1> include.jsp </h1> </td> </tr>
</table>
<h2> Страница включает файлы clock.jsp и countAccess.jsp</h2>
</center>
<table>
<tr>
<td style = "width: 50%; text-align: center">
<h2> clock.jsp </h2>
</td>
<td style = "width: 50%; text-align: center">
<h2> countAccess.jsp </h2>
</td>
</tr>
<tr>
<td style = "width: 50% ; vertical-align: top">
<%-- включить clock.jsp --%>
<jsp:include page = "clock.jsp" flush = "true" />
</td>
<td style = "width: 50%">
<%-- включить countAccess.jsp --%>
<jsp:include page = "countAccess.jsp" flush = "true" />
</td>
</tr>
</table>
</body>
</html>
Контрольное задание 7. Составьте собственный вариант JSP-страницы jspInclude.jsp, в которую при выполнении запроса включаются
jsp-файлы hello.jsp и clock.jsp (эти файлы должны быть помещены в одну папку с исходной JSP-страницей). Протестируйте построенную JSP-страницу в среде JBuilder. Разверните страницу вместе с файлами hello.jsp и clock.jsp на сервер Tomcat в папку webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0..
Добавление на JSP-страницу аплетов. Рассмотрим методику добавления при помощи действия <jsp:plugin> аплетов на JSP-страницу. Это действие также загружает и устанавливает у клиента модуль Java Plug-in, если он еще не был установлен. В качестве аплета используется файл BannerApplet.java, реализующий бегущую строку.
А. Проанализируйте структуру файла pluginApplet.jsp, а также файла BannerApplet.java, и обратите внимание на действия <jsp:params> и <jsp:param />, при помощи которых атрибутами name и value устанавливается значение параметра, определяющего текст бегущей строки.
Б. Создайте проект с именем BannerApplet согласно методике, изложенной в 1.1, заменив файл BannerApplet.java приводимым далее программным кодом, и откомпилируйте проект в среде JBuilder. Создайте в текстовом редакторе Notepad файл pluginApplet.jsp c приводимым далее текстом JSP-страницы. Перейдите в Проводник и поместите файл pluginApplet.jsp, а также папку bannerapplet проекта BannerApplet в каталог webapps\ROOT сервера Tomcat. Протестируйте пример, запустив JSP-страницу pluginApplet.jsp в браузере через порт 9090 и IP-адрес 127.0.0.1.
Файл pluginApplet.jsp
<%@ page contentType="text/html; charset=windows-1251"%>
<html>
<head>
<title>Использование jsp:plugin для работы с аплетом</title>
</head>
<body>
<jsp:plugin type = "applet"
code = "bannerapplet.BannerApplet"
width = "600"
height = "300"
align = "middle">
<jsp:params>
<jsp:param name = "message"
value = "Java пересталяет начальный символ в конец строки" />
</jsp:params>
</jsp:plugin>
</body>
</html>
Файл BannerApplet.java
package bannerapplet;
import java.awt.*;
import java.applet.*;
public class BannerApplet extends Applet implements Runnable {
String msg;
Font f;
Thread t = null;
int state;
boolean stopFlag;
// установка цвета, шрифта и инициализация потока
public void init() {
setBackground(Color.blue);
setForeground(Color.yellow);
f=new Font("Arial",Font.BOLD,20);
setFont(f);
}
// запуск потока
public void start() {
msg = getParameter("message");
if(msg == null) msg = "Значение параметра не определено.";
msg = " " + msg;
t = new Thread(this);
stopFlag = false;
t.start();
}
// точка входа для потока.
public void run() {
char ch;
// преобразование строки в бесконечном цикле
for( ; ; ) {
try {
repaint();
Thread.sleep(250);
ch = msg.charAt(0);
msg = msg.substring(1, msg.length());
msg += ch;
if(stopFlag)
break;
} catch(InterruptedException e) {}
}
}
// остановка
public void stop() {
stopFlag = true;
t = null;
}
// отображение бегущей строки.
public void paint(Graphics g) {
g.drawString(msg, 50, 100);
}
}
Контрольное задание 8. Составьте собственный вариант JSP-страницы pluginApplet.jsp, в которой в качестве параметра аплету передается строка "Аплету передано новое содержание бегущей строки". Разверните страницу вместе с папкой bannerapplet на сервер Tomcat в папку
webapps\ROOT и протестируйте ее в браузере через порт 9090 и IP-адрес 127.0.0.1.
Использование компонентов JavaBeans. Рассмотрим методику организации взаимодействия JSP-страницы с компонентами JavaBeans. Загрузка bean-компонента осуществляется при помощи действия jsp:useBean, атрибуты которого задают имя идентификатора и имя класса-файла компонента. В качестве bean-компонента в примере используется форма для ввода информации о пользователе.
А. Проанализируйте структуру файла formBean.java, формирующего компонент JavaBeans, и обратите внимание на наличие в описании класса методов setXxx и getXxx (Xxx – произвольное имя), при помощи которых осуществляется доступ к закрытым данным класса. В файле form.jsp обратите внимание на атрибуты name и property, входящие в действие jsp:getProperty.
Б. Создайте проект с именем Form согласно методике, изложенной в 1. При формировании JSP-страницы выберите для нее имя form и установите флажок Generate sample bean для создания в проекте bean-компонента с именем класса formBean. Замените файлы проекта текстом приведенных далее файлов form.jsp и formBean.java и запустите проект в среде JBuilder.
Файл form.jsp
<%@ page contentType="text/html; charset=windows-1251" %>
<% request.setCharacterEncoding("Cp1251"); %>
<html>
<head>
<title>
Применение компонентов JavaBeans
</title>
</head>
<jsp:useBean id="formBeanId" class="form.formBean" />
<jsp:setProperty name="formBeanId" property="*" />
<body bgcolor = "#F08080">
<h1> Введите данные в формы и нажмите на кнопку Послать</h1>
<form method="post">
<br>Фамилия: <input name="sample1"><br>
<br>Имя: <input name="sample2"><br>
<br>Телефон: <input name="sample3"><br>
<br><br>
<input type="submit" name="Submit" value="Послать">
<input type="reset" value="Очистить">
<br>
<h3> Введены значения</h3>
Фамилия: :<jsp:getProperty name="formBeanId" property="sample1" /><br>
Имя: <jsp:getProperty name="formBeanId" property="sample2" /><br>
Телефон: <jsp:getProperty name="formBeanId" property="sample3" /><br>
</form>
</body>
</html>
Файл formBean.java
package form;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
//класс компонента JavaBeans
public class formBean {
private String sample1 = "Start value";
private String sample2 = "Start value";
private String sample3 = "Start value";
public String getSample1() {
return sample1;
}
public String getSample2() {
return sample2;
}
public String getSample3() {
return sample3;
}
public void setSample1(String newValue) {
if (newValue!=null) {
sample1 = newValue;
}
}
public void setSample2(String newValue) {
if (newValue!=null) {
sample2= newValue;
}
}
public void setSample3(String newValue) {
if (newValue!=null) {
sample3= newValue;
}
}
}
Контрольное задание 9. Составьте собственный вариант JSP-страницы form.jsp, в которой вместо номера телефона вводится адрес e-mail. Протестируйте JSP-страницу в среде JBuilder. Поместите содержимое папки defaultroot проекта Form в каталог webapps\ROOT сервера Tomcat и запустите страницу form.jsp в браузере через порт 9090 и IP-адрес 127.0.0.1.
Действия jsp:setProperty и jsp:getProperty. Рассмотрим методику использования действий jsp:setProperty и jsp:getProperty для обработки данных, которые содержатся в компонентах JavaBeans, входящих в приложение.
А. Проанализируйте структуру файла saleBean.java, формирующего компонент JavaBeans. В файле sale.jsp обратите внимание на содержание атрибутов name и property действий jsp:setProperty и jsp:getProperty.
Б. Создайте проект с именем Sale согласно методике, изложенной в 1. При формировании JSP-страницы выберите для нее имя sale и установите флажок Generate sample bean для создания в проекте bean-компонента с именем класса saleBean. Замените файлы проекта текстом приведенных далее файлов sale.jsp и saleBean.java и запустите проект в среде JBuilder.
Файл sale.jsp
<%@ page contentType="text/html; charset=windows-1251" %>
<html>
<head>
<title>Применение компонентов JavaBeans</title>
</head>
<body bgcolor ="EEE8AA">
<center>
<table style = "background-color: #FFDAB9; border: 6px outset">
<tr> <td> <h1> Использование компонентов JavaBeans </h1> </td> </tr>
</table>
<h2> Введите в адресную строку параметры <br>
?itemID=a1234&numItems=Value</h2>
</center>
<jsp:useBean id="entry" class="sale.saleBean" />
<jsp:setProperty
name="entry"
property="itemID"
value='<%= request.getParameter("itemID") %>' />
<%
int numItemsOrdered = 1;
try {
numItemsOrdered =
Integer.parseInt(request.getParameter("numItems"));
} catch(NumberFormatException nfe) {}
%>
<jsp:setProperty name="entry" property="numItems"
value="<%= numItemsOrdered %>" />
<br>
<table bgcolor="#FFF0F5" align="center" border =2>
<tr >
<th>Тип товара</th>
<th>Цена за единицу</th>
<th>Количество единиц</th>
<th>Общая стоимость</th>
</tr>
<tr align="right">
<td><jsp:getProperty name="entry" property="itemID" /></td>
<td><jsp:getProperty name="entry" property="itemCost" /></td>
<td><jsp:getProperty name="entry" property="numItems" /></td>
<td><jsp:getProperty name="entry" property="totalCost" /></td>
</tr>
</table>
</body>
</html>
Файл saleBean.java
package sale;
//класс компонента JavaBeans
public class saleBean {
private String itemID = "unknown";
private double discountCode = 0.95;
private int numItems = 0;
public String getItemID() {
return(itemID);
}
public void setItemID(String itemID) {
if (itemID != null)
this.itemID = itemID;
else
this.itemID = "unknown";
}
public double getDiscountCode() {
return(discountCode);
}
public int getNumItems() {
return(numItems);
}
public void setNumItems(int numItems) {
this.numItems = numItems;
}
// при практической реализации заменить на просмотр базы данных.
public double getItemCost() {
double cost;
if (itemID.equals("a1234"))
cost = 199*getDiscountCode();
else
cost = -9999;
return(Math.floor(cost*100)/100.0);
}
public double getTotalCost() {
return(Math.floor(getItemCost() * getNumItems()));
}
}
Контрольное задание 10. Составьте собственный вариант проекта Sale1, в котором идентификатор itemID имеет значение LG17, и выполните тестирование проекта в среде JBuilder. Поместите содержание папки
defaultroot проекта Sale1 в каталог webapps\ROOT сервера Tomcat и запустите модифицированную JSP-страницу в браузере через порт 9090 и IP-адрес 127.0.0.1
Выводы
Технология активных серверных страниц Java позволяет смешивать статическое содержание обычного HTML-файла с динамически сгенерированным содержанием сервлета, в который автоматически преобразуются скриптлеты JSP-страницы на Web-сервере. Использование JSP-страниц является весьма эффективным средством для организации клиент-серверных взаимодействий и дает возможность легко дополнять содержимое статических страниц динамическими формируемыми данными. Существенным достоинством JSP-страниц является возможность переноса их в различные операционные системы. JSP-страница может быть создана в любом текстовом редакторе и не требует предварительной компиляции, поэтому она включается непосредственно на сервер Tomcat в любой подкаталог его папки webapps.

- Технология Анализа Рынка Методом Конкурентной Диагностики
- Технология анимационной деятельности
- Технология антикризисного управления
- Технология безалкогольных напитков
- Технология безпроводных сетей
- Технология бетона
- Технология бетонных работ в зимних условиях
- Технология Wi-fi
- Технология World Wide Web
- Технология XXI века. Перспективы России
- Технология авиационного строения
- Технология автоматизации систем документационного обеспечения управления
- Технология автоматизированной идентификации штриховых кодов
- Технология адаптивного распознавания образов APRP