JavaRush /Java blogi /Random-UZ /1-qism. Spring va JavaEE-ni o'rganishdan oldin nimani bil...

1-qism. Spring va JavaEE-ni o'rganishdan oldin nimani bilishingiz kerak

Guruhda nashr etilgan
Agar siz allaqachon Java SE-ni o'rganishni tugatgan bo'lsangiz yoki unga yaqin bo'lsangiz, Java dasturchisi kasbini egallashning keyingi qadamlari haqida o'ylash vaqti keldi. 1-qism. Spring va JavaEE-ni o'rganishdan oldin nimalarni bilishingiz kerak - 1Bir tomondan, siz allaqachon Java tilini yaxshi tushunasiz: IDE bilan ishlash, dasturlar yozish va boshqa ko'p narsalarni bilasiz. Ammo ular bilan, dasturlardan keyin nima qilishimiz kerak? Qanday qilib ularni sovuqroq qilish va "dunyoga qo'yib yuborish" kerak? Enterprise texnologiyalarini o'rganishni boshlash vaqti kelgani ayon bo'ladi. Va bu erda o'yin-kulgi boshlanadi. Qaysi texnologiya stekidan boshlashga qaror qilishingiz muhim emas. Bu JavaEE yoki Bahor bo'ladimi, siz hali ham tushunib bo'lmaydigan ko'p narsalarga duch kelishingiz mumkin. Java asoslari va ilg'or texnologiyalar o'rtasida hali ham katta hajmli hujjatlarni o'qishda o'zini o'zi boshqarish va o'ziga ishonch qoldiqlarini yo'qotmaslikka yordam beradigan o'rta darajadagi bilim mavjud. Shuning uchun, ushbu maqolalar turkumining maqsadi sizga JavaEE yoki Springni keyingi o'rganish uchun minimal zarur nazariy bilimlarni berishdir. Barcha materiallar 7 qismga bo'lingan:
  1. Keling, tarmoq haqida bir oz gapiraylik.
  2. Mijoz-server va uch darajali arxitektura tuzilishini ko'rib chiqamiz.
  3. Keling, HTTP/HTTPS protokollarini ko'rib chiqaylik.
  4. Keling, Maven haqida bilishingiz kerak bo'lgan hamma narsani bilib olaylik.
  5. Keling, servletlar haqida gapiraylik.
  6. Servlet konteynerlari.
  7. Va nihoyat - MVC haqida.

1-qism. Keling, tarmoq haqida bir oz gapiraylik

Keling, eng muhim narsadan boshlaylik va barcha ijtimoiy tarmoqlar, veb-xizmatlar va ilovalar, messenjerlar va oddiy saytlar yaratilgan asos haqida gapiraylik - tarmoq haqida ( ushbu maqolalar turkumi kontekstida "tarmoq" atamasi Global Internet ). Tarmoq juda ko'p sonli kompyuterlardan iborat: ular bir-biriga bog'langan va aloqa o'rnatishga qodir. Ular buni qanday qilishlarini tushunish muhimdir, chunki veb-ilovalar ma'lumotni bir kompyuterdan ikkinchisiga o'tkazish uchun javobgardir.

OSI tarmoq modeli

OSI (Open Systems Interconnection) modeli tarmoqni qurishda qatlamli yondashuvni yaratadi. Bu bitta tarmoq a'zolari bir-biri bilan qanday va qanday darajada o'zaro aloqada bo'lishi mumkinligini aniq ko'rsatadi. Hammasi bo'lib, ushbu model 7 darajani o'z ichiga oladi:
7 Qo'llaniladi
6 Vakillik
5 Sessiya
4 Transport
3 Tarmoq
2 Kanal
1 Jismoniy
Abstraktsiya qatlamlariga bo'linish, masalan, transport qatlamida ishlaydigan mutaxassislarga tarmoq va sessiya qatlamlarida tarmoqni amalga oshirish tafsilotlari haqida o'ylamaslik imkonini beradi. Ushbu yondashuv dasturlashda ham qo'llaniladi. Keling, OSI modelining barcha qatlamlarini ko'rib chiqaylik va ulardan qaysi biri biz uchun qiziqarli ekanligini bilib olaylik:
  1. 1. Jismoniy daraja - bu erda fizika qonunlari o'z vazifasini bajaradi va insonning vazifasi bundan o'z maqsadlari uchun foydalanish va yo'naltirishdir. Masalan, kabellarni yaratish va ularni tarmoq a'zolariga yotqizish.

    Bizga qiziq emas.

  2. Ma'lumotlar havolasi qatlami - ma'lumotlarni tarmoq tugunlariga uzatish va jismoniy ob'ektlarda ma'lumotlarni uzatish kanallarini yaratish uchun javobgardir.

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

  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), с которой нам часто придется работать.

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

    Agar ilova bir vaqtning o'zida bir nechta foydalanuvchilar bilan muloqot qilsa, tegishli miqdordagi ulanishlar va shuning uchun seanslar o'rnatiladi. Har bir seansda o'ziga xos identifikator (ID) mavjud bo'lib , u ilovaga muloqot sodir bo'lgan foydalanuvchilar o'rtasida farqlash imkonini beradi.

  6. Taqdimot qatlami - ma'lumotlarni kodlash/dekodlash uchun javobgardir. Shubhasiz, agar biz boshqa foydalanuvchiga "Hello web" qatorini yuborishimiz kerak bo'lsa, u avval ikkilik kodga aylantiriladi (kodlanadi) va shundan keyingina yuboriladi. Belgilangan joyga yetib borgach, xabar qayta o'zgartiriladi (dekodlanadi) va qabul qiluvchi asl satrni ko'rishi mumkin. Ushbu harakatlar taqdimot darajasida sodir bo'ladi.

  7. Ilova qatlami biz uchun eng qiziqarli qatlamdir. Bu ilovalarga tarmoq bilan o'zaro aloqada bo'lish imkonini beradi. Ushbu darajada biz xabarlarni qabul qilamiz, yuboramiz, xizmatlarga va masofaviy ma'lumotlar bazalariga so'rovlar qilamiz.

    Ushbu darajada qo'llaniladigan ko'plab protokollar mavjud: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET va, albatta, HTTP/HTTPS. Protokol - bu xabarlarni yozishda biz amal qiladigan universal kelishuv. Biz, albatta, HTTP/HTTPS protokollari haqida alohida va batafsilroq gaplashamiz.

1-qism. Spring va JavaEE-ni o'rganishdan oldin nimalarni bilishingiz kerak - 2 Ushbu modelning har bir darajasi qanday ishlashini bilishimiz shart emas. Asosiysi, veb-ilovalarni yozishda biz hal qilishimiz kerak bo'lgan elementlarning ishlash tamoyillarini tushunishdir, xususan:
  • IP manzil - tarmoqdagi abonentning manzili;
  • Port - ma'lum bir abonentning ariza manzili;
  • Sessiya - bu ikki abonent o'rtasidagi butun aloqa davomida mavjud bo'lgan ob'ekt;
  • Ilova protokollari (HTTP/HTTPS) xabarlarni yozish va jo'natishda bizga yo'l ko'rsatadigan qoidalardir.
Biz, aytaylik, onlayn-do'konga borganimizda, biz uning joylashgan manzilini va portini ko'rsatamiz. Birinchi tashrifingizda do'kon ma'lumotlarni yozib olishi mumkin bo'lgan seans yaratiladi. Masalan, biz aravada qoldirgan tovarlar haqida. Agar onlayn do'kon yorlig'ini yopsak va keyin unga qaytsak, mahsulotlarimiz savatda qoladi, chunki ular sessiyada saqlanadi. Albatta, biz do'kondan olgan barcha ma'lumotlarni HTTP/HTTPS protokoli orqali olamiz va bizning brauzerimiz uni qayta ishlashi mumkin. Siz e'tiroz bildirishingiz va brauzerda manzil va portni hech qachon kiritmaganligingizni aytishingiz mumkin va siz qisman haq bo'lasiz, chunki siz DNS serverida o'zgartirilgan domen nomini kiritgansiz. Ammo bu erda nima borligini yaxshiroq ko'rib chiqaylik.

DNS (domen nomlari tizimi)

Biz allaqachon aniqlaganimizdek, tarmoqdagi har bir abonent o'ziga xos manzilga ega. Agar biz dastur haqida gapiradigan bo'lsak, uning yagona manzili IPv4: port bo'ladi . Ushbu manzilni bilib, siz to'g'ridan-to'g'ri dasturga kirishingiz mumkin. Tasavvur qilaylik, biz real vaqt rejimida barcha mamlakatlardagi o'rtacha havo haroratini ko'rsatadigan veb-ilovani yozdik. Biz uni 226.69.237.119 manzilli serverga va 8080 portiga joylashtirdik. Foydalanuvchi bizdan maʼlumot olishi uchun brauzerda 5 ta raqamni kiritishi kerak: 226.69.237.119:8080. Odamlar raqamlar to'plamini eslab qolishni yoqtirmaydilar: har birimiz ikkitadan ortiq telefon raqamlarini eslay olmaymiz. Shuning uchun domen nomlari tizimi ixtiro qilindi . Biz o'z manzilimiz uchun "taxallus" yaratishimiz mumkin, masalan, world-temperature.com - va bizni besh xonali manzildan foydalanib qidirish o'rniga, foydalanuvchi domen nomini brauzerning manzil satriga kiritishi mumkin. Domen nomlari va haqiqiy manzillarni moslashtirish uchun DNS serverlari mavjud . Agar foydalanuvchi, masalan, javarush.ru brauzeriga kirsa, uning so'rovi DNS serveriga yuboriladi va u erda haqiqiy manzilga aylanadi. 1-qism. Spring va JavaEE-ni o'rganishdan oldin nimalarni bilishingiz kerak - 4Buni tushunish biz uchun juda muhim, chunki ilovalarimizda biz masofaviy xizmatlarni ham domen nomi, ham haqiqiy manzil bo'yicha chaqiramiz va bular bir xil xizmatlar bo'ladi. Ana xolos! Ushbu maqolada biz tarmoq dizayni asoslarini ko'rib chiqdik, bu veb-dasturlashni o'rganishni boshlashdan oldin foydali bo'ladi. Keyingi safar mijoz-server arxitekturasi nima ekanligini va nima uchun uni tushunish juda muhimligini ko'rib chiqamiz. 2-qism. Dasturiy taʼminot arxitekturasi haqida bir oz gaplashamiz 3-qism. HTTP/HTTPS protokollari 4-qism. Maven asoslari 5-qism. Servletlar. Oddiy veb-ilovani yozish 6-qism. Servlet konteynerlari 7-qism. MVC (Model-View-Controller) naqshini tanishtirish 8-qism. Kichkina bahor-boot ilovasini yozish
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION