Возможно вы искали: 'Zoo Tycoon 2'

May 15 2025 18:29:58
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Практическое введение в управляющие HTML-формы Smans (sams web sql template)

Практическое введение в управляющие HTML-формы Smans (sams web sql template)

Ключевые слова: sams, web, sql, template, (найти похожие документы)

From: Сергей Савушкин
Newsgroups: email
Date: Mon, 30 Aug 2008 18:21:07 +0000 (UTC)
Subject: Практическое введение в управляющие HTML-формы Smans

Данная статья нацелена на Web-разработчиков начального и среднего
уровня, желающих усилить уровень поддержки Web-сайта посредством базы
данных. Для разработки интерфейса с базой данных предлагается новый
декларативный язык основанный на HTML-формах. В результате разработчик
может ограничить себя только HTML без написания соответствующих
скриптов на SQL и одном из языков обработки данных, таких как PHP,
ASP/C# или JSP/Java. Это существенно упрощает создание динамического
Web-сайта.

Статья объясняет оригинальный подход, базирующийся на особенностях
сервера Smans. При таком подходе для создания базы данных
достаточно знать только HTML. Например, чтобы регистрировать новых
пользователей, все, что необходимо от Web-разработчика, создать
HTML-форму. Соответствующая таблица будет создана или
подкорректирована автоматически в течение регистрации пользователя.
Имя каждого поля таблицы будет тем же самым, как и имя
соответствующего поля в HTML-форме.

HTML-формы могут управлять не только созданием базы данных, но и
выполнением запросов к ней. В последнем случае осуществляется контроль
введенных данных, получение из базы данных определенных параметров и
передача их нужным Web-ресурсам. Все это задается в обычной HTML-форме
с использованием специальных управляющих, обычно скрытых, полей.

Создание базы данных с помощью HTML-формы

Как известно, HTML-форма, это - блок HTML-страницы позволяющий вводить
данные из Web-браузера на удаленный или локальный Web-сервер. Блок
формы помечается тэгами <form...> и </form>. Поля внутри HTML-формы
могут иметь разные типы, например список или текстовое поле. В
листинге 1 показан пример описания формы.

Листинг 1. Код HTML-формы

<form method="post" action="...">
A: <input type="text" name="A" size="10" />

B: <select name="B" multiple="multiple">
<option value="b1" selected="selected">b1</option>
<option value="b2">b2</option>
</select>

C: <input type="radio" name="C" checked="checked" value="c1" />c1
<input type="radio" name="C" value="c2" />c2

D: <input type="checkbox" name="D" checked="checked" value="d1" />d1
<input type="checkbox" name="D" value="d2" />d2

<input type="submit" value="Submit" />
<input type="reset" value="Reset" />
</form>


HTML-форма обычно используется для ввода только одной записи в таблицу
базы данных. Каждый атрибут name определяет имя соответствующего поля
формы или вводимой записи. Одновременно, для сервера Smans, это же имя
рассматривается как имя колонки в соответствующей таблице.
Дополнительная информация, обычно невидимая для пользователя,
передается серверу Smans благодаря управляющим полям HTML-формы.
Наиболее важным из управляющих полей является $Table. Атрибут action в
дескрипторе form задает имя Smans-сервлета /servlet/record,
принимающего и обрабатывающего HTML-форму с управляющими полями.
Например:

<form action="../servlet/record" method="post">
<input type="hidden" name="$Table" value="Order" />
...
</form>


Поле $Table обозначает таблицу формируемую в базе данных. Рассмотрим
пример записывающей управляющей HTML-формы, формирующий таблицу Order
в листинге 2.

Листинг 2. Код записывающей HTML-формы

<form action="../servlet/record" method="post">
<input type="hidden" name="$Table" value="Order" />
Date: <input type="text" name="Date" />

Name: <input type="text" name="Name" />

Phone: <input type="text" name="Phone" />

Company: <input type="text" name="Company" />

Product Type: <input type="text" name="Product Type" />

Product Name: <input type="text" name="Product Name" />

Quantity: <input type="text" name="Quantity" />

<input type="submit" value="Submit Data">
<input type="reset" value="Reset Form">
</form>


Каждая входная запись должна иметь первичное ключевое поле(я). В
рассматриваемом случае таблица Order будет иметь ключевое поле Order.
Так как поле Order отсутствует в HTML-форме, значение первичного
ключевого поля Order автоматически генерируется сервером Smans как
номер записи (ряда) таблицы в увеличивающемся порядке. Если таблицы
Order в базе данных еще нет, она будет создана. В случае, если таблица
уже существует с другими колонками, к ней будут добавлены новые
колонки, описываемые в форме. В результате таблица, как минимум, будет
иметь следующий список колонок:

Order
Date
Name
Phone
Company
Product Type
Product Name
Quantity


Вы можете легко изменить выводимое сообщение или последующие действия
в случае успешного ввода записи с помощью поля $Forward. Например:

<input type="hidden" name="$Forward" value="Confirm.html" />


Все управляющие поля можно называть также управляющими параметрами.
Кроме перечисленных выше, используются параметры $PKey. Они полезны,
если таблица имеет несколько первичных ключевых колонок, когда
необходимо предотвратить повторное появление нескольких значений
колонок. Каждый параметр $PKey указывает на имя обычного параметра
(поля) в HTML-форме, например:

<form action="../servlet/record" method="post">
<input type="hidden" name="$Table" value="Product">
<input type="hidden" name="$PKey" value="Product Type" />
<input type="hidden" name="$PKey" value="Product Name" />
<input type="text" name="Product Type" />
<input type="text" name="Product Name" />
...


В дистрибутиве сервера Smans есть соответствующие примеры, они
находятся в директории hforms. Простейшие примеры реализованы на
HTML-страницах wapp/hforms/Order.html и wapp/hforms/Product.html.
Обратиться к странице из Web-браузера можно так:
http://<domain>[/<application>]/hforms/Order.html. После ввода записи,
сервер Smans выдаст некоторое сообщение, по умолчанию:

Сценарий диалога посредством HTML-формы

Весьма обычная ситуация, когда изображение страницы зависит от
некоторых входных параметров, обрабатываемых посредством PHP, JSP или
ASP. Такими параметрами могут быть тип Web-браузера, язык общения,
личные данные пользователя или его интересы и т.д. Часть параметров
определяется из запроса пользователя при его первоначальном обращении.
Часть параметров берется из cookies, сохраненных в компьютере клиента
от предыдущих сеансов. Другая часть устанавливается в процессе
диалога.

Зависимости одних параметров от других, это - данные, которые проще
хранить отдельно в базе данных, чем вперемежку с разного рода
директивами внутри управляющих скриптов или программ. Важность такого
подхода не только в большей наглядности. Система базы данных позволяет
легко найти нужные группы параметров и зависимостей по запросу. Кроме
того, разработчик получает возможность легко менять значения
параметров и их зависимости, а значит и конкретный сценарий диалога,
не трогая соответствующие скрипты или программы.

Рассмотрим распространенную ситуацию, связанную с предоставлением
разных ресурсов разным пользователям. Нужные зависимости и
соответствующую базу данных можно сформировать в процессе регистрации
пользователя. В моем примере, в листинге 3, такими ресурсами являются
новости. Управляющее поле $Table, кроме задания таблицы, указывает на
ключевое поле Username. Пользователь сам выбирает, какие новости его
интересуют в поле ExpectedNews. Зависимость Username-ExpectedNews
сохраняется в базе данных со схемой Username(Password,ExpectedNews).

Листинг 3. Записывающая HTML-форма. Регистрация пользователя.

<form name="form1" action="../servlet/record" method="post">
<input type="hidden" name="$Table" value="Username" />
<input type="hidden" name="$Forward" value="hforms/Login.html" />
Username: <input type="text" name="Username" />

Password: <input type="password" name="Password" />

