JavaRush /جاوا بلاگ /Random-UR /جاوا میں ٹامکیٹ

جاوا میں ٹامکیٹ

گروپ میں شائع ہوا۔
کسی وقت، ہر ڈویلپر کو اتنی مہارت حاصل ہوتی ہے کہ وہ اپنے علم کو عملی جامہ پہنانے کے لیے اپنا پروجیکٹ بنانے کے بارے میں سوچتا ہے۔ ویب پراجیکٹ پر عمل کرنا سب سے آسان ہے، کیونکہ ویب ایپلیکیشن کا نفاذ کسی بھی پابندی، جیسے ڈیسک ٹاپ ایپلی کیشنز کی وجہ سے محدود نہیں ہے۔ کلائنٹ کو صرف ایک براؤزر کی ضرورت ہوتی ہے اور وہ کسی بھی ڈسٹری بیوشن کو ڈاؤن لوڈ کیے بغیر ایپلیکیشن کے ساتھ بات چیت کرسکتا ہے۔ رجسٹریشن اور ایس ایم ایس کے بغیر، جیسا کہ وہ کہتے ہیں (حالانکہ یہ درخواست پر منحصر ہے)۔ جاوا میں ٹامکیٹ - 1لہذا، جاوا میں ایک اچھی ویب ایپلیکیشن کو لاگو کرنے کے لیے، آپ Tomcat نامی ٹول کے بغیر نہیں کر سکتے۔ مواد:

Tomcat Javarush سے واقف ہے۔

Tomcat جاوا رش کورس میں جاوا کلیکشن کی تلاش کے لیول 9 پر پڑھا جاتا ہے۔ 2 لیکچرز میں، بلاابو آپ کو بتائے گا کہ Tomcat کو ڈاؤن لوڈ اور کنفیگر کرنے کے ساتھ ساتھ آپ کی پہلی ویب ایپلیکیشن کیسے بنائی جائے ۔

Tomcat - یہ کیا ہے؟

ٹامکیٹ ایک اوپن سورس سرولیٹ کنٹینر ہے جو ویب سرور کے طور پر بھی کام کرتا ہے۔ پہلی نظر میں، Tomcat ایک بھاری موضوع کی طرح لگتا ہے، لیکن یہ معاملہ نہیں ہے. زیادہ تر جاوا ایپلیکیشنز کمانڈ لائن کا استعمال کرتے ہوئے شروع کی جاتی ہیں اور کچھ اعمال انجام دیتی ہیں۔ اس طرح کی ایپلی کیشنز ایک پہلے سے طے شدہ فنکشن کو نافذ کرتی ہیں، جس کے بعد ان پر عمل درآمد نہیں ہوتا ہے۔ اس طرح کے پروگراموں میں عام طور پر ایک طریقہ ہوتا ہے mainجس کے ذریعے انہیں لانچ کیا جا سکتا ہے۔ ویب ایپلیکیشن کو کلائنٹ کے ساتھ بات چیت کرنے کے لیے ڈیزائن کیا گیا ہے۔ اگر کلائنٹ کی طرف سے کوئی درخواست آتی ہے تو اس پر کارروائی کی جاتی ہے اور صارف کو جواب بھیجا جاتا ہے۔ اگر نہیں، تو ایپلیکیشن بیکار ہے۔ معیاری ایپلی کیشن میں اس طرح کی منطق کو کیسے نافذ کیا جائے، یہ دیکھتے ہوئے کہ آپ کو سیشنز کو سپورٹ کرنے، HTTP درخواستوں کو قبول کرنے وغیرہ کی ضرورت ہے؟ سائیکل while-true؟ نہیں، ہمیں یہاں ایک قابل اعتماد حل کی ضرورت ہے۔ ٹامکیٹ اسی کے لیے ہے۔ درحقیقت، یہ ایک جاوا ایپلی کیشن ہے جو کلائنٹ کے تعامل کے لیے پورٹ کھولنے، سیشن ترتیب دینے، درخواستوں کی تعداد، ہیڈر کی لمبائی اور بہت سے کاموں کا خیال رکھتی ہے۔

