JavaRush /جاوا بلاگ /Random-SD /Tomcat جاوا ۾

Tomcat جاوا ۾

گروپ ۾ شايع ٿيل
ڪجهه نقطي تي، هر ڊولپر ڪافي صلاحيتون حاصل ڪري ٿو ته هو پنهنجي پروجيڪٽ ٺاهڻ بابت سوچيندو آهي پنهنجي علم کي عملي طور تي رکڻ لاء. ويب پروجيڪٽ تي عمل ڪرڻ تمام آسان آهي، ڇاڪاڻ ته ويب ايپليڪيشن تي عمل درآمد ڪنهن به پابنديون، جهڙوڪ ڊيسڪ ٽاپ ايپليڪيشنن جي ڪري محدود ناهي. ڪلائنٽ صرف هڪ برائوزر جي ضرورت آهي ۽ ڪنهن به تقسيم کي ڊائون لوڊ ڪرڻ کان سواء ايپليڪيشن سان رابطو ڪري سگهي ٿو. بغير رجسٽريشن ۽ ايس ايم ايس، جيئن اهي چون ٿا (جيتوڻيڪ اهو خود ايپليڪيشن تي منحصر آهي). Tomcat جاوا ۾ - 1تنهن ڪري، جاوا ۾ سٺي ويب ايپليڪيشن کي لاڳو ڪرڻ لاء، توهان Tomcat نالي هڪ اوزار کان سواء نٿا ڪري سگهو. مواد:

Tomcat Javarush کان واقف آهي

Tomcat جاوا ريش ڪورس ۾ جاوا مجموعن جي ڳولا جي سطح 9 تي اڀياس ڪئي وئي آهي. 2 ليڪچرن ۾، بلابو توهان کي ٻڌائيندو ته ڪيئن ڊائون لوڊ ۽ ترتيب ڏيڻ Tomcat ، انهي سان گڏ توهان جي پهرين ويب ايپليڪيشن ٺاهي .

Tomcat - اهو ڇا آهي؟

Tomcat هڪ اوپن سورس سروليٽ ڪنٽينر آهي جيڪو پڻ ويب سرور طور ڪم ڪري ٿو. پهرين نظر ۾، Tomcat لڳي ٿو بلڪه ڳري موضوع وانگر، پر اهو معاملو ناهي. گهڻيون جاوا ايپليڪيشنون ڪمانڊ لائن استعمال ڪندي شروع ڪيون ويون آهن ۽ ڪجهه ڪارناما انجام ڏيو. اهڙيون ايپليڪيشنون هڪ اڳواٽ بيان ڪيل فنڪشن کي لاڳو ڪن ٿيون، جنهن کان پوء اهي وڌيڪ نه ڪيا ويا آهن. اهڙن پروگرامن ۾ عام طور تي هڪ طريقو هوندو آهي mainجنهن ذريعي انهن کي شروع ڪري سگهجي ٿو. ويب ايپليڪيشن ڪلائنٽ سان لهه وچڙ ڪرڻ لاءِ ٺهيل آهي. جيڪڏهن ڪلائنٽ کان ڪا درخواست آهي، اهو عمل ڪيو ويندو آهي ۽ جواب صارف ڏانهن موڪليو ويندو آهي. جيڪڏهن نه، ايپليڪيشن بيڪار آهي. معياري ايپليڪيشن ۾ اهڙي منطق کي ڪيئن لاڳو ڪجي، ڏنو ويو آهي ته توهان کي سيشن جي حمايت ڪرڻ جي ضرورت آهي، HTTP درخواستن کي قبول ڪرڻ، وغيره؟ سائيڪل while-true؟ نه، اسان کي هتي هڪ قابل اعتماد حل جي ضرورت آهي. اھو اھو آھي جيڪو Tomcat لاء آھي. حقيقت ۾، اها هڪ جاوا ايپليڪيشن آهي جيڪا ڪلائنٽ رابطي لاء پورٽ کولڻ، سيشن قائم ڪرڻ، درخواستن جو تعداد، هيڊر جي ڊيگهه ۽ ڪيترن ئي وڌيڪ عملن جو خيال رکندو آهي.

