JavaRush /Java блогы /Random-KK /1-бөлім. Spring және JavaEE тілін үйрену алдында нені біл...

1-бөлім. Spring және JavaEE тілін үйрену алдында нені білу керек

Топта жарияланған
Егер сіз Java SE оқуды аяқтаған болсаңыз немесе оған жақын болсаңыз, Java әзірлеушісі мамандығын бағындырудың келесі қадамдары туралы ойланатын кез келді. 1-бөлім. Spring және JavaEE-ді үйрену алдында нені білу керек - 1Бір жағынан, сіз Java тілін жақсы түсіндіңіз: IDE-мен жұмыс істеу, бағдарламалар жазу және т.б. Бірақ олармен, бағдарламалармен ары қарай не істеуіміз керек? Оларды қалай салқынdateға және «әлемге шығаруға» болады? Кәсіпорын технологияларын оқуды бастаудың уақыты келгені белгілі болды. Міне, қызық осы жерден басталады. Қай технология стекінен бастауды шешкеніңіз маңызды емес. JavaEE немесе көктем болсын, сіз әлі түсінбейтін көптеген нәрселерді кездестіруіңіз мүмкін. Java негіздері мен озық технологиялар арасында әлі де көлемді құжаттарды оқу кезінде өзін-өзі бақылау және өзіне деген сенімділік қалдықтарын жоғалтпауға көмектесетін орта білім бар. Сондықтан осы мақалалар топтамасының мақсаты сізге JavaEE немесе көктемді одан әрі зерттеу үшін қажетті ең аз теориялық білім беру болып табылады. Барлық материал 7 бөлікке бөлінеді:
  1. Желі туралы аздап сөйлесейік.
  2. Клиент-server құрылымын және үш деңгейлі архитектураны қарастырайық.
  3. HTTP/HTTPS протоколдарын қарастырайық.
  4. Мавен туралы білуіңіз керек барлық нәрсені білейік.
  5. Сервлеттер туралы сөйлесейік.
  6. Сервлет контейнерлері.
  7. Соңында - MVC туралы.

1-бөлім. Желі туралы аздап сөйлесейік

Ең бастысынан бастайық және барлық әлеуметтік желілер, веб-қызметтері мен қолданбалары, жедел хабаршылар мен қарапайым сайттар құрылған негіз туралы сөйлесейік - желі туралы ( осы мақалалар сериясының контекстінде «желі» термині жаһандық интернет ). Желі көптеген компьютерлерден тұрады: олар бір-бірімен байланысқан және байланыса алады. Олардың мұны қалай жасайтынын түсіну маңызды, өйткені веб-қосымшалар ақпаратты бір компьютерден екіншісіне тасымалдауға жауапты.

OSI желісінің моделі

OSI (Open Systems Interconnection) моделі желіні құрудың деңгейлік тәсілін жасайды. Ол бір желінің мүшелері бір-бірімен қалай және қандай деңгейде әрекеттесе алатынын анық көрсетеді. Барлығы бұл модель 7 деңгейден тұрады:
7 Қолданылған
6 Өкілдік
5 Сеанс
4 Көлік
3 Желі
2 Түтік
1 Физикалық
Абстракциялық деңгейлерге бөлу, мысалы, көлік деңгейінде жұмыс істейтін мамандарға желілік және сеанстық деңгейлерде желіні іске асырудың егжей-тегжейлері туралы ойламауға мүмкіндік береді. Бұл тәсіл бағдарламалауда да қолданылады. OSI моделінің барлық қабаттарын қарастырайық және олардың қайсысы бізге қызықты екенін білейік:
  1. 1. Физикалық деңгей – мұнда физика заңдары өз жұмысын атқарады, ал адамның міндеті – мұны өз мақсатына пайдалану және бағыттау. Мысалы, кабельдерді жасау және оларды желі мүшелеріне төсеу.

    Бізге қызық емес.

  2. Мәліметтерді байланыстыру деңгейі – деректерді желі түйіндеріне жіберуге және физикалық an objectілерде деректерді беру арналарын құруға жауапты.

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

    Егер қолданба бір уақытта бірнеше пайдаланушылармен байланысса, сәйкес қосылымдар саны, демек сеанстар орнатылады. Әрбір сеанстың бірегей идентификаторы (ID) бар , ол қолданбаға байланыс болатын пайдаланушыларды ажыратуға мүмкіндік береді.

  6. Презентация деңгейі – деректерді codeтауға/деcodeтауға жауапты. Әлбетте, егер «Hello web» жолын басқа пайдаланушыға жіберу қажет болса, ол алдымен екілік codeқа түрлендіріледі (codeталған), содан кейін ғана жіберіледі. Ол тағайындалған жерге жеткенде, хабарлама кері түрлендіріледі (деcodeталған) және алушы бастапқы жолды көре алады. Бұл әрекеттер презентация деңгейінде орын алады.

  7. Қолданбалы деңгей біз үшін ең қызықты қабат болып табылады. Ол қолданбаларға желімен өзара әрекеттесуге мүмкіндік береді. Бұл деңгейде біз хабарламаларды қабылдаймыз, жібереміз, қызметтерге және қашықтағы дерекқорларға сұраныс жасаймыз.

    Бұл деңгейде қолданылатын көптеген протоколдар бар: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET және, әрине, HTTP/HTTPS. Протокол - бұл хабарламаларды жасау кезінде біз ұстанатын әмбебап келісім. Біз міндетті түрде HTTP/HTTPS протоколдары туралы бөлек және толығырақ сөйлесетін боламыз.

1-бөлім. Spring және JavaEE-ді үйрену алдында нені білу керек - 2 Бұл модельдің әрбір деңгейі қалай жұмыс істейтінін білудің қажеті жоқ. Ең бастысы - веб-қосымшаларды жазу кезінде біз шешуге тура келетін элементтердің жұмыс істеу принциптерін түсіну, атап айтқанда:
  • IP мекенжайы — желідегі абоненттің мекенжайы;
  • Порт — нақты абоненттің өтініш мекенжайы;
  • Сеанс – екі жазылушы арасындағы бүкіл байланыс барысында болатын нысан;
  • Қолданба протоколдары (HTTP/HTTPS) хабарларды құрастыру және жіберу кезінде бізге басшылық ететін ережелер болып табылады.
Біз, мысалы, интернет-дүкенге барған кезде, біз оның орналасқан мекенжайы мен портын көрсетеміз. Бірінші барған кезде дүкен ақпаратты жаза алатын сеанс жасалады. Мысалы, біз арбада қалдырған тауарлар туралы. Егер біз интернет-дүкен қойындысын жауып, содан кейін оған оралсақ, өнімдеріміз сеанста сақталғандықтан, себетте қалады. Әрине, біз HTTP/HTTPS протоколы арқылы дүкеннен алатын барлық ақпаратты аламыз және біздің браузер оны өңдей алады. Сіз қарсылық білдіріп, браузерде мекенжай мен портты ешқашан енгізбегеніңізді айта аласыз және ішінара дұрыс боласыз, өйткені сіз DNS serverінде түрлендірілген домен атауын енгіздіңіз. Бірақ мұнда не екенін жақсырақ қарастырайық.

DNS (домендік атау жүйесі)

Біз бұрыннан белгілі болғандай, желідегі әрбір абоненттің бірегей мекенжайы бар. Егер біз қолданба туралы айтатын болсақ, оның бірегей мекенжайы IPv4:port болады . Бұл мекенжайды біле отырып, сіз қолданбаға тікелей қол жеткізе аласыз. Біз нақты уақыт режимінде барлық елдердегі орташа ауа температурасын көрсететін веб-қосымшаны жаздық деп елестетіп көрейік. Біз оны 226.69.237.119 мекенжайы бар serverде және 8080 портында орналастырдық. Пайдаланушы бізден ақпарат алу үшін браузерге 5 нөмірді енгізуі керек: 226.69.237.119:8080. Адамдар сандар жиынын есте сақтауды ұнатпайды: бәріміз екіден көп телефон нөмірін жаттай бермейміз. Сондықтан домендік атаулар жүйесі ойлап табылды . Біз мекенжайымыз үшін «бүркеншік ат» жасай аламыз, мысалы, world-temperature.com — және бес таңбалы мекенжайды пайдаланып бізді іздеудің орнына пайдаланушы браузердің мекенжай жолағына біздің домен атын тере алады. Домен атаулары мен нақты мекенжайларды сәйкестендіру үшін DNS serverлері бар . Пайдаланушы, мысалы, javarush.ru браузеріне кіргенде, оның сұрауы DNS serverіне жіберіледі, онда ол нақты мекенжайға айналады. 1-бөлім. Spring және JavaEE-ді үйрену алдында не білу керек - 4Біз үшін мұны түсіну маңызды, өйткені қолданбаларымызда біз қашықтағы қызметтерді домендік атаумен де, нақты мекенжай бойынша да шақырамыз және бұл бірдей қызметтер болады. Осымен болды! Бұл мақалада біз желілік дизайн негіздерін қарастырдық, бұл веб-бағдарламалауды үйренуді бастамас бұрын пайдалы болады. Келесі жолы біз клиент-server архитектурасы не екенін және оны түсіну неге маңызды екенін қарастырамыз. 2 бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік 3 бөлім. HTTP/HTTPS протоколдары 4 бөлім. Maven негіздері 5 бөлім. Сервлеттер. Қарапайым веб-қосымшаны жазу 6-бөлім. Сервлет контейнерлері 7-бөлім. MVC (Model-View-Controller) үлгісін енгізу 8-бөлім. Шағын серіппелі жүктеу қосымшасын жазу
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION