CodeGym /Java блог /Случаен /Част 1. Какво трябва да знаете, преди да научите Spring и...
John Squirrels
Ниво
San Francisco

Част 1. Какво трябва да знаете, преди да научите Spring и JavaEE

Публикувано в групата
Ако вече сте завършor (or сте близо до) изучаването на Java SE, тогава е време да помислите за следващите си стъпки в завладяването на професията на Java разработчик. Част 1. Какво трябва да знаете, преди да научите Spring и JavaEE - 1 От една страна, вече разбирате добре Java: знаете How да работите с IDE, да пишете програми и много други. Но Howво трябва да направите след това с вашите програми? Как да ги направите още по-готини и да ги „пуснете в света“? Става очевидно, че е време да се заемем с изучаването на корпоративните технологии. И сега започва забавлението. Няма meaning с кой технологичен стек решите да започнете. Независимо дали става дума за JavaEE or Spring, вероятно ще се натъкнете на много неща, които са далеч, далеч отвъд вашето разбиране. Между основите на Java и напредналите технологии остава междинна стъпка в знанията, която трябва да се направи, за да запазите онова, което остава от вашия самоконтрол и самоувереност, докато четете обемна documentация. Следователно,е да ви даде минималните теоретични знания, необходими за вашето по-нататъшно изучаване на JavaEE or Spring. Този материал е разделен на 7 части:
  1. Ще поговорим малко за работата в мрежа.
  2. Ще разгледаме клиент-сървър и трислойната архитектура.
  3. Ще проучим HTTP/HTTPS протоколите.
  4. Ще научим всичко, което трябва да знаете за Maven.
  5. Говорим за дърводобив.
  6. Относно контейнерите за сервлети.
  7. И накрая, за MVC.

Част 1. Ще поговорим малко за работата в мрежа.

Нека започнем с това, което е най-важно, като говорим върху Howво е изградена всяка социална мрежа, уеб услуга и уеб приложение, месинджър и прост уебсайт — мрежата (в контекста на тази поредица от статии терминът „мрежа“ означава интернет ) . Мрежата се състои от огромен брой компютри: те са свързани помежду си и могат да комуникират. Важно е да разберете How правят това, тъй като уеб applicationsта изпращат информация от един компютър на друг.

OSI модел

Моделът за свързване на отворени системи (OSI) създава многослоен подход за изграждане на мрежа. Той ясно показва How и на Howъв слой обектите от една и съща мрежа могат да взаимодействат помежду си. Общо този модел съдържа 7 слоя:
7 Приложение
6 Презентация
5 Сесия
4 транспорт
3 мрежа
2 Връзка за данни
1 Физически
Разделянето на модела на слоеве на абстракция позволява на разработчиците, работещи върху транспортния слой, например, да не се налага да мислят за детайлите на изпълнението на нивото на мрежовия и сесийния слой. Този подход се използва и в програмирането. Нека разгледаме всички слоеве на OSI модела и да определим кои са от интерес за нас:
  1. Физически слой — Този слой се занимава със законите на физиката и How да ги използваме за нашите цели. Например създаване на кабели и полагането им към обекти в мрежата.

    Този слой не ни интересува.

  2. Слой на връзката за данни — Този слой е отговорен за предаването на данни към мрежовите възли и създаването на канали за предаване на данни за физически обекти.

    Този слой не ни интересува, освен ако не искате да напишете фърмуер за хардуера, който установява връзки за данни.

  3. Мрежов слой — Този слой е за определяне на addressите на отделните мрежови потребители и маршрутите до тях. Има смисъл да научите повече за подробностите на този слой, а именно мрежовите addressи.

    Мрежовите addressи се определят от специален протокол: най-често срещаният е IPv4 (интернет протокол version 4). Това е протоколът, който уеб програмистът трябва да използва, за да се свърже с друг мрежов потребител.

    IPv4 addressът се състои от четири byteови стойности, разделени с точки, например: 192.0.2.235. Трябва да запомните, че тези стойности са byteове, което означава, че са в диапазона 0..255.

    IP addressите от своя страна са разделени на класове. Не можем просто да си зададем красива комбинация от числа, но няма да навлизаме много надълбоко тук. Достатъчно е да разберете, че IP addressът идентифицира уникално мрежов потребител и може да се използва за връзка с този потребител.

  4. Транспортен слой — Този слой управлява доставянето на информация до addressт. За да се постигне това, се използват различни протоколи. Засега не се интересуваме от тях. Много повече се интересуваме от концепцията за порт , която се появява на този слой.

    Портовете са отговорни за идентифицирането на конкретно приложение на компютър. Да предположим например, че пишете приложение за чат на Java, инсталирате го на 2 компютъра и искате да изпратите съобщение до вашия приятел. Вашето съобщение е пакетирано, изпратено до определен IP address и доставено на вашия приятел, но неговият компютър не знае Howво да прави с получената информация, защото не разбира кое приложение трябва да обработи вашето съобщение. Когато мрежовите обекти комуникират, портовете се използват, за да се посочи кое приложение трябва да обработва информацията.

    Портът е число в диапазона от 0 до 65535. Той се добавя към IP address след двоеточие: 192.0.2.235:8080 . Но не можете да използвате всички портове в посочения диапазон: някои от тях са запазени за операционната система, други обикновено се използват за конкретни цели. Няма да се задълбочаваме в целите на различните портове. Засега е достатъчно да разберем тяхната роля в процеса на комуникация в мрежата.

  5. Сесиен слой — Този слой създава и управлява комуникационни сесии. На този слой става възможно applicationsта да взаимодействат, изпращайки заявки на ниво услуга. Това, което трябва да знаем е, че на този слой се отваря сесия между двама потребители и ние трябва да работим със сесията.

    Сесията е обект, създаден , когато се установи връзка между двама потребители. Може да съхранява необходимата информация за потребителя и за историята на взаимодействието с потребителя. Важна подробност е, че при спиране на обмена на информация сесията не изчезва. Вместо това той запазва състоянието си за определен период от време, така че потребителите могат да продължат да обменят информация след прекъсване.

    Ако едно приложение комуникира с няколко потребители едновременно, тогава се установяват съответен брой връзки (и следователно сесии). Всяка сесия има уникален идентификатор (ID) , който позволява на приложението да прави разлика между потребителите, с които комуникира.

  6. Презентационен слой — Този слой отговаря за codeирането/деcodeирането на данни. Очевидно, ако трябва да изпратим низа "Hello web" на друг потребител, той първо се преобразува в (codeиран като) двоичен code и едва след това се изпраща. При достигане до получателя съобщението се конвертира обратно (деcodeира) и получателят може да види оригиналния низ. Тези действия се извършват на презентационния слой.

  7. Приложният слой е най-интересният слой за нас. Той позволява на applicationsта да комуникират с мрежата. На този слой получаваме и изпращаме съобщения и правим заявки към услуги и отдалечени бази данни.

    Има много протоколи, използвани на този слой: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET и, разбира се, HTTP/HTTPS. Протоколът е универсално споразумение, към което се придържаме, когато общуваме. Определено ще предоставим отделно подробно обсъждане на HTTP/HTTPS.

