JavaRush /Java блогы /Random-KK /Java тіліндегі Tomcat

Java тіліндегі Tomcat

Топта жарияланған
Бір сәтте әрбір әзірлеуші ​​өз білімін іс жүзінде қолдану үшін өз жобасын жасау туралы ойлайтын жеткілікті дағдыларды алады. Веб-жобаны қабылдау оңай, өйткені веб-қосымшаны іске асыру жұмыс үстелі қолданбалары сияқты ешқандай шектеулермен шектелмейді. Клиентке тек браузер қажет және ешқандай дистрибутивтерді жүктеп алмай-ақ қолданбамен әрекеттесе алады. Тіркеусіз және SMSсіз, олар айтқандай (бірақ бұл қосымшаның өзіне байланысты). Java тіліндегі Tomcat - 1Сонымен, Java-да жақсы веб-қосымшаны енгізу үшін Tomcat деп аталатын құралсыз жасай алмайсыз. Мазмұны:

Tomcat Javarush туралы біледі

Tomcat JavaRush курсында Java Collections квестінің 9 деңгейінде оқытылады. 2 лекцияда Билаабо сізге Tomcat-ты қалай жүктеп алу және конфигурациялау , сондай-ақ бірінші веб-қосымшаны құру туралы айтып береді .

Tomcat - бұл не?

Tomcat - бұл веб-server ретінде де әрекет ететін ашық бастапқы сервлет контейнері. Бір қарағанда, Tomcat өте ауыр тақырып болып көрінеді, бірақ олай емес. Көптеген Java қолданбалары пәрмен жолы арқылы іске қосылады және кейбір әрекеттерді орындайды. Мұндай қолданбалар бір алдын ала анықталған функцияны орындайды, содан кейін олар енді орындалмайды. Мұндай бағдарламалардың әдетте mainіске қосу әдісі болады. Веб-қосымша клиентпен өзара әрекеттесу үшін жасалған. Клиенттен сұраныс болса, ол өңделеді және пайдаланушыға жауап жіберіледі. Олай болмаса, қолданба әрекетсіз. Сеанстарды қолдау, HTTP сұрауларын қабылдау және т.б. қажет екенін ескере отырып, стандартты қолданбада мұндай логиканы қалай енгізуге болады? Цикл while-true? Жоқ, бұл жерде бізге сенімді шешім керек. Tomcat бұл үшін. Шын мәнінде, бұл клиенттің өзара әрекеттесуі үшін портты ашуға, сеанстарды орнатуға, сұраулар санына, тақырып ұзындығына және басқа да көптеген операцияларға қамқорлық жасайтын Java қолданбасы.

Tomcat компоненттері

Tomcat-те білуге ​​тұрарлық нақты функцияларды орындайтын компоненттер бар. Толығырақ қарастырайық.

Каталина

Осы компоненттің арқасында әзірлеушілер өз бағдарламаларын контейнерде орналастыру мүмкіндігіне ие болады. Catalina Java веб-бағдарламалауындағы негізгі веб-технология болып табылатын Servlet API спецификациясын жүзеге асырады. Шын мәнінде, Catalina - бұл Tomcat ішіндегі сервлет контейнері (бұл тұжырымдаманы төменде толығырақ қарастырамыз).

Джаспер

Осы компоненттің арқасында бағдарламашы JSP технологиясын пайдаланады. Бұл HTML файлдары сияқты, тек оларда бет пайдаланушыға жіберілген кезде орындалуы мүмкін кірістірілген Java codeы бар. Бұл кез келген деректерді бетке динамикалық түрде ендіруге мүмкіндік береді. Jasper Java codeын HTML-ге айналдырады, сонымен қатар өзгерістерді қадағалайды және оларды автоматты түрде жаңартады.

Койот

Бұл белгілі бір портта клиенттен HTTP сұрауларын тыңдайтын, қолданбада өңдеуге арналған деректерді қамтамасыз ететін және пайдаланушыларға жауаптарды қайтаратын маңызды құрамдас. Яғни, Coyote HTTP serverінің функционалдығын жүзеге асырады. Бұл компоненттерді құрылымдық түрде келесі диаграмма арқылы сипаттауға болады: Java тіліндегі Tomcat - 2Мұнда компоненттердің өзара әрекеттесуінің шамамен диаграммасы «саусақтарда» көрсетілген. Шындығында, Tomcat жұмыс істеу тәсілі әлдеқайда күрделі, бірақ бұл негізгі түсінік үшін жеткілікті.

Tomcat орнатылуда

Tomcat-ты Java тілінде пайдалану үшін оны жүйеде орнату қажет. Tomcat-ті қалай орнату керектігі туралы осы мақаладан оқи аласыз, ол басқа қолданба serverлерін де қамтиды. Сонымен, IDEA жүйесінде жұмыс істейтін Tomcat бар болса, сіз бірінші сервлетті дайындауға тырыса аласыз.

Веб-қосымшаны қалай жасауға болады

Веб-қосымшаны жасау үшін белгілі бір қалта құрылымын сақтау керек. IntelliJ IDEA жобаны жасау мәзірінде веб-қосымшаны құру функциясы бар. Жобаны осылай жасағаннан кейін сіз қарапайым құрылымды көре аласыз: Java тіліндегі Tomcat - 3src файлында, әдеттегідей, көздер бар, ал веб қалтасында web.xml және index.jsp жасалады. web.xml — Tomcat үшін сұрау өңдеушілерін және басқа ақпаратты қайдан іздеу керектігі туралы нұсқаулық. index.jsp — пайдаланушы бірінші баратын веб-бағдарламаның негізгі беті (бұл әдепкі конфигурация). Бірінші іске қосу ретінде index.jsp файлын өңдеуге болады:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
   <title>$Title$</title>
 </head>
 <body>
   <h1>Hello world!</h1>
 </body>
</html>
Егер Tomcat тікелей IDEA жүйесінде орнатылған болса, қолданба serverін іске қосуға болады: Java тіліндегі Tomcat - 4Клиент '/', яғни басты бетке өткенде index.jsp файлының мазмұнын шолғышта алады. Енді ағымдағы server уақыты орналасатын бетке сілтеме қосамыз. Бірінші сервлет жасау үшін Tomcat бағдарламасымен бірге келетін servlet-api.jar кітапханасын пайдалану қажет (lib қалтасынан табуға болады). Ағымдағы server уақытын бетте көрсететін сервлет жасайық. Мұны істеу үшін сізге сынып құру керек TimeWorker. Оны src/ru/javarush/tomcat қалтасына орналастырайық:
package ru.javarush.tomcat;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

public class TimeWorker extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     Date date = new Date();
     req.setAttribute("date", date.toString());
     req.getRequestDispatcher("time.jsp").forward(req, resp);
  }
}
TimeWorkerсыныптан мұра алады HttpServletжәне оны қайта анықтайды doGet. Бұл әдісте біз екі параметрді аламыз - requestжәне response. Мысал ретінде requestаты бар және ағымдағы күннің жол көрінісін қамтитын төлсипат dataсақталады. Содан кейін ол шақырылады және параметрлері және requestDispatcherоған беріледі . Өңдеуші жасалды. Енді оған арнайы сұраулар жіберу керек. Time.jsp бетіне апаратын кез келген өтуге рұқсат етіңіз . web.xml ашыңыз, тегтер арасына келесі конфигурацияны енгізіңіз: requestresponse/time<web-app>
<servlet>
   <servlet-name>timeWorker</servlet-name>
   <servlet-class>ru.javarush.tomcat.TimeWorker</servlet-class>
   </servlet>

<servlet-mapping>
   <servlet-name>timeWorker</servlet-name>
   <url-pattern>/time</url-pattern>
</servlet-mapping>

<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Бірінші тегі - servlet- сервлет атын анықтайды және сұрауларды өңдейтін сервлет сыныбына жолды көрсетеді. Екінші тегі - servlet-mapping- аты бар сервлет timeWorkerсұрау кезінде шақырылатынын көрсетеді url/уақыт. Үшінші тег - welcome-file-list- -ге ауысқан кезде шақырылатын файлды көрсетеді url /. Бұл әдепкі файлды өзгерту қажет болған жағдайда конфигурациялануы керек. Мұнда мысал ретінде енгізілген. Енді, сіз барған кезде, сыныптағы әдіс /timeшақырылады және жоқ уақыт.jsp... бетін қайтарады. Оны index.jsp жанында жасайық: doGet TimeWorker
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>Hello</title>
</head>
<body>
   <h1>Current server time: <%=request.getAttribute("date")%></h1>
</body>
</html>
Бастауы классикалық, бірақ тегте және жақтаулары бар h1нысанға апелляция бар . Бұл үлгі тегтері. Бұл тегтерге енгізілген code клиентке жіберілмес бұрын шақырылады. Нысандар кез келген JSP файлында мұндай тегтерде қол жетімді . Бұл мысалда сервлет арқылы жіберілетін ағымдағы server уақыты сол жерде ауыстырылады . Ыңғайлы болу үшін index.jsp файлына сілтеме жасаймыз : request <%= %> request response TimeWorker /time
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
   <title>$Title$</title>
 </head>
 <body>
   <h1>Hello world!</h1>
   <a href="/time">Узнать текущее время serverа</a>
 </body>
</html>
Мысалды орындайық: Java тіліндегі Tomcat - 5Сілтемені орындаңыз: Java тіліндегі Tomcat - 6Керемет, бәрі жұмыс істейді. Мысалда біз негізгі беттен көмекші бетке көшуді жүзеге асырдық, оған параметр жіберіліп, пайдаланушыға көрсетіледі. Сервлеттерді іске қосуда қиындықтар туындаса, осы мәселені шешу бойынша кеңестер беретін осы постты оқуды ұсынамын. Сервлеттерге толық кіріспе үшін мақалаларды ( 1 бөлім , 2 бөлім ) оқуды ұсынамыз, мұнда автор сервлеттер мен jsp көмегімен қарапайым қолданба жасауды егжей-тегжейлі сипаттайды.

Қолданбаны іске қосылған serverге қалай ендіру керек

IDEA жүйесіндегі кірістірілген Tomcat ыңғайлы мүмкіндік болса да, веб-қосымшаны басқа serverге және басқа контейнерге жылжытуға болады. Қолданбаны іске қосылған serverге ендіру қажет болған кезде опцияны қарастырайық. Біріншіден, сервлет контейнерінің мақсаты мен функцияларын қосымша түсіну қажет . Жоғарыдағы мысалда көрсетілген бағдарлама веб-бағдарлама болып табылады. Сынып TimeWorkerсервлет болып табылады. Құрамдас бөліктер тек сұрауды өңдеуді орындайды. Бұл компоненттер арнайы сервлет контейнеріне салынуы керек. Сервлет контейнерінің мақсаты сервлеттерге қолдау көрсету және олардың өмірлік циклін қамтамасыз ету болып табылады. Tomcat қалай жұмыс істейтінінің қарапайым мысалы - жаңа сервлеттің пайда болғанын анықтау үшін белгілі бір қалтаны сканерлеу. Иә болса, оны инициализациялаңыз және тұтынушылардан сұрауларды қабылдауға дайындаңыз. Сервлет жаңартылған болса, құрамдастарды жаңарту үшін қайта баптаңыз. Сервлетті жойған кезде сұрауларды өңдеуді тоқтатыңыз және сервлетті Tomcat қолданбасынан жойыңыз.

Сервлет контейнерінің функциялары

  1. Сервлет пен клиенттер арасында деректер алмасу;
  2. Клиент сессияларын ұйымдастыру;
  3. Сервлеттің жұмыс істеуі үшін бағдарламалық ортаны құру;
  4. Идентификация и авторизация клиентов;
  5. В большинстве случаев — управление метаданными (заголовки, методы и прочее).
Во-вторых, необходимо разобраться, How установить свой сервлет.

Установка сервлета

Tomcat принимает для обработки веб-applications на Java, которые имеют расширение .war. Это How jar, только web. Файлы такого типа объединяют в себе JSP-файлы, сервлеты, class-файлы, статические ресурсы и прочее. При установке такого file в Tomcat происходит его распаковка, а затем запуск, поэтому существует строгое требование к структуре файлов в проекте. Если проект был создан в IDEA, вся структура создана автоматически. Файл war можно создать стандартными средствами IDEA. Для этого необходимо зайти в ProjectStructure -> Artifacts -> Нажать “ +” -> WebApplication: Archive. В открывшемся поле задать Name для итогового war-file, например deployed_war. Ниже необходимо нажать на кнопку Create Manifest… Далее необходимо указать way to папке web проекта. В ней будет создана папка META-INF, в которую будет помещен файл MANIFEST.MF. Далее следует нажать Apply и Ok. Whatбы собрать проект в war-файл, следует во вкладке Build выбрать опцию Build Artifact: Java тіліндегі Tomcat - 7В появившемся поле нужно нажать на deployed_war. Затем начнется сборка проекта и Intellij IDEA создаст папку out, в которой появится папка artifacts с именем нашего артефакта. В этой папке будет лежать файл deployed_war.war: Java тіліндегі Tomcat - 8Теперь можно деплоить этот файл в Tomcat. Деплой applications проще всего выполнить из веб-интерфейса Tomcat. Просто нажмите кнопку выбора file на вкладке Deploy, перейдите к местоположению file WAR и выберите его, затем нажмите кнопку развертывания. В обоих случаях, если все пойдет хорошо, консоль Tomcat сообщит нам, что развертывание прошло успешно примерно таким выводом в консоль: INFO: Deployment of web application archive \path\to\deployed_war has finished in 4,833 ms

Польза Tomcat для разработки

Для разработчиков контейнеры сервлетов имеют огромную роль, так How решают целый спектр проблем. Для программирования на Java Tomcat обеспечивает несколько серьезных преимуществ:
  1. Самое главное, Tomcat может выполнять роль полноценного web-serverа. Благодаря этому развертывание приложений происходит гораздо быстрее, чем было раньше.Также Tomcat может выступать в роли классического контейнера сервлетов, который можно встроить в более крупный веб-server.

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

  3. JSP беттерін өте ыңғайлы басқаруды қамтамасыз етеді. Шын мәнінде, веб-server тек html-ге қызмет ете алады. Jasper, Tomcat компоненті, JSP бет үлгісі тегтеріндегі codeты клиент қабылдайтын жарамды HTML файлына құрастырады. Барлық шаблондық логика Tomcat ішінде орналасқан, бұл классикалық HTML пішініне тіпті күрделі конструкторларды қосуға мүмкіндік береді.

Соңында: жаңадан бастаған әзірлеушілерге жиі сұрақ қойылады: Java қолданбасын -әдіссіз іске қосу мүмкін бе main? Бір қарағанда, жоғарыдағы мысалдарға қарасаңыз, бұл мүмкін. Біздің сервлет файлсыз орындалды main. Алайда олай емес. mainTomcat serverі іске қосылған кезде шақырылатын өз әдісі бар . Сіз бұл сұрақты сұхбатта қоюға болады.

Қосымша сілтемелер:

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION