4908

Технология активных серверных страниц

Реферат

Информатика, кибернетика и программирование

Технология активных серверных страниц Рассматривается методика построения Web-приложений на основеактивных серверных страниц Java (JSP). Приводятся примеры построения JSP-страниц в среде JBuilder и доставки страниц на сервер Tomcat. 1. Структу...

Русский

2012-11-29

110.5 KB

9 чел.

Технология активных серверных страниц

Рассматривается методика построения 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 осуществляется при помощи следующей последовательности шагов:

  1.  Выбрать пункт меню File | New Project.
  2.  В панели Project Wizard Step 1 of 3 ввести в окно Name имя проекта (например, Hello), в окно Directory – имя рабочей папки (например, D:\T), убрать флажок у кнопки Generate Project notes file и нажать на кнопку Finish.
  3.  Выбрать пункт меню File | New.
  4.  В панели Object Gallery выбрать вкладку Web, выделить тип приложения JavaServer Page и нажать на кнопку OK.
  5.  В панели 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.


 

А также другие работы, которые могут Вас заинтересовать

59488. Сценарій відкритого уроку: Чорнобильська трагедія 89.5 KB
  Мета. Ознайомити учнів з однією із трагічних сторінок України, розкрити наслідки трагедії, ознайомити з тими заходами, які приймає уряд України з метою запобігання подібного лиха.
59491. Виховна година “Перше квітня” 39 KB
  Ісландські саги кажуть що звичай обманювати в день першого квітня введений асами богами в память Скадеї дочки Тіясса. Цей звичай дуже поширений у Данії Швеції Норвегії. Але таке пояснення викликає сумнів бо звичай обманювати в день першого квітня...
59493. Франческо Петрарка – державний діяч, філософ, поет. Загальна характеристика “Книги пісень” 76 KB
  Мета: розкрити учням творчий світ Петрарки у світлі поняття краси як основи світобачення поета розвивати емоційноестетичне сприйняття учнів активізувати роботу всього класу розвивати творчі та аналітичні здібності.
59494. Андріївські вечорниці 62 KB
  От і дівчата вже йдуть. Дівчатавсі: сміх Слава Богу в вашій хаті Дівчина1: Добрий вечір тітонько Чи можна в вашу хату Мати: Слава навіки Заходьте дівчата сідайте Зараз вареників на всіх наліпимо. Може ще гості будутьПорається Галя: Давайте дівчата не роздягайтеся побіжіть до криниці по воду.
59495. Математична вікторина для учнів 10 класів 54.5 KB
  Прилади: карточки з цифрами від 1 до 5 кома Підготовка: За тиждень до конкурса вибрати команди командам дати завдання: підготовитися до конкурсу привітання до конкурсу капітанів підготувати по три запитання. Конкурси Конкурс капітанів...
59496. Родинне свято 68.5 KB
  Пісня Я з’явився на світ із любові та мрії Із щасливих татусевих і маминих снів. Пісня Дорогий хороший рідний тато Кращого від тебе не знайти Дорогий хороший рідний тато Як чудово що у нас є ти...