Част 1. Какво трябва да знаете, преди да научите Spring и JavaEE - 2Не е нужно да знаем How работи всеки слой от модела. Основното нещо е да разберем принципите зад работата на елементите, с които ще трябва да работим, когато пишем уеб applications, а именно:
  • IP address — Адресът на потребителя в мрежата
  • Порт — Адресът на конкретно потребителско приложение
  • Сесия — Обект, който съществува през целия период на комуникация между двама потребители
  • Протоколи за applications (HTTP/HTTPS) — Това са правила, които ще следваме, когато съставяме и изпращаме съобщения.
Когато посещаваме онлайн магазин, например, посочваме неговия address и порт. При първото ни посещение се създава сесия. Магазинът може да записва информация в сесията. Например, магазинът може да запази информация за артикулите, които сме оставor в пазарската количка. Ако затворим раздела с онлайн магазина и след това се върнем в него по-късно, нашите артикули ще продължат да бъдат в количката, защото са запазени в сесията. Разбира се, цялата информация, която получаваме от магазина, получаваме по HTTP/HTTPS протокола и браузърът ни знае How да я обработи. Може да възразите, като кажете, че никога не сте въвели address и порта в браузъра и ще бъдете отчасти прави. Това, което направихте, беше да въведете името на домейна, което беше преобразувано от DNS сървър. Нека да разгледаме по-добре Howво има тук.

DNS (система за имена на домейни)

Както вече научихме, всеки потребител на мрежата има уникален address. Ако говорим за приложението, тогава неговият уникален address ще бъде IPv4-address:порт . Ако знаете този address, можете директно да влезете в приложението. Представете си, че сме написали уеб приложение, което показва средната температура на въздуха във всички страни в реално време. Разположихме го на сървър с address 226.69.237.119, на порт 8080. За да може да получава информация от нас, потребителят трябва да въведе 5 числа в браузъра: 226.69.237.119:8080. Хората не обичат да запомнят набори от числа: много от нас не могат да запомнят повече от два телефонни номера. Ето защо системата за имена на домейнибеше изобретен. Можем да създадем „псевдоним“ за нашия address, например world-temperature.com. Вместо да ни търси по address, състоящ се от пет трудни за запомняне числа, потребителят може да въведе името на нашия домейн в addressната лента на браузъра. Има DNS сървъри , които картографират имената на домейни към реални addressи. Например, когато потребител въведе codegym.cc в браузър, нейната заявка се изпраща до DNS сървър, който я преобразува в действителния address. Част 1. Какво трябва да знаете, преди да научите Spring и JavaEE - 4Това е важно да разберем, защото нашите applications ще извикват отдалечени услуги Howто чрез имена на домейни, така и чрез реални addressи. Трябва да разберем, че и в двата случая услугите са едни и същи. Това е за сега! В тази статия разгледахме основите на работата в мрежа, които ще ви бъдат полезни, когато започнете да учите уеб програмиране.Следващият път ще разгледаме Howво представлява архитектурата клиент-сървър и защо е толкова важно да я разберем. Част 2. Нека поговорим малко за софтуерната архитектура Част 3. HTTP/HTTPS Част 4. Основите на Maven Част 5. Сървлети и Java Servlet API. Писане на просто уеб приложение Част 6. Контейнери на сервлети Част 7. Представяне на модела MVC (Model-View-Controller)
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION