КАПУСТА: почитай,обсуди,отдохни!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » КАПУСТА: почитай,обсуди,отдохни! » Java » Обзор веб приложения на java.


Обзор веб приложения на java.

Сообщений 1 страница 4 из 4

1

1 Http и Сервлет.

Итак начнем с основ.

Веб сервис отвечает на ряд запросов по протоколу http рядом ответов.

Самый простой вариант это статические страници, при обращении к которым сервер просто передает их содержимое.

Следующий в истории протокол CGI http://ru.wikipedia.org/wiki/CGI

Пользователь обращается к серверу с указанием URL и ряда параметров.

Сервер запускает программу находящуюся по адресу содержащемуся в URL, передает ей на вход (stdin) параметры,
ее вывод (stdout) направляется клиенту. По такой схеме работает PHP, Perl. Так же может работать С программа
или даже относительно простой sh/bat скрипт.

Теперь собственно к яве. В яве существует понятие servlet. http://java.sun.com/j2ee/1.4/docs/api/j … rvlet.html

Сервлет это обьект обладающий методом service
public void service(ServletRequest req,
                    ServletResponse res)
             throws ServletException,
                    java.io.IOException

При обращении клиента явовский сервер определяет какой именно сервлет должен быть вызван (см web.inf позже).

И вызывает у него метод service (существуют более специфично названые методы doGet doPost но суть не меняется).

При вызове service сервлету предоставляются 2 обьекта ресализующие интерфейсы ServletRequest и ServletResponse соответсвенно.
http://java.sun.com/j2ee/sdk_1.3/techdo … quest.htmlhttp://java.sun.com/j2ee/sdk_1.3/techdo … ponse.html
ServletRequest содержит параметры вызова и заголовки http (например cookie).
ServletResponse предоставляет выходной поток.
public ServletOutputStream getOutputStream()
                                    throws java.io.IOException

Данные записаные в выходной поток отправляются клиенту.

Существенно, что в отличии от CGI, где программа при каждом вызове запускается заново, сервлет сохраняет свое состояние между вызовами.
Также надо понимать что сервлет может быть вызван несколькими клиентами одновременно. Следовательно при его написании следует следить за
конкурентной работой с данными.

2 Размещение и web.xml - мапировка сервлетов

При размещении (deployment) приложения в сервер (например tomcat) для модулей публикуемых в сети должен быть предоставлен файл
web.xml хранящийся в папке WEB-INF. http://edocs.bea.com/wls/docs61/webapp/web_xml.html

В файле для каждого сервлета описывается при обращении какому URL сервлет должен быть вызван.

<servlet>
  <servlet-name>Awakening</servlet-name>
  <display-name>Awakening servlet</display-name>
  <servlet-class>ru.awakening.servlet.Awakening</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Awakening</servlet-name>
  <url-pattern>/Awakening</url-pattern>
</servlet-mapping>

В данном примере говорится о том что при обращении по URL /Awakening, где "/" - головная директория в которую размещается проект,
Будет запущен сервлет ru.awakening.servlet.Awakening.

3 JSP - Java Server Pages

JSP содана чтобы предоставить програмисту возможности подобные возможностям PHP и подобных языков, оставляя его в рамках ява проекта.

JSP состоит из кусков текста (html) который выводится пользователю без изменений, и кусков ява кода.

JSP мапируются в web.xml как и сервлеты, но по умолчанию доступны по своему физическому расположению в рамках проекта (также как и программы в cgi)

JSP преобразовываются в сервлет специальным компилятором при обращении.
Далее сервлет обрабатывается также как обычные сервлеты и обладает всеми темиже свойствами.

При каждом обращении сервер проверяет не был ли изменен JSP файл. Если файл был изменен, сервер перекомпилирует его и заменяет ранее скомпилированный сервлет,
что позволяет менять страницу без перезапуска всего проекта.

JSP обладает базовым набором тегов http://java.sun.com/products/jsp/tags/11/tags11.html.
Также можно подключить теги из библиотек тегов TDL http://khpi-iip.mipk.kharkiv.edu/librar … Tags5.html

PS это далеко не все технологии используемые в реальных приложениях, но только краткий обзор того, что специфично именно для web приложений.

Отредактировано Hedin (Mon:19,November,2007 18:47:44)

0

2

Спасибо, весьма интересно, но многое не понятно, не мог бы ты выложить какой нтбудб простенький примерчик с обьяснениями?  :)

0

3

Многое будет понятно по прочтении всех приведенных ссылок.

Что именно не понятно? кину пример из авакенинга.

0

4

НУ насчет простоты это будет спорно, зато действительно после проочтения кода Авы стоновится все ясно

0


Вы здесь » КАПУСТА: почитай,обсуди,отдохни! » Java » Обзор веб приложения на java.