Expected News:
<select name="ExpectedNews" multiple="multiple" size=5>
<option value="Sport">Sport</option>
<option value="HiTech">Hi Tech</option>
<option value="Policy">Policy</option>
<option value="Economy">Economy</option>
<option value="Financies">Financies</option>
</select>

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


При успешной регистрации, управление передается HTML-странице
hforms/Login.html посредством $Forward. В этой странице помещена
вызывающая управляющая HTML-форма, необходимая для входа (login)
пользователя в систему, смотрите Листинг 4. Значение ../servlet/recall
есть Smans-сервлет для обработки вызывающей формы. Поля $Param
указывают параметры, передаваемые Internet-ресурсу поля $Forward.
Значения этих параметров выбираются из базы данных в соответствии с
зависимостями: {входные данные} -> $Table -> {$Param, ...}.

Листинг 4. Вызывающая HTML-форма. Логин пользователя.

<form name="form1" action="../servlet/recall" method="post">
<input type="hidden" name="$Table" value="Username" />
<input type="hidden" name="$Forward" value="hforms/News.jsp" />
<input type="hidden" name="$Param" value="Username" />
<input type="hidden" name="$Param" value="ExpectedNews" />
Username: <input type="text" name="Username" />

Password: <input type="password" name="Password" />

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


Логика вызывающей HTML-формы для каждого $Param выглядеть в SQL так:

SELECT $Param FROM $Table WHERE {input data}


Затем все найденные параметры будут переданы по $Forward адресу (URL),
в моем случае к hforms/News.jsp, подобно
hforms/News.jsp?Username=...&ExpectedNews=...&ExpectedNews=.... Кроме
JSP, любой другой ресурс мог быть на этом месте, например серверная
страница PHP, сервлет, Perl скрипт и т.д.. Возможный JSP фрагмет
изображен на Рис.5.

Рис. 5. JSP фрагмент. Отклик сервера.

<%
String username = request.getParameter("Username");
String enews[] = request.getParameterValues("ExpectedNews");
%>
Dear <%= username %>,

This simple demo is regarding the work with html form control.

<h1>Your Favorite News</h1>
<%
if (enews != null) {
for (int i = 0; i < enews.length; ++i) {
...
}
}
%>


Описанный выше пример реализован в файлах Register.html, Login.html, и
News.jsp в директории hforms сервера Smans, распространяемого
бесплатно и с открытым кодом.

Заключение

Моя задача была показать, как можно просто и быстро разработать
динамический Web-сайт не зная SQL и не будучи специалистом по СУБД.
Рассмотренных Smans инструментов вполне достаточно, чтобы
сконструировать большой разветвленный диалог, когда предыдущая
вызывающая HTML-форма пересылает параметры к JSP/PHP/ASP странице,
которая в свою очередь может содержать следующую вызывающую HTML-форму
и т.д. Важно помнить, что скрытые (hidden) поля внутри HTML-форм
нельзя скрыть от пользователя. Тем не менее, Smans-данные вполне
защищены. Таблицы создаются и используются только с тех HTML-страниц,
которые находятся в одном Web-приложении работающем с сервером Smans.
Интернет-технологии - наиболее динамично развивающаяся область,
сейчас. В рамках уже существующих языков и стандартов появляются новые
языки и новые стандарты. Большинство из них направлено на упрощение и
облегчение труда Вэб-разработчиков. Примерами являются:

- серверные страницы PHP или JSP,
- недавно появившийся фреймворк Ruby on Rails, базирующийся на
архитектуре MVC и языке Ruby,
- AJAX - JavaScript-расширение базирующееся на XML.


К новым Интернет-технологиям относятся также HTML-формы Smans, которые
представляют собой декларативный язык в рамках существующего языка
HTML. Преимущества Smans HTML-форм определяются особенностями базы
данных с которой работает сервер Smans и прежде всего гибкостью
структуры этой базы и возможностью вводить данные, заранее не
определяя схему базы данных.
938 Прочтений •  [Практическое введение в управляющие HTML-формы Smans (sams web sql template)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Практическое введение в управляющие... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка