ВВЕДЕНИЕ
Специальность веб-мастера со временем теряет свою популярность, а технология построения информационно-справочного ресурса выходит из стен лабораторий на просторы промышленного освоения. Верный признак этого - это растущие инвестиции в Интернет-проекты и осознание того, что веб-ресурсы пригодны не только для распространения on-line развлечений, но и для серьезной образовательной, научной и легальной коммерческой деятельности. А раз так, то и подход к изучению Интернет-технологий должен быть серьезным.
Для начала необходимо разобраться, в каком направлении движутся Интернет-технологии и разобраться в той системе, которую используют сегодня разработчики. Выделим несколько интересующих нас современных тенденций:
- в веб-технологиях: какие грядут архитектурные подходы, программное обеспечение, специальная аппаратура, серверы так далее, и как сделать из Интернет-ресурса - рекламного буклета нормальный веб-ресурс с внешней Интернет, партнерской экстранет и внутренней интранет частью;
- экономике строительства сайта: анализ рынков (кто, где и сколько платит за веб-развитие) и связанный с анализом рынков обзор инвестиционных перспектив отрасли;
- маркетинге веб-дизайна и веб-программинга: какие аргументы и бизнес-модели используют лидеры отрасли, чтобы организовать поток заказов, контент (содержание) - происхождение и потребление;
- людских ресурсах отрасли: откуда в отрасль приходят специалисты, куда разработчики из отрасли уходят, какие еще в отрасли есть профессии, кроме веб-мастера, и кто учит профессионалов, и сколько времени нужно учиться, сколько платят в отрасли разным специалистам и так далее;
- социальных аспектах: от проблем приватности до проблем соблюдения смежных прав (копирайта) на визуальный дизайн.
Веб-ресурсы - это любые программные комплексы, имеющие Интернет-интерфейс. В полном соответствии с названием: веб-ресурс - место в паутине. Все труднее сообразить, какие программные комплексы не имеют этот самый Интернет-интерфейс. Поэтому программы становятся веб-ресурсами, а строительство Интернет-ресурса и собственно прикладное программирование становятся неразличимыми.
На сегодняшний день наблюдается многоуровневый синтез веб-страниц.
- первый уровень: сбор необходимой для страницы информации внутри многочисленных информационных систем организации;
- второй уровень - раскладка этой информации внутри шаблонов, фиксирующих текущий дизайн сайта;
- третий уровень - браузер вытягивает из того же информационно-справочного ресурса картинки (в том числе flash- анимационные);
- четвертый уровень - браузер вытягивает из других веб-ресурсов недостающие части страницы (например, баннеры, счетчики, курсы валют). Собственно, если программы становятся Интернет-ресурсами, то все инструменты программирования становятся инструментами веб-строительства. Это вызов современному программированию, потому, что у этой отрасли по-прежнему нет ответа на вопрос о том, как многим желающим непрофессионалам построить свой сайт быстро и безошибочно писать сложные многопользовательские и многозадачные приложения с графическими интерфейсами.
Целью данной курсовой работы является разработка информационно-образовательного портала (ИОП) «Модные причёски» для студентов колледжа, обучающихся по направлению модельер-дизайнер».
Информационно-образовательный портал - это Интернет-ресурс, целью которого является не только осуществление целостной образовательной деятельности учебного заведения и учебно-познавательной деятельности студента через Интернет, но и профессионально значимая самореализация личности через разнообразные операции с информацией, в том числе и через специализированное общение.
1 ТЕХНОЛОГИИ ВЕБ-ПРОГРАММИРОВАНИЯ
1.1 ActionScript
ActionScript - это объектно-ориентированный язык программирования, один из диалектов EcmaScript, который добавляет интерактивность, обработку данных и многое другое в содержимое Flash-приложений. ActionScript исполняется виртуальной машиной (ActionScriptVirtualMachine), которая является составной частью приложения FlashPlayer. ActionScript компилируется в байт-код, который включается в SWF-файл.
SWF-файлы исполняются FlashPlayer. Сам FlashPlayer существует в виде плагина к веб-браузеру, а также как самостоятельное исполняемое приложение. Во втором случае возможно создание исполняемыхexe-файлов, когда swf-файл включается во FlashPlayer.
С помощью ActionScript можно создавать интерактивные мультимедиа-приложения, игры, Интернет-ресурсы и многое другое.
1.2 PHP
PHP (HypertextPreProcessor) - это один из самых распространенных инструментов веб-программирования на стороне сервера. Работа PHP в самом простом варианте сводится к обработке HTTP запроса клиента. Обработка запроса, в свою очередь, заключается в программном формировании гипертекста в соответствии с параметрами запроса, после чего полученная разметка возвращается клиенту. Когда клиент (Интернет-браузер) запрашивает обычную статическую Интернет страницу (чаще всего с расширением HTML), сервер в качестве ответа возвращает ему содержимое этой страницу без изменений. Если запрашивается php-страница, то в процессе обработки запроса содержимое указанной страницы сначала обрабатывается интерпретатором PHP, и только потом результат этой обработки отправляется клиенту.
Можно сказать, что PHP - это генератор гипертекста, поскольку в большинстве случаев его работа - это программная генерация HTML разметки по содержимому базы данных или по любой другой структурированной информации, размещенной на сервере.
PHP - это язык программирования, который поддерживает практически все основные конструкции процедурного программирования: переменные, условные операторы, циклы, функции и так далее. PHP - это объектно-ориентированный язык программирования, он поддерживает классы и объекты, а также привычное наследование на уровне классов.
PHP - это язык веб-программирования, поскольку он в первую очередь создан для разработки динамических Интернет-ресурсов и поэтому содержит большое количество готовых решений, применяемых в этой сфере, таких как:
- обработка и извлечение параметров HTTP-запросов GET и POST;
- формирование и отправка HTTP-заголовков;
- инфраструктура для хранения данных сеанса;
- программные сервисы для работы с cookies.
Сookies - это текстовые данные, сохраняемые браузером на компьютере клиента, которые чаще всего содержат параметры доступа (логин и пароль) или персональные настройки пользователя. Cookies формируются браузером и автоматически, в ходе каждого удаленного обращения пересылаются серверу в заголовках HTTP-запроса.
- работа с файлами по FTP-протоколу;
- работа с базами данных посредствам SQL-запросов;
- поддержка регулярных выражений;
- поддержка HTTP авторизации;
- обмен сообщениями по электронной почте и многое другое.
1.3 ASP.NET
ASP.NET - это технология создания динамических веб-приложений. Она является частью платформы .NET Framework. Приложения ASP.NET можно писать на любом языке, совместимом с технологиями NET. В их число входят VisualBasic, C# и J#. Страницы ASP.NET (веб-формы) проходят компиляцию, что обеспечивает лучшую производительность по сравнению с приложениями на основе сценариев. Веб-формы позволяют создавать многофункциональные веб-страницы. При разработке можно использовать серверные элементы управления ASP.NET для создания общих элементов пользовательского интерфейса и программирования общих задач для них. Процесс создания веб-форм ускоряется за счет использования стандартных встроенных компонентов, таких как представления GridView и DetailsView, и пользовательских компонентов, помогающих при написании кода страницы.
ASP.NET значительно упрощает создание веб-приложений, имеющих практическое применение. Серверные элементы управления ASP.NET позволяют применять декларативную модель программирования, схожую с HTML, в которой для создания динамической страницы требуется гораздо меньше кода, нежели при использовании классической технологии ASP. Отображение данных, проверка ввода и загрузка файлов происходят гораздо проще. Главное же преимущество страниц ASP.NET состоит в том, что они работают в любом обозревателе, включая обозреватели Netscape, Opera, AOL и InternetExplorer.
1.4 JavaServerPages
Технология JavaServerPages (JSP) - это технология, позволяющая веб-разработчикам динамически генерировать HTML, XML и другие веб-страницы. Технология позволяет внедрять Java-код, а также EL (ExpressionLanguage) в статичное содержимое страницы. Также могут использоваться библиотеки JSP тегов для внедрения их в JSP-страницы. Страницы компилируются JSP-компилятором в сервлеты, представляющие собой Java-классы, которые выполняются на сервере. Сервлеты также могут быть написаны разработчиком, не используя JSP-страницы. Эти технологии могут дополнять друг друга.
JSP - это одна из высокопроизводительных технологий, так как весь код страницы транслируется в java-код сервлета с помощью компилятора JSP страниц Jasper, и затем компилируется в байт-код виртуальной машины java (JVM).
Основным отличием от других подобных технологий, например ASP и PHP, является то, что код, находящийся внутри специальных тэгов не интерпретируется при обращении к странице, а предварительно компилируется в JavaServlet. Технология JSP удачно объединяет шаблонный подход к построению сайтов и все преимущества Java-платформы.
Важным шагом к расширению шаблонного подхода стали библиотеки тэгов. Они предоставляют хорошую возможность интегрировать стандартные, сторонние, или собственные программные компоненты в страницы. Простота создания и использования привели к большой популярности библиотек тэгов.
JSP не привязана к конкретной платформе, благодаря использованию Java. Кроссплатформенность является одним из основных преимуществ этой технологии. Также к достоинствам JSP следует отнести простоту разработки, наличие большого количества библиотек и легкость их использования, мощные и разнообразные среды разработки.
1.5 PERL
Язык программирования PERL (PracticalExtractionandReportLanguage) был разработан Ларри Воллом (LarryWall) в 1986-87 годах для сложной обработки текстов в среде Unix, а также стал первым сценарным языком в современном понимании этого термина. Сегодня PERL поддерживается тысячами разработчиками как проект OpenSource и реализован практически для всех существующих операционных систем. При этом он продолжает оставаться абсолютным лидером среди других языков этого класса по количеству написанных на нем сценариев.
PERL - это язык программирования высокого уровня, предназначенный для написания сценариев, работающих как на стороне клиента, так и на стороне сервера. Его основными применениями являются системное администрирование и CGI-программирование для веб-серверов.
Синтаксис PERL напоминает синтаксис языка C, но, благодаря обилию хорошо продуманных сокращений разработка сценариев на нем происходит намного быстрее. Краткость PERL часто считают его недостатком, поскольку написать на нем корректную, но абсолютно нечитабельную программу легче, чем на других языках. Однако, PERL позволяет выбирать стиль программирования, и ничто не мешает писать на нем программы, внешне схожие с программами на C. Cочетание скорости разработки с мощью получаемых программ делает PERL непревзойденным инструментом реализации сложных сценарных проектов.
К недостаткам PERL следует отнести недостаточно развитую поддержку кодировки символов Unicode. Язык обладает широкими возможностями, причем для эффективного программирования их все использовать нет необходимости.
2 КЛАССИФИКАЦИЯ ЯЗЫКОВ WEB-ПРОГРАММИРОВАНИЯ
2.1 Клиентские языки
Клиентские языки обрабатываются на стороне клиента, то есть программы на клиентском языке обрабатывает браузер. Отсюда следует и недостаток - это то, что обработка скрипта зависит от браузера пользователя, и пользователь имеет полномочия настроить свой браузер так, чтобы он вообще игнорировал написанные вами скрипты. При этом, если браузер старый, он может не поддерживать тот или иной язык или версию языка, на которую вы опираетесь. Преимущество же клиентского языка заключается в том, что обработка скриптов на таком языке может выполняться без отправки документа на сервер.
Достоинством клиентских языков программирования является то, что нет необходимости отправлять веб-документ для обработки на сервер. Эта особенность значительно повышает скорость чтения скрипта. Уменьшается трафик, что экономит деньги и снижается нагрузка на сервер. Так же нет надобности ставить дополнительное программное обеспечение для обработки скриптов, так как их обрабатывают браузеры. Подготовленный web-мастер способен установить на сайт с помощью скриптов разнообразные «фишки», которые позволяют существенно улучшить восприятие Интернет-ресурса и управление им, значительно повысить его юзабилити.
Недостатки клиентских языков программирования также вытекают из особенностей. Разные браузеры могут интерпретировать скрипты, исходя из своих индивидуальных предпочтений. Поэтому, результаты показа одних и тех же документов могут отличаться. Так же к недостаткам можно отнести и открытость кода таких языков для пользователей. Самыми распространенными клиентскими языками программирования являются: JavaScript, VBScript, ActionScript, Java.
2.2 Серверные языки
Серверные языки программирования соответственно работают на стороне сервера. Во взаимодействии с базами данных они поддерживают связь между пользователем и сервером. Получая запрос с адресом веб-документа от браузера, серверные программы связываются с базой данных. База данных отдаёт информацию о веб-странице скриптам сервера, и те обработав её, отсылают для интерпретации браузеру клиента, который и выводит результат совместной работы на монитор.
Достоинством
серверных языков является безграничные возможности и то, что их работа не
подвержена воздействию пользователей и скрыта от их взоров. Недостаток -
зависимость от программного обеспечения хостера. Так же к недостаткам можно
отнести и сложность освоения новичками серверных языков программирования. К серверным
языкам программирования можно отнести HTML, PHP, ASP, PERL, SSI, XML, DHTML,
XHTML.
3 КЛАССИФИКАЦИЯ БАЗ ДАННЫХ
База данных (БД) - это представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.
Существует огромное количество разновидностей баз данных, отличающихся по различным критериям:
1) по характеру хранимой информации базы данных делятся на:
- фактографические базы данных - это картотеки, где хранится краткая информация в строго определенном формате;
- документальные базы данных - это архивы, где хранятся всевозможные документы, это могут быть не только текстовые документы, но и графика, видео и звук (мультимедиа).
2) по способу хранения данных делит базы данных на:
- централизованные базы данных - где вся информация хранится на одном компьютере;
- распределенные базы данных - используются в локальных и глобальных компьютерных сетях;
- неоднородная база данных - фрагменты распределённой базы данных в разных узлах сети поддерживаются средствами более одной системы управления базами данных;
- однородная база данных - фрагменты распределённой базы данных в разных узлах сети поддерживаются средствами одной и той же системы управления базами данных;
- фрагментированная или секционированная база данных - методом распределения данных является фрагментирование (партиционирование, секционирование), вертикальное или горизонтальное;
- тиражированная база данных - методом распределения данных является тиражирование (репликация).
3) по структуре организации данных:
- реляционная база данных;
- иерархическая база данных;
- сетевая база данных;
- объектная и объектно-ориентированная базы данных;
- объектно-реляционная база данных;
- функциональная база данных.
4) по среде постоянного хранения:
- во вторичной памяти, или традиционная - в ней средой постоянного хранения является периферийная энергонезависимая память (вторичная память), как правило, жёсткий диск;
- в оперативную память система управления базами данных (СУБД) помещает лишь кэш и данные для текущей обработки;
- в оперативной памяти - все данные на стадии исполнения находятся в оперативной памяти;
- в третичной памяти - в ней средой постоянного хранения является отсоединяемое от сервера устройство массового хранения (третичная память), как правило, на основе магнитных лент или оптических дисков;
- во вторичной памяти сервера хранится лишь каталог данных третичной памяти, файловый кэш и данные для текущей обработки; загрузка же самих данных требует специальной процедуры.
5) по содержимому:
- географическая база данных;
- историческая база данных;
- научная база данных;
- мультимедийная база данных и так далее.
4 РЕАЛИЗАЦИЯ ИНФОРМАЦИОННО-ОБУЧАЮЩЕГО ПОРТАЛА
4.1 Описание интерфейса
Для создания информационно-изучающего портала «Модные причёски» была выбрана блочная структура, состоящая из шести основных блоков, которые изображены на рисунках 1, 2, 3, 8, 9 и 10.
1) Шапка сайта «header» - это блок, который расположен в самой верхней части Интернет-ресурса, имеет неизменный вид и положение на всех страницах информационно-обучающее портала, а также включает в себя подборку картинок, посвящённых Модным причёскам.
Рисунок 1 - Шапка сайта
2) Меню сайта - это блок, который содержит основные пункты меню информационно-обучающего портала, которое включает в себя ссылки на другие страницы портала. Данный блок также будет иметь неизменный вид и структуру на всех страницах сайта.
Рисунок 2 - Меню сайта
3) Левая колонка «sidebar» - это блок, который включает в себя следующие вкладки:
- вкладка «Главная» - в ней содержатся новости о модных причёсках;
- вкладка «Статьи» - в ней содержатся авторские статьи о модных причёсках, которые можно изменить, а также оставить к ним свой комментарий;
- вкладка «Тест» - в ней содержатся тест-игра, которая включает в себя вопросы с вариантами ответов о модных причёсках;
- вкладка «Поиск» - в ней осуществляется поиск любых статей и новостей по ID, дате, заголовку, содержимому, времени, а также по автору в любом разделе сайта.
Левая колонка «sidebar» и вкладки, привязанные к ней представлены на рисунках 3, 4, 5, 6 и 7.
Рисунок 3 - Левая колонка «sidebar»
Рисунок 4 - Вкладка «Главная»
Рисунок 5 - Вкладка «Статьи»
Рисунок 6 - Вкладка «Тест»
Рисунок 7 - Вкладка «Поиск»
4) Правая колонка «sidebar» - это блок, который содержит форму авторизации для пользователей, а также через неё можно зарегистрироваться новому посетителю.
Рисунок 8 - Правая колонка «sidebar»
5) Блок контента - это блок, который располагается в центре структуры сайта. В нем будет размещаться основная информация о модных причёсках. В зависимости от посещенной страницы сайта пользователем, данный блок будет изменять свое содержимое.
При посещении главной страницы информационно-обучающего портала в блоке контента будут отображаться новости.
Рисунок 9 - Блок контента
6) Нижний блок «footer» - это блок, который размещается в самом низу сайта под всеми остальными блоками, имеет неизменный вид и структуру, а также содержит информацию о разработчиках данного информационно-обучающего портала.
Рисунок 10 - Нижний блок «footer»
При вводе в адресной строке браузера доменного имени сайта, пользователь перенаправляется на главную страницу сайта. Файл, который отвечает за вывод информации о главной странице называется «index.jsp».
Контент главной страницы информационного портала является динамическим и поэтому размещается в таблицах базы данных. Все остальные страницы Интернет-ресурса имеют ту же структуру, что и файл index.jsp, контент также выводится из базы данных.
В реализации данного информационного портала была использована реляционная база данных «MicrosoftAccess».
MicrosoftAccess - это совокупность связанных между собой таблиц. База данных MicrosoftAccess обладает следующими преимуществами:
- легкость в настройке;
- простота в работе.
Все вышеперечисленные преимущества сделалиMicrosoftAccess стандартом баз данных для небольших задач.
Структура базы данных MicrosoftAccess представлена на рисунке 11.
Рисунок 11 - Структура базы данных «MicrosoftAccess»
В базе данных MicrosoftAccess для хранения данных были созданы таблицы «Comments», «News», «Paper», «Test», «Users». Каждая таблица содержит уникальные поля. Поля для таблицы «News» представлены ниже:
- поле с уникальным номером «id»;
- поле с датой публикации «datenew»;
- поле с заголовком новости «head»;
- поле с содержимым новости «content»;
- поле с временем публикации новости «timenew»;
- поле с автором новости «username.
Таблица «News» представлена на рисунке 12.
Рисунок 12 - Таблица «News»
На сайте информационного портала представлены семь отдельных страниц для просмотра пользователем, помимо главной страницы:
- Дизайн ногтей;
- Макияж;
- Модные причёски;
- Статьи;
- Тест;
- Поиск;
- Регистрация.
Каждая страница хранится в виде отдельного файла на сервере, а из базы данных подгружается только содержимое.
Страница «Регистрация» представлена на рисунке 13.
Рисунок 13 - Страница «Регистрация»
На данной страннице Интернет-портала пользователь может зарегистрироваться в системе под своим логином и паролем, это нужно для того, чтобы иметь возможность оставлять комментарии под записями.
Страница «Модные причёски» представлена на рисунке 14.
Рисунок 14 - Страница «Модные причёски»
Главная страница панели администратора изображена на рисунке 15
Рисунок 15 - Панель администратора
Помимо администратора, в системе присутствуют модераторы, которым установлены права на редактирование статей и комментариев. К странице admin.jsp при помощи функции «include» подсоединяется база данных с таблицами для редактирования. Администратору доступно редактирование данных на шести страницах портала, а также добавление нового материала.
Страница редактирования данных пользователей представлена на рисунке 16
Рисунок 16 - Редактирование пользователей
Доступ в панель администратора имеет пользователь (администратор), у которого есть логин и пароль для входа в неё и соответствующие права доступа. Логин и пароль хранятся в базе данных в таблице «Users».
Таблица «Users» представлена на рисунке 17
Рисунок 17 - Таблица «Users»
4.1.2 Web-дизайн. Дизайн Интернет-ресурса проектируется на начальной стадии проекта. Необходимо определить ширину сайта, используемый шрифт, тип отображения сайта, высоту и ширину основных блоков и цветовую гамму.
Для данного проекта был выбран наиболее часто используемый тип визуализации - «сайт с фиксированной шириной», который позволяет вне зависимости от разрешения экрана выводить контент сайта, наиболее удобный для пользователя. Ширина сайта составляет 1024 px, что позволяет корректно отображать Интернет-ресурс даже на мониторе с разрешением 1024x768 px.
Главным шрифтом информационно-справочного ресурса был выбран «Verdana», наиболее читаемый и имеющийся в стандартном пакете Windows, что, в свою очередь, даёт возможность корректно отображать текстовую информацию на сайте большинства устройств.
При разработке Интернет-ресурса была использована каскадная таблица стилей второго поколения - CSS2, которая даёт широчайший спектр возможностей для нужного отображения элементов.
Все необходимые стили, размеры и варианты отображения элементов информационного портала были занесены в отдельный файл - style.css.
Также при разработке был использован стандарт языка разметки гипертекста HTML4, что, в свою очередь, позволило более точно и понятней структурировать сайт. Данный стандарт эффективен при продвижении сайтов в поисковых системах, позволяет более четко структурировать код сайта, эффективен в плане кроссбраузерной верстки.
Сочетание HTML4 и CSS2 дало возможность разработать современный дизайн и интуитивную структуру сайта, что впоследствии даст возможность с легкостью его редактировать.
Дизайн информационно-образовательного ресурса представлен на рисунке 18.
Рисунок 18 - Дизайн информационного портала
4.1.3 Файловая структура Интернет-портала. На этапе проектирования формируется файловая структура, которая является одним из важнейших аспектов в процессе разработки информационно-справочного ресурса.
Все файлы проекта хранятся в отдельной папке на сервере. Файловая структура содержит в себе несколько других папок, в которой хранятся файлы, каждый из которых отвечает за свой элемент на сайте. Наиболее важными файлами являются файлы скриптов, отвечающих за работоспособность Интернет-ресурса, а также графические изображения и файлы стилей.
Правильная разработка файловой структуры позволяет в дальнейшем быстрее находить необходимые файлы и легче ориентироваться в иерархии папок.
Файловая структура информационно-справочного ресурса представлена на рисунке 19.
Рисунок 19 - Файловая структура информационного портала ресурса
ЗАКЛЮЧЕНИЕ
Проделав данную курсовую работу, были применены теоретические и практические навыки по дисциплине «Современные Интернет-технологии». Был разработан информационно-справочный портал «Модные причёски», который отображает достоверную информацию для будущих дизайнеров-модельеров о модных причёсках.
Также в ходе выполнения данной курсовой работы были рассмотрены и изучены различные требования для разработки информационно-обучающего портала, была определена и проанализирована предметная область, выделены основные компоненты сайта.
Далее были проанализированы и выбраны средства, а также требования для разработки данного информационно-обучающего портала «Модные причёски».
Кроме этого, были предложены инструментальные средства разработки сайта, предназначенные для того, чтобы данный информационно-справочный портал собирал широкий круг посетителей для ознакомления материала о модных причёсках.
В основе разработки данного информационно-обучающего портала были использованы следующие языки программирования и разметки, такие как HTML, CSS, JSP и MicrosoftOfficeAccess.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Верещагин, С.А. Perl& XML. Библиотека программиста. / С.А. Верещаг. - СПб.: Питер, 2012 г. - 208 c.
2. Вишневский, А.В., Информатика. Учебное пособие. / А.В. Вишневский. - М.: ХГУ, 2008 г. - 278 с.
3. Воронина, Л.И. Основы программирования на языке Perl. / Л.И. Воронина. - М.: Радио и связь, 2010 г. - 144 c.
4. Высоковский, К.В. Perl. Библиотека программиста. / К.В. Высоковский. - СПб.: Питер, 2010 г. - 249 c.
5. Галкин, С.Е. Бизнес в Internet. / С.Е. Галкин. - М.: Центр, 2008 г. - 247 с.
6. Глицкин, А.А. Perl. Сборник рецептов. Для профессионалов. / А.А. Глицкин. - СПб.: Питер, 2008 г. - 219 c.
7. Гутцайт, Е.М. Perl. Наглядный курс программирования. / Е.М. Гутцайт. - М.: Диалектика, 2009 г. - 280 c.
8. Гутцайт, Е.М. Программирование на Perl. / Е.М. Гутцайт. - СПб.: Символ-Плюс, 2008 г. - 270 c.
9. Даль, В.Е. PHP. 75 готовых решений для вашего сайта. / В.Е. Даль. - СПб.: Наука и техника, 2009 г. - 256 c.
10. Каймин, В.А. Информатика. Учебник для студентов. / В.А. Каймин. - М.: ИНФРА-М, 2008 г. - 423 с.
ПРИЛОЖЕНИЕ А
(обязательное)
Листинг Файла index.jsp
<%@page import="java.text.SimpleDateFormat"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.security.NoSuchAlgorithmException"%>
<%@page import="java.math.BigInteger"%>
<%@page import="java.security.MessageDigest"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta HTTP-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>JSP Page</title>
</head>
<body>
<%session.setAttribute("last", request.getRequestURI());%>
<script>
window.onload = function() {
varmainDivs = document.getElementsByClassName("container");
varmaxHeight = 0;
for (vari = 0; i<mainDivs.length; ++i) {
if (maxHeight<mainDivs[i].clientHeight) {
maxHeight = mainDivs[i].clientHeight;
}}for (vari = 0; i<mainDivs.length; ++i) {
mainDivs[i].style.height = maxHeight + "px";
};}</script>
<%
//Считываниекуки
try {
String name = null, pass = null;
Cookie[] arr = request.getCookies();
if (arr != null) {
for (inti = 0; i<arr.length; i++) {
if (arr[i].getName().equals("logincookie")) {
name = arr[i].getValue();
}if (arr[i].getName().equals("passcookie")) {
pass = arr[i].getValue();
}}session.setAttribute("logincookie", name);
}} catch (Exception e) {
out.println(e);}
//считываниеизбдинформацииобаккаунте
ResultSetrs;
Connection con=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Nextmap\\Documents\\NetBeansProjects\\kursach\\web\\base\\base.mdb;}";
con = DriverManager.getConnection(URL, "root", "root");
String sql = "select * from Users WHERE login='"+session.getAttribute("logincookie")+"'";
Statement s = con.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);;
s.executeQuery (sql);
rs = s.getResultSet();
ResultSetMetaDatarsmd=rs.getMetaData();
int col=rsmd.getColumnCount();
rs.last();
int row=rs.getRow();
rs.beforeFirst();
String[][] lol2 = new String[row][col];
for(inti=0;i<row;i++)
{rs.next();
for (int j=0;j<col;j++){
lol2[i][j]=rs.getString(j+1);
}}session.setAttribute("flag", lol2[0][13]);
session.setAttribute("ban", lol2[0][16]);
rs.beforeFirst();
rs.close();
s.close();
con.close();}
catch (Exception e){}
%>
<div id="page" class="border round">
<div id="header" class="border round">
<jsp:include page="include/header.jsp"/>
</div>
<div class="border">
<jsp:include page="include/menutop.jsp"/>
</div>
<div id="main" class="container">
<div id="left" class="container border">
<jsp:include page="include/menu.jsp"/>
</div>
<div id="right" class="container border">
<form id="right" name="right">
<%
//Различные переменные, ибо нельзя обьявить в условии
int flag = 0;
String login=new String("");
String pass=new String("");
String userlogin= request.getParameter("login");
String userpassword= request.getParameter("password");;
Connection connection=null;
String raw = userpassword;
String output = null;
String sess = session.getAttribute("logincookie")+"";
if (sess.equals("null") || sess.equals(null)){%>
<h1>Вход</h1>
<h4>Введителогин:</h4>
<input name="login" type="text" />
<h4>Введитепароль:</h4>
<input name="password" type="password" />
<div id="click" class="small round border indianred" onclick="right.submit();">
Войти
</div>
<%
//кодировка
if (raw != null)
try {
MessageDigest md;
md = MessageDigest.getInstance("MD5");
md.update(raw.getBytes(), 0, raw.length());
output = new BigInteger(1, md.digest()).toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}//подключениебд
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Nextmap\\Documents\\NetBeansProjects\\kursach\\web\\base\\base.mdb;}";
connection = DriverManager.getConnection(URL, "root", "root");
String sql = "select * from Users where login='"+userlogin+"' and pass='"+output+"'";
Statement s = connection.createStatement();
s.executeQuery (sql);
rs = s.getResultSet();
while (rs.next ()){
login=rs.getString("login");
pass=rs.getString("pass");
}rs.close ();
s.close ();
}catch(Exception e){
out.println("Exception is ;"+e);
}if (userlogin != null)
if(login.equals(userlogin) &&pass.equals(output)){
//созданиепеченекприуспешномвходе
Cookie c = new Cookie("logincookie", request.getParameter("login"));
Cookie c1 = new Cookie("passcookie", request.getParameter("password"));
c.setMaxAge(7 * 24 * 60 * 60);
c1.setMaxAge(7 * 24 * 60 * 60);
response.addCookie(c);
response.addCookie(c1);
out.println("<meta HTTP-EQUIV='Refresh' content='0'>");
}else
//неуспешныйвход
if (request.getParameter("login")!= "")
out.println("Вы не зарегистрированы в системе");%>
<div id="click" class="small round border indianred" onclick="location.href='register.jsp';">
Регистрация
</div><%}
else{
out.println("<h4>" + session.getAttribute("logincookie") + "</h4>");%>
<div id="click" class="small round border indianred" onclick="if(confirm('Выдействительнохотитевыйти?')){ document.cookie='logincookie=null; expires=Mon, 01-Jan-2001 00:00:00 GMT'; alert('Выходпроизведёнуспешно');} right.submit();">
Выйти
</div>
<div id="click" class="small round border darkorange" onclick="location.href='userpage.jsp';">
Панельпользователя
</div>
<%
String flagstr = session.getAttribute("flag")+"";
if (!flagstr.equals("null"))
flag = Integer.valueOf(flagstr);
if (flag>=1){
%>
<div id="click" class="small round border darkorange" onclick="location.href='admin.jsp';">
<%if (flag==2){out.println("Администрирование");}else{out.println("Модерaция");}%>
</div><%}}
if(session.getAttribute("logincookie")!=null&&session.getAttribute("logincookie")!="null"){
java.text.DateFormatdf = new java.text.SimpleDateFormat("yyyy.MM.dd");
String date = df.format(new java.util.Date());
java.text.DateFormattf = new java.text.SimpleDateFormat("HH:mm:ss:S");
String time = tf.format(new java.util.Date());
String URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Nextmap\\Documents\\NetBeansProjects\\kursach\\web\\base\\base.mdb;}";
con = DriverManager.getConnection(URL);
java.sql.Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String insertData1 = "UPDATE Users SET datelast='"+date+"', timelast='"+time+"' WHERE login='"+session.getAttribute("logincookie")+"'";
stmt.executeUpdate(insertData1);
stmt.close();
con.close();
}%>
</form>
</div>
<div id="center" class="container border">
<form id="cent" name="cent" >
<%
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Nextmap\\Documents\\NetBeansProjects\\kursach\\web\\base\\base.mdb;}";
con = DriverManager.getConnection(URL, "root", "root");
String sql = "select * from news ORDER BY id DESC";
Statement s = con.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);;
s.executeQuery (sql);
rs = s.getResultSet();
ResultSetMetaDatarsmd=rs.getMetaData();
int col=rsmd.getColumnCount();
rs.last();
int row=rs.getRow();
rs.beforeFirst();
String[][] lol = new String[row][col];
for(inti=0;i<row;i++)
{rs.next();
for (int j=0;j<col;j++)
{lol[i][j]=rs.getString(j+1);
}}rs.beforeFirst();
rs.close();
s.close();
con.close();
introwout = 0;
%>
<div id="noclick" class="border round" style="background-color: pink;">
<%
do {
%><divid="click" class="border round salmon" onclick="location.href='selectnew.jsp?id=<%out.println(lol[rowout][0]+"';");%>"><div id="click" class="border round tomato"><%out.println("Дата: "+lol[rowout][1]+" Время: "+lol[rowout][4]+" Автор: "+lol[rowout][5]+"</div>" + lol[rowout][2]);%></div><%
rowout++;
} while (rowout != row);}
catch (Exception e){
out.println("Ошибка при инициализации базы"+e);}
%>
</div>
</form>
</div>
</div>
<div id="footer" class="border round">
<jsp:include page="include/footer.jsp"/>
</div>
</div>
</body>
</html>