JavaRush /Java blogi /Random-UZ /Servletlar va jsp yordamida oddiy veb-ilovani yaratish (1...

Servletlar va jsp yordamida oddiy veb-ilovani yaratish (1-qism)

Guruhda nashr etilgan
Maqolani tushunish uchun talab qilinadigan bilim darajasi: siz Java Core-ni ko'proq yoki kamroq tushungansiz va JavaEE texnologiyalari va veb-dasturlashni ko'rib chiqishni xohlaysiz. Agar siz hozirda maqolaga yaqin mavzularni o'z ichiga olgan Java Collections kvestini o'rganayotgan bo'lsangiz, bu eng mantiqiy bo'ladi. Ushbu material mening IntelliJ Idea Enterprise-da oddiy veb-loyiha yaratishServletlar va jsp yordamida oddiy veb-ilova yaratish (1-qism) - 1 maqolamning mantiqiy davomidir . Unda men ishlaydigan veb-loyiha shablonini qanday yaratishni ko'rsatdim. Bu safar men sizga Java Servlet API va JavaServer Pages API texnologiyalaridan foydalangan holda oddiy, ammo chiroyli veb-ilovani qanday yaratishni ko'rsataman. Bizning ilovamiz ikkita havoladan iborat bosh sahifaga ega bo'ladi:
  • foydalanuvchi qo'shish sahifasiga;
  • foydalanuvchi roʻyxatini koʻrish sahifasiga.
Men hali ham IntelliJ Idea Enterprise Edition, Apache Maven (faqat bir nechta bog'liqliklarni qo'shing) va Apache Tomcat-dan foydalanaman. Oxirida biz dasturimizni W3.CSS ramkasidan foydalanib “bezatamiz” . Ayni paytda sizda bo'sh loyiha bor deb taxmin qilamiz, biz uni shu erda ishlab chiqamiz. Agar yo'q bo'lsa, birinchi maqolani ko'rib chiqing va uni bajaring. Bu bir necha daqiqa vaqt oladi :)

Kelajakdagi dasturning tuzilishi haqida bir oz

Bizning asosiy sahifamiz ( / ) sarlavhali va ikkita havola/tugmachali eng oddiy statik html sahifa bo'ladi:
  • yangi foydalanuvchi qo'shing ( /add ga yuboriladi );
  • foydalanuvchilar roʻyxatini koʻrish ( /list ga yuboriladi ).