ٹامکیٹ اجزاء

ٹامکیٹ میں ایسے اجزاء ہوتے ہیں جو مخصوص افعال انجام دیتے ہیں جن کے بارے میں جاننے کے قابل ہیں۔ آئیے قریب سے دیکھیں۔

Catalina

اس جزو کی بدولت، ڈویلپرز کو اپنے پروگراموں کو کنٹینر میں تعینات کرنے کا موقع ملتا ہے۔ Catalina جاوا ویب پروگرامنگ میں سرولیٹ API تفصیلات، بنیادی ویب ٹیکنالوجی کو نافذ کرتی ہے۔ درحقیقت، Catalina Tomcat کے اندر ایک سرولیٹ کنٹینر ہے (ہم ذیل میں اس تصور کو مزید تفصیل سے دیکھیں گے)۔

جسپر

اس جزو کی بدولت پروگرامر JSP ٹیکنالوجی استعمال کرتا ہے۔ یہ ایچ ٹی ایم ایل فائلوں کی طرح ہیں، صرف ان میں جاوا کوڈ ایمبیڈ کیا گیا ہے جو صارف کو صفحہ بھیجے جانے پر عمل میں لایا جا سکتا ہے۔ یہ آپ کو صفحہ میں کسی بھی ڈیٹا کو متحرک طور پر ایمبیڈ کرنے کی اجازت دیتا ہے۔ Jasper جاوا کوڈ کو HTML میں بدل دیتا ہے، اور تبدیلیوں کو بھی ٹریک کرتا ہے اور خود بخود انہیں اپ ڈیٹ کرتا ہے۔

کویوٹ

یہ ایک اہم جز ہے جو کسی مخصوص پورٹ پر کلائنٹ کی HTTP درخواستوں کو سنتا ہے، ایپلی کیشن میں پروسیسنگ کے لیے وہ ڈیٹا فراہم کرتا ہے، اور صارفین کو جوابات بھی دیتا ہے۔ یعنی کویوٹ ایک HTTP سرور کی فعالیت کو نافذ کرتا ہے۔ ان اجزاء کو ساختی طور پر درج ذیل خاکہ کے ذریعے بیان کیا جا سکتا ہے: جاوا میں ٹامکیٹ - 2یہاں اجزاء کے تعامل کا تخمینی خاکہ "انگلیوں پر" دکھایا گیا ہے۔ درحقیقت، Tomcat کے کام کرنے کا طریقہ بہت زیادہ پیچیدہ ہے، لیکن یہ بنیادی سمجھ کے لیے کافی ہے۔

Tomcat انسٹال کرنا

جاوا میں Tomcat استعمال کرنے کے لیے، اسے سسٹم پر انسٹال کرنے کی ضرورت ہے۔ آپ اس مضمون میں ٹامکیٹ کو انسٹال کرنے کے طریقہ کے بارے میں پڑھ سکتے ہیں، جس میں دوسرے ایپلیکیشن سرورز کا بھی احاطہ کیا گیا ہے۔ لہذا، IDEA میں ایک ورکنگ ٹامکیٹ بنا کر، آپ اپنا پہلا سرولیٹ تیار کرنے کی کوشش کر سکتے ہیں۔

ویب ایپلیکیشن کیسے بنائی جائے۔

ویب ایپلیکیشن بنانے کے لیے، آپ کو فولڈر کے مخصوص ڈھانچے پر عمل کرنا ہوگا۔ IntelliJ IDEA کا پروجیکٹ تخلیق مینو میں ویب ایپلیکیشن جنریشن کا فنکشن ہے۔ اس طرح پروجیکٹ بنانے کے بعد، آپ ایک سادہ ڈھانچہ دیکھ سکتے ہیں: جاوا میں ٹامکیٹ - 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 میں انسٹال ہے، تو آپ ایپلیکیشن سرور شروع کر سکتے ہیں: جاوا میں ٹامکیٹ - 4کلائنٹ کو براؤزر میں index.jsp فائل کے مواد اس وقت موصول ہوتے ہیں جب وہ '/'، یعنی مرکزی صفحہ پر جاتا ہے۔ اب آئیے اس صفحے پر ایک لنک شامل کریں جہاں موجودہ سرور کا وقت واقع ہوگا۔ اپنا پہلا سرولیٹ بنانے کے لیے، آپ کو servlet-api.jar لائبریری استعمال کرنے کی ضرورت ہے جو Tomcat کے ساتھ آتی ہے (lib فولڈر میں مل سکتی ہے)۔ آئیے ایک سرولیٹ بنائیں جو صفحہ پر موجودہ سرور کا وقت دکھائے گا۔ ایسا کرنے کے لیے آپ کو ایک کلاس بنانے کی ضرورت ہے 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/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>
آئیے مثال چلائیں: جاوا میں ٹامکیٹ - 5لنک پر عمل کریں: جاوا میں ٹامکیٹ - 6بہت اچھا، سب کچھ کام کرتا ہے۔ مثال کے طور پر، ہم نے مرکزی صفحہ سے معاون صفحہ تک منتقلی کو نافذ کیا، جس میں ایک پیرامیٹر پاس کیا گیا اور صارف کو دکھایا گیا۔ اگر آپ کو servlets چلانے میں دشواری کا سامنا ہے، تو میں اس پوسٹ کو پڑھنے کی تجویز کرتا ہوں ، جو اس مسئلے کو حل کرنے کے لیے تجاویز دیتا ہے۔ سرولیٹس کے مزید مکمل تعارف کے لیے، ہم مضامین ( حصہ 1 ، حصہ 2 ) کو پڑھنے کی تجویز کرتے ہیں، جہاں مصنف نے سرولیٹس اور jsp کا استعمال کرتے ہوئے ایک سادہ ایپلیکیشن کی تخلیق کو تفصیل سے بیان کیا ہے۔

کسی ایپلیکیشن کو چلانے والے سرور میں ایمبیڈ کرنے کا طریقہ

اگرچہ IDEA میں بلٹ ان Tomcat ایک آسان خصوصیت ہے، ویب ایپلیکیشن کو دوسرے سرور اور دوسرے کنٹینر میں منتقل کیا جا سکتا ہے۔ آئیے اس اختیار پر غور کریں جب آپ کو اپنی ایپلیکیشن کو پہلے سے چل رہے سرور میں سرایت کرنے کی ضرورت ہو۔ سب سے پہلے، سرولیٹ کنٹینر کے مقصد اور افعال کو مزید سمجھنا ضروری ہے ۔ اوپر کی مثال میں دکھایا گیا پروگرام ایک ویب ایپلیکیشن ہے۔ کلاس TimeWorkerایک سرولیٹ ہے۔ اجزاء خصوصی طور پر درخواست پر کارروائی کرتے ہیں۔ ان اجزاء کو ایک خاص سرولیٹ کنٹینر میں بنایا جانا چاہیے۔ سرولیٹ کنٹینر کا مقصد سرولیٹس کو سپورٹ کرنا اور ان کے لائف سائیکل کو یقینی بنانا ہے۔ 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: جاوا میں ٹامکیٹ - 7В появившемся поле нужно нажать на deployed_war. Затем начнется сборка проекта и Intellij IDEA создаст папку out, в которой появится папка artifacts с именем нашего артефакта. В этой папке будет лежать файл deployed_war.war: جاوا میں ٹامکیٹ - 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طریقہ کے چلانا ممکن ہے؟ پہلی نظر میں، اگر آپ اوپر دی گئی مثالوں کو دیکھیں تو یہ ممکن ہے۔ ہمارے سرولیٹ کو اس کے بغیر پھانسی دی گئی تھی main۔ تاہم، یہ نہیں ہے. ٹامکیٹ کا اپنا طریقہ ہے mainجسے سرور شروع ہونے پر کہا جاتا ہے۔ آپ ایک انٹرویو میں یہ سوال پوچھتے ہوئے پکڑے جا سکتے ہیں۔

اضافی لنکس:

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