03cac167680b1b6b110b23cdee5c0157.ppt
- Количество слайдов: 30
Java Web Applications and Deployment Borislava Spasova Java Web Developer Acsior Ltd. www. acsior. com Svetlin Nakov National Academy for Software Development academy. devbg. org
Съдържание 1. Използване на сървъра Tomcat • Какво е Web Container? • Какво е Tomcat? • Инсталиране и конфигуриране на Tomcat • Структура на директориите на Tomcat • Java Web Приложения • Структура на уеб приложения и WAR файлове • Deployment Descriptor (web. xml) • Мапване на Servlet към URL; Invoker Servlet • Създаване на уеб приложения и deploy-ването им на Tomcat
Използване на сървъра за Уеб Приложения Tomcat
Какво е Web Container? • Web containers са сървърни Java приложения • Предоставят среда за изпълнение на Java Web приложения, servlets, JSP, etc. • Web container-ите: • Подържат жизнения цикъл на servlet-ите – извикват do. Get(…) и do. Post(…) методите им • Предоставят отделна нишка за изпълнението на всеки request • Дават на servlet-а HTTP request-а и връщат response-а на клиента • Tomcat е пример за Web container
Какво е Tomcat? • Apache Tomcat е бесплатен сървър за Java Web приложения с отворен код • Java EE Web container • Може да работи като самостоятелен HTTP сървър или да бъде включен в съществуващ HTTP Server • Tomcat може да хоства: • Java Web приложения: • Servlets, JSP, custom tags, JSF • Web услуги
Интеграция на Web Container със Web Server • Web container може да бъде използван за да обработи HTTP requesт извиквайки служебен метод на Http. Servlet обект
Инсталиране на Tomcat • Tomcat може да бъде свободно свален от официалния си уеб-сайт: http: //tomcat. apache. org/ • Изисквания • Java 5 на Windows / Linux / Unix / etc. • Дистрибуции • Инсталационен пакет за Windows • Работи като Windows service • Обикнове Zip / GZip архив • Ръчно се стартира/спира със шел-скрипт
Стартиране на Tomcat • Когато е инсталиран от ZIP архив Tomcat се стартира от скрипт bin/startup. bat • JAVA_HOME environment variable трябва да сочи към инсталационна директория на JDK 5. 0: set JAVA_HOME=C: Progra~1Javajdk 1. 5. 0_06 • Избягвайте интервали в пътя! rem This space in the path will cause problems! set JAVA_HOME="C: Program FilesJavajdk 1. 5. 0_06"
Инсталиране и стартиране на Tomcat Демонстрация
Tomcat Directory Structure (във Tomcat 5. 5. 17) $CATALINA_HOME = <some_dir>/apache-tomcat-5. 5. 17 bin/ Изпълними файлове и скриптове common/ Общи класове достъпни до Tomcat и инсталирани Web приложения conf/ Конфигурационни файлове logs/ Директория за съхранение на логове server/ Вътрешни класове и техните зависимости classes/ Разархивирани класове (за вътрешна употреба) lib/ JAR файлове(за вътрешна употреба) webapps/ Web приложения за вътрешна употреба shared/ Класове споделени от web приложения classes/ Разархивирани класове за споделена употреба lib/ Класове за споделена употреба в. jar архиви
Tomcat Directory Structure (във Tomcat 5. 5. 17) webapps/ Основна директория съдържаща Web приложенията идващи с Tomcat Може да се използва за deploy-ване на приложения work/ Директория използвана от Tomcat за съхранение на временни файлове temp/ Директория използвана от Tomcat за съхранение на временни файлове (java. io. tmpdir)
Java Web Приложения Структура и Deployment
Java Web Приложения • Java Servlet спецификациите определят Web Приложенито като колекция от: • HTML страници, JSP страници и т. н. • Servlets и компилирани java класове • Ресурси (картинки, CSS, файлове, etc. ) • Web приложенията са хомогенни и могат да бъдат изпълнени на всеки Web container • Могат да се компилират във Web ARchive файл (. WAR файл)
Структура на Web приложенията • Java Web приложенията трябва да имат следната структура: webapp/ Базовата директория: Съдържа файлове достъпни от уеб: HTML, CSS, JSP, картинки, . . . WEB-INF/ Директория на Web приложението lib/ Библиотеки (JAR files) изисквани от приложението (пр. JDBC драйвер) classes/ Компилирани Java класове искани от приложението (servlets, beans. . . ) web. xml Специален конф. файл кръстен
Пример – Login / Logout Web Приложение Базовата директория на Web приложението Специална директория Класовете на приложението (вкл. Servletи) Библиотеките на приложението (e. g. JDBC drivers) Deployment descriptor (конфигурационен файл) Публично достъпни файлове (HTML, JSP, CSS, . . . )
WAR Файлове • Java Web приложенията са компилирани и опаковани в WAR файлове • WAR файловете са JAR архиви (ZIP files) които съдържат Java Web приложение • Съдържат всички файлове на приложението: • HTML, JSP други файлове • Класове и библиотеки (WEB-INF/classes/, WEB-INF/lib/) • Deployment descriptor (WEB-INF/web. xml) • Може да бъде deploy-нато на всеки Web container
WAR Файлове – Пример • Със Tomcat пристига примерен WAR file: sample. war • CATALINA_HOMEwebappstomcatdocsappdevsample. war
Разглеждане на WAR Файл Демо
Web Приложения в Tomcat • В Tomcat Web приложенията се намират в отделни директории в CATALINA_HOMEwebapps • Web приложенията се поставят в webapps директорията или като структура или като WAR архив • Tomcat deploy-ва всичко в webapps при стартиране
Разглеждане на самостоятелни Tomcat Web Приложения Демо
The Deployment Descriptor (web. xml) • Файлът <my-web-app>WEBINFweb. xml се нарича Web application deployment descriptor • Чете се когато сървъра deployва приложението • Много сървъри имат "hot deploy" опцията • Примерен формат на web. xml файл: <web-app version="2. 4" xmlns="http: //java. sun. com/xml/ns/j 2 ee" xmlns: xsi="http: //www. w 3. org/2001/XMLSchema-instance" xsi: schema. Location="http: //java. sun. com/xml/ns/j 2 ee/web-app_2_4. xsd">. . . </web-app> • Реда на елементите в <web-app> тага е от значение!
Какво се определя от The Deployment Descriptor? • Deployment descriptor-ът на Web приложение (web. xml) определя: • • Името и описанието на приложението Servlet класовете и мапингите им към URL • Параметри при инициализация на Servletи • Дефиниции и мапинги на Servlet filter-и • Параметри за контекста на приложението • Начални файлове, страници за грешки. . . • Референции към библиотеки с tag-ове • Настройки за сигурност и аутентикация
Мапване на Servlet към URL • Задаване на servlet мапингите в web. xml • Даваме името на servlet класа <servlet> <servlet-name>Login. Servlet</servlet-name> <servlet-class> com. mycompany. myproduct. web. Login. Servlet </servlet-class> </servlet> • Мапване на сървлет към URL or URL шаблон <servlet-mapping> <servlet-name>Login. Servlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
Параметри при инициализация на servlets • Добавяне на инициализационни параметри към servlets: <servlet> <servlet-name>Init. Test</servlet-name> <servlet-class>myservlets. Init. Servlet</servlet-class> <init-param> <param-name>username</param-name> <param-value>admin</param-value> </init-param> <param-name>email. Address</param-name> <param-value>admin@localhost</param-value> </init-param> </servlet> the servlet initialization parameters get. Servlet. Config(). get. Init. Parameter("username");
Примерен web. xml файл <? xml version="1. 0" encoding="UTF-8"? > <web-app version="2. 4" xmlns="http: //java. sun. com/xml/ns/j 2 ee" xmlns: xsi="http: //www. w 3. org/2001/XMLSchema-instance" xsi: schema. Location="http: //java. sun. com/xml/ns/j 2 ee/web-app_2_4. xsd"> <servlet-name>Time. Servlet</servlet-name> <servlet-class>Time. Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Time. Servlet</servlet-name> <url-pattern>/Time. Servlet</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index. jsp</welcome-file> </welcome-file-list> </web-app>
Създаване на Web приложение и deploy-ване на Tomcat 1. Създайте нова директория myapp в CATALINA_HOMEwebapps 2. Създайте поддиректории WEB-INF, -INF/classes and WEB-INF/lib WEB 3. Компилирайте Hello. Servlet. java и копирайте class файла Hello. Servlet. class в WEB-INF/classes/ 4. Копирайте файла Hello. Form. html в базовата директория myapp/ 5. Създайте deployment descriptor файла WEB -INF/web. xml
Създаване на Web приложение и deploy-ване на Tomcat(2) web. xml <? xml version="1. 0" encoding="UTF-8"? > <web-app version="2. 4" xmlns= "http: //java. sun. com/xml/ns/j 2 ee" xmlns: xsi= "http: //www. w 3. org/2001/XMLSchema-instance" xsi: schema. Location="http: //java. sun. com/xml/ns/j 2 ee http: //java. sun. com/xml/ns/j 2 ee/webapp_2_4. xsd"> <servlet-name>Hello. Servlet</servlet-name> <servlet-class>Hello. Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello. Servlet</servlet-name> <url-pattern>/Hello. Servlet</url-pattern> </servlet-mapping> </web-app>
Създаване на Web приложение и deploy-ване на Tomcat(3) 6. Използвайки Win. Zip или jar-tool, съберете цялото Web приложение в преносим Web архив (myapp. war) 7. Изтрийте директорията (Оставете само файла myapp. war в TOMCAT_HOME/webapps) 8. Стартирайте Tomcat и се увете, че приложението е deploy-нато (погледнете в конзолните логове) 9. Отворете вече deploy-натото Web приложение: http: //localhost: 8080/myapp/Hello. Form. html
Създваване на Web приложение, мапване на Servlet и Deploy-ване на Tomcat Демонстрация (ръчно, не с Net. Beans)
Въпроси?
03cac167680b1b6b110b23cdee5c0157.ppt