Qayta ishlash

All lectures for UZ purposes
Daraja, Dars
Mavjud

DispatcherServlet soʻrovlarni quyidagicha ishlaydi:

  • WebApplicationContext topiladi va soʻrovga atribut sifatida bogʻlanadi, bu atributni controller va boshqa jarayon elementlari ishlatishi mumkin. Sukut boʻyicha bu DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE kaliti bilan bogʻlangan.

  • Mintaqaviy sozlamalar tanish moslamasi soʻrovga bogʻlanadi, bu jarayon elementlariga soʻrovni qayta ishlashda (koʻrinishni tasvirlash, ma'lumot tayyorlash va hokazo) qaysi mintaqaviy sozlamalarni ishlatishni belgilash imkonini beradi. Agar mintaqaviy sozlamalarni tanish kerak boʻlmasa, tanish moslamasi ham kerak emas.

  • Subject tanish moslamasi soʻrovga bogʻlanadi, shunda elementlar, masalan, koʻrinishlar, qaysi subjectni ishlatishni belgilashi mumkin. Agar subjectlar ishlatilmasa, uni e'tiborsiz qoldirish mumkin.

  • Agar koʻp qismli fayllarni tanish moslamasi belgilangan boʻlsa, soʻrovda koʻp qismli elementlar borligi tekshiriladi. Agar koʻp qismli elementlar topilsa, soʻrov boshqa jarayon elementlari tomonidan keyingi qayta ishlash uchun MultipartHttpServletRequest ichiga olinadi.

  • Mos keladigan handler qidiriladi. Agar handler topilsa, handler bilan bogʻliq bajarish zanjiri (preprocessorlar, postprocessorlar va controllerlar) modelni tasvirlashga tayyorlash uchun ishga tushiriladi. Bundan tashqari, annotatsiyalangan controllerlar uchun javob (ichida HandlerAdapter) koʻrinishni qaytarish oʻrniga tasvirlanishi mumkin.

  • Agar model qaytarilsa, tasvirlash koʻrinishi amalga oshiriladi. Agar model qaytarilmasa (ehtimol, soʻrovni preprocessor yoki postprocessor ushlab qolganligi sababli, xavfsizlik nuqtai nazaridan), koʻrinish yaratilmaydi, chunki soʻrov allaqachon bajarilgan boʻlishi mumkin.

HandlerExceptionResolver beanlar, WebApplicationContextda e'lon qilingan, soʻrovni qayta ishlashda yuzaga keladigan istisnolarni tan olish uchun ishlatiladi. Ushbu istisnolarni qayta ishlash moslamalari istisnolarni qayta ishlash mantiqini sozlash imkonini beradi.

HTTP-keshlashni ta'minlash uchun handlerlar WebRequestdan CheckNotModified metodlarini, shuningdek annotatsiyalangan controllerlar uchun qoʻshimcha opsiyalarni ishlatishi mumkin.

Alohida DispatcherServlet nusxalarini sozlashingiz mumkin, servletlarni eʼlon qilish uchun servlet konfiguratsiyalari qoʻshing (init-param elementlari), web.xml faylida. Quyidagi jadvalda qoʻllab-quvvatlanadigan konfiguratsiyalar roʻyxati keltirilgan:

1-jadval. DispatcherServlet konfiguratsiya parametrlari
Parametr Tavsif

contextClass

ConfigurableWebApplicationContextni amalga oshirayotgan klass, nusxasi ushbu servlet tomonidan yaratiladi va lokal sozlanadi. Sukut boʻyicha XmlWebApplicationContext ishlatiladi.

contextConfigLocation

Kontextlarni qayerda qidirish kerakligini belgilash uchun kontext nusxasiga (belgilangan contextClass) uzatiladigan qator. Bu qator bir nechta qatorlardan iborat boʻlishi mumkin (vergul yordamida ajratiladi), bir nechta kontextlarni qoʻllab-quvvatlash uchun. Agar bir nechta kontext joylashuvlari boʻlsa va ikkilamchi aniqlangan boʻlsa, soʻnggi joylashuv ustunlikka ega.

namespace

WebApplicationContext namespace. Sukut boʻyicha [servlet-name]-servlet.

throwExceptionIfNoHandlerFound

Agar soʻrov boʻyicha handler topilmasa, NoHandlerFoundExceptionni hosil qilish kerakmi yoki yoʻqligini belgilaydi. Soʻngra istisno HandlerExceptionResolver (masalan, @ExceptionHandler annotatsiyalangan controller metodidan foydalanib) orqali ushlangan va boshqa istisno kabi qayta ishlanishi mumkin.

Sukut boʻyicha ushbu parametr false deb oʻrnatiladi va bu holda DispatcherServlet xabar statusini 404 (NOT_FOUND) ga oʻrnatadi, istisnolarni hosil qilmasdan.

E'tibor bering, agar sukut boʻyicha servletlarni qayta ishlash ham sozlangan boʻlsa, aniqlanmagan soʻrovlar har doim sukut boʻyicha servletga yoʻnaltiriladi va 404 xabar hosil qilinmaydi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION