Электронный магазин на Java и XML

       

Главная HTML-страница


На главной HTML-странице пользователю предлагаются три возможности: добавить товар, редактировать товар или удалить товар. Существует также возможность отменить все изменения, сделанные пользователем в текущем сеансе, или сохранить эти изменения. Для всех этих операций вызывается один и тот же сервлет, но всякий раз с различными значениями скрытого поля с именем operation. В начале HTML-страницы (листинг 6.41) содержится ее заголовок и открывающий тег элемента body.

Листинг 6.41. Начало HTML-страницы (main.html)

<html>

<head><title>Catalog Upkeep</title></head>

<body>

Каждая из пяти операций, предложенных пользователю, представлена специальной формой на странице. Первую операцию, Add Product (Добавить товар), иллюстрирует листинг 6.42. Для нового товара требуется уникальный идентификатор, поэтому нужно проверить все уже существующие идентификаторы, чтобы не получилось повторения. Также требуется указать серию товаров, к которой принадлежит новый товар. Атрибут action элемента form содержит имя сервлета, который вызывается, когда форма заполнена и отправлена на сервер. В данном случае мы вызываем сервлет Main. В следующей строке указывается заголовок для формы Add Product.

Первый элемент этой формы является скрытым. Это значит, что пользователь не увидит его на экране своего компьютера. Он просто передается сервлету вместе со всеми остальными введенными данными. Этот элемент позволяет сервлету определить, что именно хотел сделать пользователь. Следующие две строки предназначены для того, чтобы пользователь мог ввести идентификатор товара и указать серию товаров, к которой он будет принадлежать. Последняя строка элемента form нужна для того, чтобы добавить кнопку, с помощью которой пользователь сможет отправить введенные данные на сервер.

Листинг 6.42. Форма для добавления товара (main.html)

<form action="servlet/Main">

<h3>Add Product:</h3>

<input type="hidden" name="operation" value="add" />


Product ID:<input name="productid" />



Product Line:<input name="productline" />

<input type="submit" value="Add"/> </form>

Формы Delete Product (Удалить товар) и Edit Product ( Редактировать товар) аналогичны форме Add Product, но в них требуется ввести только идентификатор товара. Для визуального разграничения этих форм между ними добавляется горизонтальная линия. Код для форм Delete Product и Edit Product приведен в листинге 6.43.

Листинг 6.43. Формы Delete Product и Edit Product (main.html)

<hr />

<form action="servlet/Hain">

<h3>Delete Product:</h3>

<input type="hidden" name="operation" value="delete" />

Product ID:<input name="productid" />

<input type="submit" value="Delete"/>

</form>

<hr />

<form action="servlet/Main"> <h3>Edit Product:</h3>

<input type="hidden" name="operation" value="edit" />

Product ID:<input name="productid" />

<input type="subrait" value="Edit"/>

</form>

Последние две операции — отмена и сохранение всех изменений, внесенных пользователем в течение данного сеанса, — иллюстрирует листинг 6.44. Сервлет и JSP-страница загружают данные XML из файла, когда пользователь начинает работу с каталогом. Форма Cancel All Changes (Отменить все изменения) отменяет все изменения, которые были сделаны с момента загрузки файла. Форма Save All Changes (Отменить все изменения) записывает в файл XML все изменения, сделанные пользователем. Визуально обе эти формы представляют собой просто кнопки, на которых может щелкнуть пользователь. В каждой форме имеется скрытый элемент input, который сообщает сервлету, какую из этих операций выбрал пользователь.

Листинг 6.44. Формы Cancel All Changes и Save All Changes (main.html)

<hr />

<form action="servlet/Main">

<input type="hidden" name="operation" value="refresh" />

<input type="submit" value="Cancel All Changes"/>

</form>

<form action="servlet/Main">

<input type="hidden" name="operation" value="save" />

<input type="submit" value="Save All Changes"/>

</form>

</body> </html>




Содержание раздела