Tomcat ushbu manzillarga bo'lgan so'rovlarni ushlaydi va ularni biz yaratadigan ikkita servletdan biriga yuboradi (biz xaritalashni web.xml faylida tasvirlab beramiz ). Va servletlar, o'z navbatida, so'rovlarni qayta ishlaydi, ma'lumotlarni tayyorlaydi (yoki foydalanuvchi qo'shilgan bo'lsa, uni saqlaydi) va boshqaruvni tegishli jsp fayllariga o'tkazadi, bu esa natijani allaqachon "ko'rsatadi". Biz ma'lumotlarni eng keng tarqalgan ro'yxatda (Ro'yxat) saqlaymiz.

Keling, statik bosh sahifa yarataylik

Agar veb-papkangizda index.jsp bo'lsa , uni o'chiring. Buning o'rniga, biz ushbu papkada index.html deb nomlangan oddiy html faylini yaratamiz :
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My super project!</title>
</head>
<body>
    <!-- header -->
    <div>
        <h1>Super app!<//h1>
    </div>

    <div>       <!-- content -->
        <div>    <!-- buttons holder -->
            <button onclick="location.href='/list'">List users<//button>
            <button onclick="location.href='/add'">Add user<//button>
        </div>
    </div>
</body>
</html>
Bu erda hech qanday murakkab narsa yo'q. Sarlavhada biz sahifamizning sarlavhasini ko'rsatamiz. Sahifaning asosiy qismida bizda ikkita asosiy div mavjud: sarlavha (sarlavha) va kontent (kontent). Tarkibda bizning tugmachalarimiz uchun ushlagich mavjud va aslida ikkita tugma bosilganda, tegishli manzillarga yuboriladi. Siz loyihani ishga tushirishingiz va hozir qanday ko'rinishini ko'rishingiz mumkin. Agar siz tugmachalarni bossangiz, 404 xatosi bo'lgan sahifalar ochiladi, chunki ular hali bizda yo'q. Ammo bu tugmalar ishlayotganini ko'rsatadi. Shuni ta'kidlab o'tamanki, bu eng universal variant emas, chunki sizda to'satdan JavaScript o'chirilgan bo'lsa, bu tugmalar brauzerda hech qanday foyda keltirmaydi. Ammo biz hech kim JavaScript-ni o'chirmagan deb taxmin qilamiz :). Oddiy havolalardan foydalanish mumkinligi aniq, lekin men tugmalarni afzal ko'raman. Siz eng yaxshi ko'rgan narsani qilasiz. Va mening misollarimda divlar juda ko'p bo'lishiga qaramang . Keyin biz ularni uslublar bilan to'ldiramiz va hamma narsa yanada chiroyli ko'rinadi :).

Natijani ko'rsatish uchun jsp fayllarini yarating

Xuddi shu veb- katalogda jsp fayllarimizni joylashtiradigan papka yaratamiz . Men buni ko'rinishlar deb atadim va siz yana improvizatsiya qilishingiz mumkin. Ushbu papkada ikkita jsp fayl yaratamiz:
  • add.jsp — foydalanuvchilarni qoʻshish uchun sahifa;
  • list.jsp - foydalanuvchilar ro'yxatini ko'rsatish uchun sahifa.
Keling, ularga tegishli sahifa sarlavhalarini beraylik. "Yangi foydalanuvchi qo'shish" va "Foydalanuvchilar ro'yxati" kabi bir narsa va biz buni hozircha shunday qoldiramiz.

Keling, ikkita servlet yarataylik

Servletlar Tomcat ularga yuboradigan so'rovlarni qabul qiladi va qayta ishlaydi. Src/main/java papkasida biz manbalarimizni o'z ichiga olgan ilovalar to'plamini yaratamiz. U erda bizda ko'proq turli xil paketlar bo'ladi. Shuning uchun, bu paketlar bir-birining ichida yaratilmasligi uchun, keling, ilova paketida qandaydir sinf yarataylik (keyin uni o'chiring). Endi ilova paketida uchta turli paket yaratamiz :
  • ob'ektlar - bu erda bizning ob'ektlarimiz yotadi (foydalanuvchi ob'ektlarini tavsiflovchi sinfning o'zi);
  • model - bizning modelimiz shu erda bo'ladi (bu haqda biroz keyinroq);
  • servletlar - bu erda bizning servletlarimiz bo'ladi.
Shundan so'ng, siz ushbu sinfni ilovalar to'plamidan xavfsiz olib tashlashingiz mumkin (agar siz uni yaratgan bo'lsangiz, albatta). Servletlar paketida biz ikkita sinf yaratamiz:
  • AddServlet - /add da olingan so'rovlarni qayta ishlaydi ;
  • ListServlet - /list da olingan so'rovlarni qayta ishlaydi .

Mavenda bog'liqliklarni ulash

Tomcat versiyasi 9.* Servlet versiyasi 4.0 va JavaServer Pages versiyasi 2.3 spetsifikatsiyalarini amalga oshiradi. Bu Tomcat 9 rasmiy hujjatlarida ikkinchi qatorning birinchi xatboshida yozilgan. Bu shuni anglatadiki, agar siz ham men kabi Tomcat-ning ushbu versiyasidan foydalanayotgan bo'lsangiz, biz yozgan va ishga tushirish uchun yuborgan kod aniq belgilangan versiyalardan foydalanadi. Ammo biz loyihamizda ushbu spetsifikatsiyalarga ega bo'lishni xohlaymiz, shunda ulardan foydalanadigan kodimiz hech bo'lmaganda muvaffaqiyatli kompilyatsiya qilinadi. Va buning uchun biz ularni loyihamizga yuklashimiz kerak. Bu erda Maven yordamga keladi.

Umumiy qoida quyidagicha: agar siz Maven yordamida loyihangizga biror narsa ulashingiz kerak bo'lsa:

  • Maven ombori veb-saytiga o'ting;
  • u erda kerakli kutubxonani va kerakli versiyani qidiring;
  • pom.xml-ga kiritilishi kerak bo'lgan qaramlik kodini olasiz;
  • kiritmoq! :)
Shunday ekan, boshlaylik. Birinchidan, keling, pom faylini tayyorlaymiz . /version dan keyin , lekin /project dan oldin , quyidagilarni kiriting:
<dependencies>

</dependencies>
Shunday qilib, biz ushbu teglar ichida bizga kerak bo'lgan bog'liqliklarni sanab o'tishimizni ko'rsatdik. Endi mvnrepository.com saytiga o'ting , tepada qidiruv maydoni bo'ladi. Birinchidan, qidiruvga servletni kiriting. Etti mingdan ortiq foydalanish mavjud bo'lgan birinchi natija bizga mos keladi. Bizga 4.0 versiyasi kerakligini eslaymiz (Tomcat 9 uchun; boshqa versiyalar uchun eski ilovalar mos bo'lishi mumkin). Bu juda yangi versiya, shuning uchun unchalik ko'p foydalanish mumkin emas, lekin bu bizga kerak bo'lgan versiya. Turli paket menejerlari uchun ushbu bog'liqlik kodini olishingiz mumkin bo'lgan sahifa ochiladi va siz uni shunchaki yuklab olishingiz mumkin. Ammo biz uni Maven yordamida ulashni xohlayotganimiz sababli, biz Maven yorlig'ida kodni tanlaymiz. Biz bog'liqliklar bo'limidagi pom faylimizga nusxa ko'chiramiz va joylashtiramiz. Agar IDEA-ning pastki o'ng burchagida avtomatik importni yoqishni xohlaymizmi degan bildirishnoma paydo bo'lsa, biz rozilik bildiramiz. Agar tasodifan rad qilsangiz, "Sozlamalar" ga o'ting va avtomatik importni qo'lda yoqing: Sozlamalar (Ctrl + Alt + S) -> Qurilish, bajarish, joylashtirish -> Maven -> Import qilish Bu pom fayli va IDEA konfiguratsiya fayllarini saqlab qoladi. loyiha sinxronlashtirildi. Endi xuddi shu printsipdan foydalanib, biz JavaServer Pages 2.3 versiyasini topamiz va ulaymiz (qidiruvda jsp ni kiriting). Va biz allaqachon Mavenni qo'lga kiritganimiz uchun, keling, darhol aytaylik, bizning manbalarimiz Java 8 sintaksisiga mos keladi va ularni bir xil versiyaning bayt-kodiga kompilyatsiya qilish kerak. Ushbu barcha manipulyatsiyalardan so'ng, bizning pom.xml quyidagicha ko'rinadi:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>ru.javarush.info.fatfaggy</groupId>
    <artifactId>my-super-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>1.8</maven.compile.source>
        <maven.compiler.target>1.8</maven.compile.target>
    </properties>

    <dependencies>
        <!-- Servlet API 4.0 for tomcat 9 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- JavaServer Pages API 2.3 for tomcat 9 -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

Servletlarimizni haqiqiy servletlarga aylantirish

Hozirgi vaqtda biz yaratgan bir nechta servletlar oddiy sinflardir. Ular hech qanday funksionallikka ega emas. Ammo endi biz Servlet API-ni loyihamizga uladik va agar shunday bo'lsa, u erdan darslardan foydalanishimiz mumkin. Servletlarimizni "haqiqiy" servletlar qilish uchun biz ularni HttpServlet sinfidan meros qilib olishimiz kerak .

Xaritalash yoki qismlarga ajratish

Endi Tomcat-ga aytsangiz yaxshi bo'lardi, shunda /add so'rovlari bizning AddServlet servletimiz tomonidan hal qilinadi va shuning uchun /list dan so'rovlar ListServlet servlet tomonidan ko'rib chiqiladi . Bu jarayon xaritalash deb ataladi . Bu web.xml faylida ushbu tamoyilga muvofiq amalga oshiriladi :
  • avval biz servletni tasvirlaymiz (biz qandaydir nom beramiz va sinfning o'ziga yo'lni ko'rsatamiz);
  • keyin biz ushbu servletni ma'lum bir manzilga bog'laymiz (biz hozirgina bergan servlet nomini ko'rsatamiz va ushbu servletga so'rovlar yuborilishi kerak bo'lgan manzilni ko'rsatamiz).
Keling, servletni tavsiflaymiz:
<servlet>
    <servlet-name>add</servlet-name>
    <servlet-class>app.servlets.AddServlet</servlet-class>
</servlet>
Endi biz uni manzilga bog'laymiz:
<servlet-mapping>
    <servlet-name>add</servlet-name>
    <url-pattern>/add</url-pattern>
</servlet-mapping>
Ko'rib turganingizdek, servlet nomi ikkala holatda ham bir xil. Buning yordamida Tomcat /add manziliga so'rov kelib tushsa, uni app.servlets.AddServlet servletiga o'tkazish kerakligini biladi . Ikkinchi servlet bilan ham xuddi shunday qilamiz. Natijada, bizning web.xml taxminan quyidagi tarkibga ega:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!-- add servlet -->
    <servlet>
        <servlet-name>add</servlet-name>
        <servlet-class>app.servlets.AddServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>add</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>

    <!-- list servlet -->
    <servlet>
        <servlet-name>list</servlet-name>
        <servlet-class>app.servlets.ListServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>list</servlet-name>
        <url-pattern>/list</url-pattern>
    </servlet-mapping>
</web-app>
Aytgancha, biz bu erda asosiy sahifa uchun belgi yaratmadik ( / da ). Haqiqat shundaki, bu holda bizga kerak emas. Bizning bosh sahifamiz oddiy html fayl bo'lib , u oddiygina ikkita tugmani ko'rsatadi. Dinamik tarkib yo'q, shuning uchun biz uchun alohida servlet yaratish mantiqiy emas, unga / manzilidan so'rovlar yuboriladi va ba'zi jsp ga o'tkazishdan boshqa hech narsa qilmaydi (bu ham bo'lishi kerak edi). yaratilgan), qaysi chiziladi Agar bizda ikkita tugma bo'lsa. Bizga bu kerak emas; biz statik resursdan mamnunmiz. Tomcat so'rovni qabul qilganda, bunday manzilda so'rovni qayta ishlay oladigan bitta servlet yo'qligini tekshiradi va keyin bu manzilda haqiqatan ham tayyor html fayli mavjudligini ko'radi va u muvaffaqiyatli yuboradi. . Biz ilovamizni qayta ishga tushirishimiz mumkin (serverni qayta ishga tushiring yoki xohlaganingizcha qayta joylashtiring) va asosiy sahifa ko'rsatilganiga, hech narsa buzilmaganligiga ishonch hosil qiling, tugmachalarni bosganimizda, o'tishlar sodir bo'ladi, ammo hozircha xato ham bor. yozilgan. Aytgancha, agar ilgari bizda 404 xatolik bo'lsa, endi bizda 405 bor. Bu xaritalash ishlaganligini, servletlar topilganligini anglatadi, ammo ularda so'rovni qayta ishlash uchun mos usullar yo'q edi. Agar ushbu bosqichda siz hali ham 404 xatosiga duch kelsangiz, hamma narsa to'g'ri bajarilgan bo'lsa-da, ehtimol siz g'oyadagi joylashtirish konfiguratsiyasini to'g'rilashingiz kerak. Buni amalga oshirish uchun siz Konfiguratsiyalarni tahrirlash bo'limiga o'tishingiz kerak (boshlash tugmachasining tepasida), oynaning o'ng tomonidagi "O'rnatish" yorlig'iga o'ting va Ilova kontekstida u shunchaki ko'rsatilganligiga ishonch hosil qiling /

Qisqa lirik chekinish: "kaput ostida" nima bo'lyapti?

Ilovamiz Tomcat-da qanday ishlashini allaqachon qiziqtirgandirsiz? U erda nima bo'lyapti? Va main() usuli qayerda ? Brauzeringizga localhost:8080 ni kiritib , ushbu manzilga kirishingiz bilan brauzer http protokoli orqali ushbu manzilga so'rov yuboradi . Umid qilamanki, siz so'rovlar turli xil "turlarda" bo'lishi mumkinligini allaqachon bilasiz, eng mashhurlari GET va POST . Har bir so'rovga javob bo'lishi kerak. GET so'rovi javoban unga tayyor html kodi berilishini kutadi , u brauzerga qaytariladi va brauzer bu kodni har xil harflar, tugmalar va shakllar bilan chiroyli tarzda almashtiradi. POST so'rovi biroz qiziqroq, chunki u bilan birga ba'zi ma'lumotlar ham mavjud. Masalan, foydalanuvchini ro'yxatdan o'tkazish yoki avtorizatsiya shaklida siz ma'lumotlaringizni kiritdingiz va "yuborish" tugmasini bosdingiz. Ayni paytda sizning shaxsiy ma'lumotlaringiz bilan serverga POST so'rovi yuborildi. Server ushbu ma'lumotni qabul qildi, uni qayta ishladi va qandaydir javob qaytardi (masalan, profilingiz bilan HTML sahifasi ). Ularning orasidagi asosiy farq shundaki, GET so'rovlari faqat serverdan ma'lumotlarni olish uchun mo'ljallangan, POST so'rovlari esa ular bilan ba'zi ma'lumotlarni olib yuradi va serverdagi ma'lumotlar o'zgarishi mumkin (masalan, fotosuratingizni serverga yuklaganingizda, u POST so'rovida uchadi va server uni ma'lumotlar bazasiga qo'shadi, ya'ni ba'zi o'zgarishlar yuz beradi.Endi Tomcat-ga qaytaylik.Mijozdan ba'zi so'rovlarni qabul qilganda, u manzilga qaraydi.O'z ma'lumotlarini qidiradi. tegishli servlet bor yoki yo'qligini ko'ring, u shunday manzilga so'rovlarni qayta ishlaydi (yoki darhol qaytarilishi mumkin bo'lgan tayyor resurs).Agar u qaytarish uchun hech narsa topmasa, u HTML sahifasi bilan emas, balki javob beradi. 404 javobi bilan. Agar u ushbu manzilda "o'tirgan" mos servletni topsa, u qanday turdagi so'rovni qabul qilganini (GET, POST yoki boshqa) ko'rib chiqadi va keyin servletdan unda qanday usul borligini so'raydi. Agar servlet bu turni qayta ishlay olmasligini aytsa, Tomcat mijozga 405 kodi bilan javob beradi. Ammo agar mos servlet topilsa va uning mos usuli bo'lsa, Tomcat ushbu servletning ob'ektini yaratadi, uni yangi ish zarrachasida ( thread ) ishga tushiradi, bu servletga alohida ish zarrachasida ishlash imkonini beradi va Tomcat yanada ishlashda davom etadi. o'z-o'zidan, so'rovlarni qabul qilish va yuborish. Bundan tashqari, Tomcat yana ikkita ob'ektni yaratadi: biri HttpServletRequest tipidagi (kelajakda uni qisqacha so'rov deb atayman) va ikkinchisi HttpServletResponse tipidagi.(Men buni javob deb atayman). Birinchi ob'ektda u mijozdan so'rovda olingan barcha ma'lumotlarni joylashtiradi, shuning uchun barcha ma'lumotlarni ushbu ob'ektdan chiqarib olish mumkin. Xo'sh, bularning barchasidan so'ng, u ushbu ikkita ob'ektni alohida ish zarrachasida ishlaydigan servletning tegishli usuliga o'tkazadi. Servlet o'z ishini tugatib, mijozga jo'natishga tayyor bo'lgan javobga ega bo'lishi bilanoq, Tomcatga bayroqni ko'tarib, "Men tugatdim, hamma narsa tayyor" deb aytadi. Tomcat javobni qabul qiladi va mijozga yuboradi. Bu Tomcat-ga so'rovlarni to'xtovsiz qabul qilish va javoblarni yuborish imkonini beradi, shu bilan birga barcha ishlar alohida oqimlarda ishlaydigan servletlar tomonidan amalga oshiriladi. Shunga ko'ra, biz servlet kodini yozganimizda, biz bajariladigan ishni aniqlaymiz. Va ha, siz main() usulini Tomcat-ning o'zida (ha, u Java-da yozilgan) deb o'ylashingiz mumkin va biz Tomcat-ni "boshlaganimizda" main().

Biz GET usullarini servletlar bilan ushlaymiz va oddiy javoblarni yuboramiz

Hozirda bizning servletlarimizda mos usullar (GET) yo'q, shuning uchun Tomcat bizga 405 xatosini qaytaradi. Keling, ularni yarataylik! Servletlarimizni meros qilib olgan HttpServlet klassi turli usullarni belgilaydi. Usullar uchun ba'zi kodlarni o'rnatish uchun biz ularni shunchaki bekor qilamiz. Bunday holda, biz ikkala servletda doGet() usulini bekor qilishimiz kerak.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}
Ko'rib turganingizdek, bu usul ikkita ob'ektni qabul qiladi: req (so'rov) va javob (javob). Bular Tomcat ushbu servletda tegishli usulni chaqirganda biz uchun yaratadigan va to'ldiradigan ob'ektlardir. Birinchidan, eng oddiy javoblarni qilaylik. Buning uchun resp ob'ektini oling va undan javoblarni yozish uchun ishlatilishi mumkin bo'lgan PrintWriter ob'ektini oling. Xo'sh, undan foydalanib, biz oddiy qatorni chop qilamiz.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    PrintWriter writer = resp.getWriter();
    writer.println("Method GET from AddServlet");
}
Biz ListServlet servletida shunga o'xshash ishni qilamiz , shundan so'ng biz serverimizni qayta ishga tushiramiz. Ko'rib turganingizdek, hamma narsa ishlaydi! Tugmalarni bosganingizda, sahifalar biz PrintWriter yordamida “yozgan” matn bilan ochiladi . Shunchaki, biz javoblar bilan sahifalarni yaratish uchun tayyorlagan jsp-dan hech qanday tarzda foydalanilmaydi. Buning sababi, qatl shunchaki ularga etib bormaydi. Serverletning o'zi endi javob ishlab chiqaradi va o'z ishini tugatadi, bu Tomcat-ga mijoz uchun javob tayyorligini bildiradi. Tomcat shunchaki bu javobni oladi va mijozga qaytarib yuboradi. Biz boshqaruvni servletlardan jsp ga o'tkazamiz. Keling, usullarimizning kodini shu tarzda o'zgartiramiz:
  • biz so'rov ob'ektidan so'rov boshqaruvchisi ob'ektini olamiz, bu erda biz boshqaruvni o'tkazmoqchi bo'lgan sahifaning jsp manzilini o'tkazamiz ;
  • qabul qilingan ob'ektdan foydalanib, biz boshqaruvni belgilangan jsp sahifasiga o'tkazamiz va u erga Tomcat-dan olgan so'rov va javob ob'ektlarini biriktirishni unutmang.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    RequestDispatcher requestDispatcher = req.getRequestDispatcher("views/add.jsp");
    requestDispatcher.forward(req, resp);
}
Jsp sahifalarining tanasida (tana yorlig'i ichida) biz qaysi sahifa ko'rsatilayotganini aniq ko'rishimiz uchun biror narsa yozishimiz mumkin. Shundan so'ng biz serverni qayta ishga tushiramiz va tekshiramiz. Asosiy sahifadagi tugmalar bosiladi, sahifalar ochiladi, ya'ni so'rovlar servletlarga yuboriladi, shundan so'ng boshqaruv allaqachon ko'rsatilgan jsp sahifalariga o'tkaziladi. Ana xolos. Maqolaning keyingi qismida biz ilovamizning funksionalligi bilan shug'ullanamiz.

Yana nimani o'qish kerak:

IntelliJ Idea Enterprise-da oddiy veb-loyiha yaratish. Bosqichma-bosqich, rasmlar bilan


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