Java Servlet Ръководство за начинаещи

Java Servlet е програма от страната на сървъра, написана на същия език за програмиране, която приема сигнали от клиента и изпраща обратно отговори. Това е ключовият елемент, който генерира типична Java EE, с изключение на JSP, EJB, XML и други свързани технологии. Приложението може да бъде опаковано във файл WAR (Web AR chive) за разполагане на уеб сървър. Сървър, който може да стартира Java сървлет, се нарича контейнер. Програма, която работи на такъв сървър, може да създава динамични уеб страници.

Java Servlet: Основи

Най-известните и широко използвани са контейнерите Tomcat и JBoss. Технически, сървлетът е нормален Java клас, който има разширение за общия протокол клиент-сървър или HTTP. На практика тя се използва за обработка на заявки чрез предефиниране на HETT и SOCET, съответно. Контейнерът на Servlet Java осигурява Http.ServletRequest и Http.ServletResponse - обект на заявка /отговор, който обикновено се използва заедно с JSP за генериране на динамично съдържание.


Типичен скрипт на модела:
  • JSP предоставя на потребителя формуляр за въвеждане на данни
  • Servlet получава входящи данни, обработва ги и изпраща отговор
  • За висококачествена работа, той използва специални филтри
  • Java Servlet Filters са свързани. Java компоненти, използвани за прихващане и обработване на заявки, преди да ги изпратят на сервлети и idpovidi след код си и пред съда изпраща отговор на клиента Общи задачи, изпълнявани с филтри:
  • .Регистриране на параметрите на заявката за регистрация на файлове.
  • Удостоверяване и разрешаване на заявки за ресурси.
  • Форматирайте тялото на заявката или заглавието, преди да го изпратите на сървлета.
  • Компресиране на данните за отговор, изпратени на клиента.
  • Промяна на отговора, добавяне на някои бисквитки.
  • Информация за заглавката на Java Servlet.
  • Филтрите са свързани и конфигурирани в дескрипторния файл на разгръщането (web.xml). Сървърите и филтрите не се познават, така че можете да добавяте или премахвате филтър, като просто редактирате web.xml. Разрешено е да имате множество филтри за един ресурс или да създадете филтърна верига за web.xml или да изпълните Java Servlet филтри, като реализирате интерфейса javax.servlet.Filter.


    Основни функции Servlet

    Паралелните заявки за сървъри се предават поточно, осигурявайки важна уеб-базирана мулти-резба и паралелизъм. Основни характеристики:
  • Преносимост. Тъй като Java е независима от платформата, същото важи и за сервлетите. Например, можете да го създадете в операционната система Windows, така че разработчиците на GlassFish да го използват като уеб сървър и след това да го изпълняват на всяка друга операционна система, като Unix, Linux и уеб сървъра на apache Java Servlet. Тази функция го прави преносим и това е неговото основно предимство пред CGI.
  • Ефективност и скалируемост. След като Servlet се разгърне и изтегли на сървъра, той може незабавно да започне да изпълнява клиентски заявки. Той се извиква от светлинен поток, така че едновременно могат да се попълват няколко клиентски заявки, като се използва функциятамногонишковост Java. За разлика от CGI, където сървърът инициира нов процес за всяко клиентско запитване.
  • Надеждност. Следвайки най-добрите Java функции като събиране на боклука, обработка на изключения, Java мениджър по сигурността и други, това е по-малко склонно към проблеми с управлението и изтичане на паметта. Това прави развитието на приложението безопасно и без грешки.
  • Необходимост от използване на динамични уеб страници

    Съществуват много причини, поради които даден бизнес би желал да създаде динамични уеб-страници "на летището", например когато данните на даден уебсайт често се променят. Сайтовете за новини и времето обикновено разчитат на CGI, за да поддържат ново съдържание, което не изисква постоянно внимание от разработчиците. Уеб страниците за електронна търговия, които изброяват текущите цени и нивата на складовите наличности, използват CGI, за да получават съдържание при поискване, получавайки го от вътрешната инфраструктура на компанията.
    Много потребители имат опит в използването на Java технологията за създаване на CGI-базирани уеб услуги, но Java Servlets са по-ефективни, мощни, по-лесни за използване и по-евтини от традиционните CGI алтернативи. Предимства на Java Servlets:
  • Ефективност. В традиционния CGI, всяка HTTP заявка стартира нов CGI процес. Дори ако кодът му е напълно реализиран, често има значително количество непредвидени разходи, не само когато процесът е стартиран, но и по време на неговото изпълнение. Когато се използват сервлети, JVM остава заредена в паметта и всяка заявка се обработва от Java потока. Като пример за Java Servlet, ако в традиционния CGI модел има няколко едновременни X заявки, това означава, чекодът за програмата се зарежда в паметта X пъти. Това става претоварване на уеб сървъра. Въпреки това, в сървлет средата има потоци X, където се стартира само едно копие от неговия клас. Резултатът е повишена ефективност и мащабируемост на множество платформи.
  • Удобство. Когато използвате програмата, няма смисъл да научите нов език, например Perl, само за да изпълнявате CGI функции. Освен това сервлетите имат голяма инфраструктура за много HTML задачи, което значително ускорява процеса на разработка.
  • Мощност - за съжаление, традиционните CGI скриптове оставят много да се желаят. Например, обичайните им програми не могат да говорят директно на уеб сървърите, което означава, че трябва да създадете целия интерфейс. Сервлетите могат да взаимодействат директно с уеб сървърите чрез опростяване на операциите, които изискват директен достъп до складове за данни. Те също са уникални, защото могат да обменят данни с други сервлети и да поддържат информация между заявките, което прави проследяването на сесиите изключително лесно.
  • Преносимостта на Jav се разпростира директно към сервлетите. Всъщност, почти всеки голям уеб сървър, който се използва в момента, поддържа Java Servlets или директно или чрез модул.
  • Икономика. От гледна точка на развитието, реализацията на сервлетите е много по-евтина от другите опции, които изискват потребителски дефинираните кодировки да работят правилно с уеб сървърите. Java Servlet redirect е готова за работа и може да минимизира разходите за бизнес, без да жертва ползите от динамикатасъдържание.
  • Създаване на структура на директория

    За да започнете, създайте следната структура на директория.
    Къде в папката:
  • Deploy - поставете създадения файл.
  • Src - Поставете изходните файлове на пакета Java net.codejava.servlet.
  • WebContent - Запазване на JSP страници и други уеб ресурси.
  • WebContent WEB-INF - Дескрипторът web.xml е инсталиран.
  • WebContent WEB-INF - съставени класове.
  • След това създайте изходен файл с име Java QuickServlet.java в директорията на src net codejava със следния код.
    Този сървлет извиква няколко метода от HttpServlet:
  • init () - ще извика метода, когато се свързва с първия клиент. Обикновено тук се въвежда код за инициализация.
  • doGet () - работи всеки път, когато HTTP заявка е GET.
  • Servlet въвежда два елемента:
  • HttpServletRequest - Обектът обгръща всички хедъри на HTTP заявки, за да получи контрол над GET /POST параметрите, както и други HTTP заглавия, изпратени от клиенти чрез методите getParameter () и getHeader ) съответно.
  • ​​
  • HttpServletResponse - използва се за отговор на HTTP заявка, изпълнява конфигурацията на заглавията на отговорите и изпраща обратно HTML съдържание на потребителя. Методът doGet () изпраща прост HTML код, който предава съобщение, например "Здравейте, аз съм Java Servlet!".
  • Метод за изпълнение на клиентски заявки:

  • DoPost () - извиква по времето, когато потребителят поиска HTTP POST.
  • DoGet () - Разбира Http.ServletRequest и Http.ServletResponse като аргументи. В този случай стойностите на двата параметъра за ширина и височина на правоъгълника се получават от заявката за изчисляване на площта и изпращанерезултата обратно на клиента.
  • Destroy () - Контейнерът ще го извика, когато трябва да изтрие Java ee Servlet.
  • Страници за писане на JSP

    Създайте файл с име index.jsp под директорията WebContent със следното съдържание.
    На тази страница JSP:
  • Поставете хипервръзка с атрибута href = Quick.Servlet, който указва относителния път на сървлета и URL за него.
  • Щраквайки върху тази връзка, те получават HTTP GET заявка към сървъра и методът doGet () ще бъде извикан.
  • За да демонстрират изпращането на HTTP заявка, те създават опростен формуляр с две текстови полета: ширина и височина.
  • Атрибутът на формата в действие се задава на относителна пътека.
  • Бутонът "Изпращане" се нарича "Изчисли".
  • Страницата JSP ще изглежда така.

    Java web servlet съобщения и настройки

    За да може сервлетът да обслужва потребителски заявки, трябва да декларирате и конфигурирате неговото картографиране в уеб дескрипторния файл. Създайте XML файл с разширението web.xml под WEB-INF директорията на WebContent със следния XML код.
    Очевидно е, че сървлетът се декларира, използвайки елемент и неговите дъщерни елементи, които определят описателното име за него и определят пълното име на класа. Той е конфигуриран да обслужва заявки с помощта на елемент и негови детски части, които определят името, декларирано с елемента и URL модела, който да бъде съпоставен със сервлета. Шаблонът може да бъде точно съвпадение на директорията.

    Извършване на компилация

    Преди да завършите компилацията, уверете се, чепроменливият PATH среда, която включва каталог JDK_HOMEbin, така че можете да получите достъп до командния ред и да имат на разположение файл, който обикновено се осигурява от контейнера за сървлет. При използване на Tomkat файл се поставя в TOMCAT_HOMElib обади. Open командния ред на операционната система и промяна на работната директория на QuickServlet, както е посочено в структурата. Въведете следната команда:. Javac -СР TOMCAT_HOME ИЪ сървлет-api.jar "-d CLASS_DIR SRC_DIR QuickServlet.java Заменя имена TOMCAT.HOME, CLASS_DIR и SRC_DIR на стойност:. TOMCAT_HOME Тя Регулиране директория на вашия компютър в папка Ако пътят съдържа. пропуски, да я тури, както следва:.. CLASS_DIR = WebContent уеб-INF класове SRC_DIR = SRC нетна codejava сървлет Този отбор skompylyruet QuickServlet.java файл и да поставят на генерираните .class класове WebContent уеб-INF

    Опаковки уеб приложения

    Стандартният начин за разполагане на Java EE приложения е разширяването на опаковката война. В инжектиран екипа на командния ред винаги завършва с точка:
  • jarcfvdeployQuickServletApp.war -C WebContent.
  • В буркана ще постави всичко това в една директория в цип архив формат, наречен Quick.ServletApp.war под директорията. Сега разполагане Quick.ServletApp.war файл на сървъра, за да копирате в Tomcat. Стартирайте програмата, като пуснете директория Tomcat 7.exe. След като влезете в конзолата показва, че Quick.ServletApp.war разширява файлов сървър и връзки на порт номер 8080.

    , извършваща QuickServletApp

    Сега отворете уеб браузъра си и въведете следния текст в адресната лента: HTTP: //Local: 8080 /QuickServletApp. Тъй като не посочи конкретен страница като index.jsp по подразбиране зарежда самостоятелно. За да проверитеServlet иска HTTP GET, кликнете върху хипервръзката "Кликнете тук, за да изпратите GET заявка." За да го тествате с HTTP POST заявка, щракнете върху бутона на браузъра на браузъра и въведете две цифри в ширината и височината на текстовите полета. Кликнете върху бутона "Изчисли" и той ще върне изчисления резултат.

    Примери за Tomcat

    Servlet е Java компонент, управляван от контейнера, например Tomcat, който генерира динамично съдържание в отговор на клиентско искане. Контейнер или сървлет е разширение на уеб сървър, който осигурява функционалност на сървлетите. Контейнерът съдържа и управлява сервлетите през целия му жизнен цикъл. Servlet интерфейс - централната Java API абстракция. HttpServlet - най-често срещаният сървър, обслужващ HTTP заявки, е подкласът, GenericServlet, който реализира Servlet интерфейса. Самият интерфейс Servlet обявява тези абстрактни методи. Жизнен цикъл на Servlet: voidinit (конфигуриране на Servlet.Config) voiddestroy () заявка за voidservice Java Servlet заявка, отговор Servlet.Response) Конфигурация и информация за Servlet: servService.Config getServlet.Config () Линията getServlet.Info ().

    Java сървърни функции

    JSP е друг ефективен начин за създаване на динамично уеб съдържание чрез Java. Най-лесният начин да се обясни разликата между тях е да се признае, че сървлетът е HTML в Java, а JSP в Java в HTML. И двата метода са ефективни и могат да се използват самостоятелно, но има няколко разлики:
  • Като цяло сервлетите работят по-бързо от JSP, но JSP може да се компилира в Java сървлети.
  • Уеб разработчикът на Java трябва да е запознат с двете технологии и с тяхвзаимно се допълват в едно изпълнение.
  • Много функции на JSP могат да бъдат постигнати от страна на клиента, използвайки javascript. Това намалява натоварването на сървъра по време на максимално използване и често е метод, използван от големи предприятия с постоянно висок трафик.
  • Въпреки че самостоятелните Java приложения достигнаха върха си преди няколко години, динамичното уеб-базирано Java базирано съдържание все още е в голямо търсене от страна на компании от цял ​​свят. Ако в момента потребителят не използва Java Servlet за създаване на динамично съдържание, той губи интересно поле с неограничени възможности за кариера.

    Свързани публикации