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.


 

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

49273. Разработка электронной измерительной системы для контрольного приспособления для проверки расположения осей отверстий у корпусов с базированием на кулачковую оправку 1.82 MB
  На рисунке представлено контрольное приспособление кулачковой оправкой для измерения расположение осей отверстий корпуса стойки металокордовых машин. На этой оправке осуществляется также комплексное базирование корпусов.
49274. Аудит процесса управление несоответствующей продукцией ОАО «Северсталь-метиз» 1.62 MB
  Основными видами производственной и коммерческой деятельности Орловского сталепрокатного завода является выпуск и реализация метизной продукции, а именно проволоки низко и высокоуглеродистой; стальных сеток; электродов; стальных канатов; калиброванной стали
49276. Открытые горные работы. Курс лекций 1.09 MB
  В зависимости от назначения различают капитальные разрезные и специальные открытые горные выработки – траншеи. Капитальные траншеи служат для вскрытия месторождений или отдельных его участков с целью создания грузотранспортной связи рабочих горизонтов карьера с поверхностью. Разрезные траншеи проходят на каждом рабочем горизонте с целью создания первоначального фронта горных работ. Специальные траншеи служат для ограждения карьера от атмосферных вод дренажа месторождения водоотлива и хозяйственного обслуживания рабочих уступов.
49277. Методические основы проектирования карьеров 845 KB
  Выбор площади для строительства промышленного предприятия жилых домов и объектов культурнобытового назначения Кроме того ТЭО строительства карьера должно содержать следующее: характеристику карьера и анализ техникоэкономических показателей его работы; роль рассматриваемого карьера в обеспечении потребностей народного хозяйства в добываемом полезном ископаемом; горногеологическую характеристику месторождения и карьерного поля границы и запасы степень разведанности наличие попутных полезных ископаемых качества полезного...
49278. Расчет пленочных интегральных микросхем 599.65 KB
  Размер зерен менее 40 мкм. Если ограничить толщину пленки величиной 01 мкм а максимальную и минимальную площади соответственно 2Ю2 и 02 мм2 то для обеспечения диапазона емкостей 10 106 Ф требуются диэлектрические постоянные примерно равные 05 50. ТЕХНИЧЕСКОЕ ЗАДАНИЕ Рассчитать группу тонкопленочных резисторов при следующих исходных данных: bтехн=125 мкм lтехн=125 мкм Рассчитать конденсатор при следующих исходных данных: ПОЯСНИТЕЛЬНАЯ ЗАПИСКА ДЛЯ РАСЧЕТА РЕЗИСТОРОВ По формуле определяем значение оптимального сопротивления и...
49279. Технология изготовления бескорпусной интегральной микросборки 707.69 KB
  Характеристики тонкопленочных проводников и контактных площадок Материал подслоя нихром Х20Н80 Толщина подслоя мкм 001003 Материал слоя мкм Медь МВ Толщина слоя мкм 0608 Удельное поверхностное сопротивление S Ом 002004 Рекомендуемый способ контактирования внешних выводов Сварка импульсным косвенным нагревом Материал для защиты элементов выбирается по электрической прочности. Пассивные элементы к точности которых предъявляются жесткие требования располагаются на расстоянии 500 мкм при масочном методе и 200 мкм при...