Tomcat اجزاء

Tomcat ۾ اجزاء آھن جيڪي مخصوص ڪم ڪن ٿا جيڪي ڄاڻڻ جي لائق آھن. اچو ته هڪ ويجهي نظر وٺو.

ڪيٽيلينا

هن جزو جي مهرباني، ڊولپرز کي انهن جي پروگرامن کي هڪ ڪنٽينر ۾ ترتيب ڏيڻ جو موقعو آهي. Catalina لاڳو ڪري ٿي Servlet API جي وضاحت، جاوا ويب پروگرامنگ ۾ بنيادي ويب ٽيڪنالاجي. حقيقت ۾، Catalina Tomcat اندر هڪ سرورٽ ڪنٽينر آهي (اسين هن تصور کي وڌيڪ تفصيل سان هيٺ ڏسندا).

جسپر

هن جزو جي مهرباني، پروگرامر استعمال ڪري ٿو JSP ٽيڪنالاجي. اهي HTML فائلن وانگر آهن، صرف انهن ۾ جاوا ڪوڊ شامل ڪيو ويو آهي جيڪو عمل ڪري سگهجي ٿو جڏهن صفحو صارف ڏانهن موڪليو ويو آهي. هي توهان کي متحرڪ طور تي ڪنهن به ڊيٽا کي صفحي ۾ شامل ڪرڻ جي اجازت ڏئي ٿو. Jasper جاوا ڪوڊ کي HTML ۾ تبديل ڪري ٿو، ۽ پڻ تبديلين کي ٽريڪ ڪري ٿو ۽ خودڪار طور تي انهن کي تازه ڪاري ڪري ٿو.

ڪويوٽ

اهو هڪ اهم جزو آهي جيڪو ٻڌندو آهي HTTP درخواستن لاءِ ڪلائنٽ هڪ مخصوص بندرگاهه تي، مهيا ڪندو آهي ڊيٽا کي پروسيسنگ لاءِ ايپليڪيشن ۾، ۽ پڻ موٽائي ٿو صارفين جا جواب. اهو آهي، ڪويوٽ هڪ HTTP سرور جي ڪارڪردگي کي لاڳو ڪري ٿو. انهن حصن کي هيٺ ڏنل آراگرام ذريعي ساختي طور تي بيان ڪري سگهجي ٿو: Tomcat جاوا ۾ - 2هتي اجزاء جي رابطي جو هڪ اندازي مطابق ڊراگرام ڏيکاريل آهي "آڱرين تي". حقيقت ۾، Tomcat ڪم ڪرڻ جو طريقو تمام گهڻو پيچيده آهي، پر اهو بنيادي سمجهڻ لاء ڪافي آهي.

Tomcat انسٽال ڪرڻ

جاوا ۾ Tomcat استعمال ڪرڻ لاء، ان کي سسٽم تي نصب ٿيڻ جي ضرورت آهي. توهان هن مضمون ۾ Tomcat کي ڪيئن نصب ڪرڻ جي باري ۾ پڙهي سگهو ٿا، جيڪو پڻ شامل ڪري ٿو ٻين ايپليڪيشن سرورز. تنهن ڪري، IDEA ۾ هڪ ڪم ڪندڙ Tomcat ٺاهي، توهان ڪوشش ڪري سگهو ٿا پنهنجو پهريون سروليٽ تيار ڪرڻ.

ويب ايپليڪيشن ڪيئن ٺاهي

ويب ايپليڪيشن ٺاهڻ لاءِ، توهان کي هڪ مخصوص فولڊر جي جوڙجڪ تي عمل ڪرڻ گهرجي. IntelliJ IDEA وٽ پروجيڪٽ ٺاھڻ واري مينيو ۾ ويب ايپليڪيشن جنريشن جو ڪم آھي. هن طريقي سان پروجيڪٽ ٺاهي، توهان هڪ سادي جوڙجڪ ڏسي سگهو ٿا: 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 ۾ نصب ٿيل آهي، توهان اپليڪيشن سرور شروع ڪري سگهو ٿا: Tomcat جاوا ۾ - 4ڪلائنٽ برائوزر ۾ index.jsp فائل جو مواد وصول ڪري ٿو جڏهن اهو '/' ڏانهن نيويگيٽ ڪري ٿو، يعني مکيه صفحي ڏانهن. ھاڻي اچو ته ھڪڙي لنڪ شامل ڪريو صفحي تي جتي موجوده سرور جو وقت واقع ھوندو. توهان جي پهرين servlet ٺاهڻ لاء، توهان کي استعمال ڪرڻ جي ضرورت آهي servlet-api.jar لائبريري جيڪا Tomcat سان اچي ٿي (ليب فولڊر ۾ ڳولي سگھجي ٿو). اچو ته ھڪڙو servlet ٺاھيو جيڪو صفحي تي موجوده سرور وقت ڏيکاريندو. هن کي ڪرڻ لاء توهان کي هڪ ڪلاس ٺاهڻ جي ضرورت آهي 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۽ موجوده تاريخ جي اسٽرنگ جي نمائندگي تي مشتمل آهي ذخيرو ٿيل آهي. ان کان پوء ان کي سڏيو ويندو آهي ۽ parameters ۽ 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 جو نالو بيان ڪري ٿو ۽ servlet طبقي جو رستو بيان ڪري ٿو جيڪو درخواستن تي عمل ڪندو. ٻيو ٽيگ - servlet-mapping- اشارو ڪري ٿو ته نالي سان servlet timeWorkerسڏيو ويندو جڏهن هڪ درخواست لاء url/time. ٽيون ٽيگ - welcome-file-list- ان فائل کي اشارو ڪري ٿو جنهن کي سوئچ ڪرڻ وقت سڏيو ويندو url /. ھن کي ترتيب ڏيڻ گھرجي جيڪڏھن ڪا ضرورت آھي ڊفالٽ فائل کي تبديل ڪرڻ جي. هتي هڪ مثال طور شامل آهي. هاڻي، جڏهن توهان وڃو، ڪلاس ۾ طريقو /timeسڏيو ويندو ۽ صفحي کي واپس ڏيو 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۾ اعتراض جي اپيل آهي request، جيڪا فريم ڪئي وئي آهي <%=۽ %>. اهي ٽيمپليٽ ٽيگ آهن. انهن ٽيگ ۾ شامل ڪيل ڪوڊ ڪلائنٽ ڏانهن موڪلڻ کان اڳ سڏيو ويندو آهي. خير، شيون ڪنهن به JSP فائل ۾ اهڙن ٽيگ ۾ موجود requestآهن . responseهن مثال ۾، موجوده سرور جو وقت، جيڪو servlet طرفان منتقل ڪيو ويندو آهي، اتي متبادل ڪيو ويندو TimeWorker. سهولت لاءِ، اسان index.jsp فائل جي لنڪ ٺاهيندا آهيون /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>
اچو ته مثال هلون: Tomcat جاوا ۾ - 5لنڪ جي پيروي ڪريو: Tomcat جاوا ۾ - 6عظيم، سڀ ڪجھ ڪم ڪري ٿو. مثال ۾، اسان هڪ منتقلي تي عمل ڪيو مکيه صفحي کان معاون صفحي ڏانهن، جنهن ۾ هڪ پيٽرولر گذري ويو ۽ صارف کي ڏيکاريو ويو. جيڪڏهن توهان کي servlets هلائڻ ۾ مسئلو آهي، آئون هن پوسٽ کي پڙهڻ جي صلاح ڏيان ٿو ، جيڪا هن مسئلي کي حل ڪرڻ لاء صلاحون ڏئي ٿي. servlets جي وڌيڪ مڪمل تعارف لاءِ، اسان مضمون پڙهڻ جي صلاح ڏيون ٿا ( حصو 1 ، حصو 2 )، جتي ليکڪ تفصيل سان بيان ڪري ٿو servlets ۽ jsp استعمال ڪندي هڪ سادي ايپليڪيشن ٺاهڻ جي.

هلندڙ سرور ۾ ايپليڪيشن کي ڪيئن شامل ڪجي

جيتوڻيڪ IDEA ۾ ٺهيل Tomcat هڪ آسان خصوصيت آهي، ويب ايپليڪيشن کي ٻئي سرور ۽ ٻئي ڪنٽينر ڏانهن منتقل ڪري سگهجي ٿو. اچو ته ان اختيار تي غور ڪريون جڏهن توهان کي پنهنجي ايپليڪيشن کي اڳ ۾ ئي هلندڙ سرور ۾ شامل ڪرڻ جي ضرورت آهي. پهرين، اهو ضروري آهي ته هڪ servlet ڪنٽينر جي مقصد ۽ افعال کي وڌيڪ سمجهڻ لاء . مٿي ڏنل مثال ۾ ڏيکاريل پروگرام هڪ ويب ايپليڪيشن آهي. ڪلاس TimeWorkerهڪ سروليٽ آهي. اجزاء خاص طور تي درخواست جي پروسيسنگ کي انجام ڏين ٿا. انهن حصن کي هڪ خاص سروليٽ ڪنٽينر ۾ تعمير ڪيو وڃي. هڪ servlet ڪنٽينر جو مقصد servlets کي سپورٽ ڪرڻ ۽ انهن جي زندگي جي چڪر کي يقيني بڻائڻ آهي. Tomcat ڪم ڪرڻ جو آسان ترين مثال هڪ مخصوص فولڊر کي اسڪين ڪري رهيو آهي اهو طئي ڪرڻ لاءِ ته ڇا ان ۾ نئون سروليٽ ظاهر ٿيو آهي. جيڪڏهن ها، ان کي شروع ڪريو ۽ ان کي تيار ڪريو گراهڪن کان درخواستون حاصل ڪرڻ لاءِ. جيڪڏهن servlet اپڊيٽ ڪيو ويو آهي، اجزاء کي تازه ڪاري ڪرڻ لاء ٻيهر شروع ڪريو. جڏهن هڪ servlet کي حذف ڪرڻ، پروسيسنگ جي درخواستن کي روڪيو ۽ Tomcat مان سرورٽ کي هٽايو.

سروليٽ ڪنٽينر افعال

  1. servlet ۽ گراهڪن جي وچ ۾ ڊيٽا مٽائي؛
  2. ڪلائنٽ سيشن جي تنظيم؛
  3. servlet جي ڪم لاء هڪ سافٽ ويئر ماحول جي تخليق؛
  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: Tomcat جاوا ۾ - 7В появившемся поле нужно нажать на deployed_war. Затем начнется сборка проекта и Intellij IDEA создаст папку out, в которой появится папка artifacts с именем нашего артефакта. В этой папке будет лежать файл deployed_war.war: 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 صفحن جو تمام آسان انتظام مهيا ڪري ٿو. حقيقت ۾، ويب سرور صرف html جي خدمت ڪري سگهي ٿو. Jasper، Tomcat جو هڪ جزو، JSP پيج ٽيمپليٽ ٽيگ ۾ موجود ڪوڊ کي هڪ صحيح HTML فائل ۾ گڏ ڪري ٿو جيڪو ڪلائنٽ طرفان ملي ٿو. سڀ ٽيمپليٽنگ منطق Tomcat جي اندر رهي ٿو، توهان کي هڪ کلاسک HTML فارم ۾ اڃا به پيچيده تعمير ڪندڙ شامل ڪرڻ جي اجازت ڏئي ٿي.

۽ آخرڪار: اڪثر نون ڊولپرز کان سوال پڇيو ويندو آهي: ڇا اهو ممڪن آهي ته جاوا ايپليڪيشن کي بغير mainڪنهن طريقي سان هلائڻ لاء. پهرين نظر ۾، جيڪڏهن توهان مٿين مثالن تي نظر رکون ٿا، اهو ممڪن آهي. اسان جي servlet کان سواء قتل ڪيو ويو main. بهرحال، اهو ناهي. Tomcat جو ھڪڙو طريقو آھي mainجنھن کي سڏيو ويندو آھي جڏھن سرور شروع ٿئي ٿو. توهان هڪ انٽرويو ۾ هن سوال پڇڻ پڪڙي سگهو ٿا.

اضافي لنڪس:

تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION