JavaRush /ื‘ืœื•ื’ Java /Random-HE /ื™ืฆื™ืจืช ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘ืืžืฆืขื•ืช servlets ื•-jsp (ื—ืœืง 1)
ะกั‚ะฐั ะŸะฐัะธะฝะบะพะฒ
ืจึธืžึธื”
ะšะธะตะฒ

ื™ืฆื™ืจืช ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘ืืžืฆืขื•ืช servlets ื•-jsp (ื—ืœืง 1)

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืจืžืช ื”ื™ื“ืข ื”ื ื“ืจืฉืช ืœื”ื‘ื ืช ื”ืžืืžืจ: ื›ื‘ืจ ืคื—ื•ืช ืื• ื™ื•ืชืจ ื”ื‘ื ืชื ืืช Java Core ื•ื”ื™ื™ืชื ืจื•ืฆื™ื ืœื”ืกืชื›ืœ ืขืœ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช JavaEE ื•ืชื›ื ื•ืช ืื™ื ื˜ืจื ื˜. ื–ื” ื”ื’ื™ื•ื ื™ ื‘ื™ื•ืชืจ ืื ืืชื” ืœื•ืžื“ ื›ืขืช ืืช ื”ื—ื™ืคื•ืฉ ืฉืœ Java Collections, ื”ืžื›ืกื” ื ื•ืฉืื™ื ืงืจื•ื‘ื™ื ืœืžืืžืจ. ื™ืฆื™ืจืช ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘ืืžืฆืขื•ืช servlets ื•-jsp (ื—ืœืง 1) - 1ื”ื—ื•ืžืจ ื”ื–ื” ื”ื•ื ื”ืžืฉืš ื”ื’ื™ื•ื ื™ ืœืžืืžืจ ืฉืœื™ ื™ืฆื™ืจืช ืคืจื•ื™ืงื˜ ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘- IntelliJ Idea Enterprise . ื‘ื• ื”ื“ื’ืžืชื™ ื›ื™ืฆื“ ืœื™ืฆื•ืจ ืชื‘ื ื™ืช ืคืจื•ื™ืงื˜ ืื™ื ื˜ืจื ื˜ ืขื•ื‘ื“ืช. ื”ืคืขื ืื ื™ ืืจืื” ืœืš ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ืืš ื™ืคื” ื‘ืืžืฆืขื•ืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื•ืช Java Servlet API ื•-JavaServer Pages API. ืœืืคืœื™ืงืฆื™ื” ืฉืœื ื• ื™ื”ื™ื” ื“ืฃ ื‘ื™ืช ืขื ืฉื ื™ ืงื™ืฉื•ืจื™ื:
  • ืœื“ืฃ ื”ื•ืกืคืช ื”ืžืฉืชืžืฉ;
  • ืœื“ืฃ ืชืฆื•ื’ืช ืจืฉื™ืžืช ืžืฉืชืžืฉื™ื.
ืื ื™ ืขื“ื™ื™ืŸ ืืฉืชืžืฉ ื‘- IntelliJ Idea Enterprise Edition, Apache Maven (ืจืง ื›ื•ืœืœ ื›ืžื” ืชืœื•ืช) ื•- Apache Tomcat. ื‘ืกื•ืฃ, "ื ืงืฉื˜" ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ื‘ืืžืฆืขื•ืช ืžืกื’ืจืช W3.CSS . ื ื ื™ื— ืฉื›ืจื’ืข ื™ืฉ ืœื›ื ื›ื‘ืจ ืคืจื•ื™ืงื˜ ืจื™ืง, ืื•ืชื• ื ืคืชื—ืช ื›ืืŸ. ืื ืœื, ืขื‘ืจื• ืขืœ ื”ืžืืžืจ ื”ืจืืฉื•ืŸ ื•ื”ื›ื™ื ื• ืื•ืชื•. ื–ื” ื™ื™ืงื— ืจืง ื›ืžื” ื“ืงื•ืช :)

ืงืฆืช ืขืœ ืžื‘ื ื” ื”ื™ื™ืฉื•ื ื”ืขืชื™ื“ื™

ื”ื“ืฃ ื”ืจืืฉื™ ืฉืœื ื• ( / ) ื™ื”ื™ื” ื“ืฃ ื”-html ื”ืกื˜ื˜ื™ ื”ืจื’ื™ืœ ื‘ื™ื•ืชืจ ืขื ื›ื•ืชืจืช ืขืœื™ื•ื ื” ื•ืฉื ื™ ืงื™ืฉื•ืจื™ื/ืœื—ืฆื ื™ื:
  • ื”ื•ืกืฃ ืžืฉืชืžืฉ ื—ื“ืฉ (ื™ื™ืฉืœื— ืืœ /add );
  • ื”ืฆื’ ืืช ืจืฉื™ืžืช ื”ืžืฉืชืžืฉื™ื (ืฉื•ืœื— ืืœ /list ).
Tomcat ื™ืชืคื•ืก ื‘ืงืฉื•ืช ืœื›ืชื•ื‘ื•ืช ืืœื• ื•ื™ืฉืœื— ืื•ืชืŸ ืœืื—ื“ ืžืฉื ื™ ื”ืกืจื‘ืœื˜ื™ื ืฉื ื‘ืฆืข (ื ืชืืจ ืืช ื”ืžื™ืคื•ื™ ื‘ืงื•ื‘ืฅ web.xml ). ื•ื”-servlets, ื‘ืชื•ืจื, ื™ืขื‘ื“ื• ื‘ืงืฉื•ืช, ื™ื›ื™ื ื• ื ืชื•ื ื™ื (ืื• ื™ืฉืžืจื• ืื•ืชื ืื ื™ืชื•ื•ืกืฃ ืžืฉืชืžืฉ), ื•ื™ืขื‘ื™ืจื• ืืช ื”ืฉืœื™ื˜ื” ืœืงื‘ืฆื™ ื”-jsp ื”ืžืชืื™ืžื™ื, ืฉื›ื‘ืจ "ื™ืขื‘ื“ื•" ืืช ื”ืชื•ืฆืื”. ื ืื—ืกืŸ ืืช ื”ื ืชื•ื ื™ื ื‘ืจืฉื™ืžื” ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ (List).

ื‘ื•ืื• ื ื™ืฆื•ืจ ื“ืฃ ื‘ื™ืช ืกื˜ื˜ื™

ืื ื™ืฉ ืœืš index.jsp ื‘ืชื™ืงื™ื™ืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœืš , ืžื—ืง ืื•ืชื”. ื‘ืžืงื•ื ื–ืืช, ื‘ืชื™ืงื™ื™ื” ื–ื• ื ื™ืฆื•ืจ ืงื•ื‘ืฅ HTML ืคืฉื•ื˜ ื‘ืฉื index.html :
<!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>
ืื™ืŸ ื›ืืŸ ืฉื•ื ื“ื‘ืจ ืžืกื•ื‘ืš. ื‘ื›ื•ืชืจืช ืื ื• ืžืฆื™ื™ื ื™ื ืืช ื”ื›ื•ืชืจืช ืฉืœ ื”ื“ืฃ ืฉืœื ื•. ื‘ื’ื•ืฃ ื”ืขืžื•ื“ ื™ืฉ ืœื ื• ืฉื ื™ divs ืขื™ืงืจื™ื™ื: header (header) ื•ืชื•ื›ืŸ (content). ื‘ืชื•ื›ืŸ ื™ืฉ ืœื ื• ืžื—ื–ื™ืง ืœื›ืคืชื•ืจื™ื ืฉืœื ื•, ื•ืœืžืขืฉื” ืฉื ื™ ื›ืคืชื•ืจื™ื ืฉื‘ืœื—ื™ืฆื” ืขืœื™ื”ื ื ืฉืœื—ื™ื ืœื›ืชื•ื‘ื•ืช ื”ืžืชืื™ืžื•ืช. ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืืช ื”ืคืจื•ื™ืงื˜ ื•ืœืจืื•ืช ืื™ืš ื”ื•ื ื ืจืื” ืขื›ืฉื™ื•. ืื ืชืœื—ืฅ ืขืœ ื”ื›ืคืชื•ืจื™ื, ื“ืคื™ื ืขื ืฉื’ื™ืืช 404 ื™ื™ืคืชื—ื• ื›ื™ ืื™ืŸ ืœื ื• ืื•ืชื ืขื“ื™ื™ืŸ. ืื‘ืœ ื–ื” ืžืจืžื– ืฉื”ื›ืคืชื•ืจื™ื ืขื•ื‘ื“ื™ื. ื”ืจืฉื• ืœื™ ืœืฆื™ื™ืŸ ืฉื–ื• ืœื ื”ืื•ืคืฆื™ื” ื”ืื•ื ื™ื‘ืจืกืœื™ืช ื‘ื™ื•ืชืจ, ืžื›ื™ื•ื•ืŸ ืฉืื ืœืคืชืข ื”ืฉื‘ืชืช JavaScript, ื”ื›ืคืชื•ืจื™ื ื”ืœืœื• ืœื ื™ื•ืขื™ืœื• ื‘ื“ืคื“ืคืŸ. ืื‘ืœ ื ื ื™ื— ืฉืืฃ ืื—ื“ ืœื ื”ืฉื‘ื™ืช ืืช JavaScript :). ื‘ืจื•ืจ ืฉืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืงื™ืฉื•ืจื™ื ืคืฉื•ื˜ื™ื, ืื‘ืœ ืื ื™ ืžืขื“ื™ืฃ ื›ืคืชื•ืจื™ื. ืืชื” ืขื•ืฉื” ืžื” ืฉืืชื” ื”ื›ื™ ืื•ื”ื‘. ื•ืืœ ืชืกืชื›ืœ ืขืœ ื–ื” ืฉื‘ื“ื•ื’ืžืื•ืช ืฉืœื™ ื™ื”ื™ื• ื”ืจื‘ื” divs . ื•ืื– ื ืžืœื ืื•ืชื ื‘ืกื’ื ื•ื ื•ืช, ื•ื”ื›ืœ ื™ื™ืจืื” ื™ื•ืชืจ ื™ืคื” :).

ืฆื•ืจ ืงื‘ืฆื™ jsp ื›ื“ื™ ืœืขื‘ื“ ืืช ื”ืชื•ืฆืื”

ื‘ืื•ืชื” ืกืคืจื™ื™ืช ืื™ื ื˜ืจื ื˜ , ื ื™ืฆื•ืจ ืชื™ืงื™ื” ืฉื‘ื” ื ื›ื ื™ืก ืืช ืงื‘ืฆื™ ื”-JSP ืฉืœื ื• . ืงืจืืชื™ ืœื–ื” ื”ืฉืงืคื•ืช, ื•ืฉื•ื‘ ืืคืฉืจ ืœืืœืชืจ. ื‘ืชื™ืงื™ื™ื” ื–ื• ื ื™ืฆื•ืจ ืฉื ื™ ืงื‘ืฆื™ jsp:
  • add.jsp - ื“ืฃ ืœื”ื•ืกืคืช ืžืฉืชืžืฉื™ื;
  • list.jsp - ืขืžื•ื“ ืœื”ืฆื’ืช ืจืฉื™ืžืช ืžืฉืชืžืฉื™ื.
ื‘ื•ืื• ื ื™ืชืŸ ืœื”ื ืืช ื›ื•ืชืจื•ืช ื”ื“ืคื™ื ื”ืžืชืื™ืžื•ืช. ืžืฉื”ื• ื›ืžื• "ื”ื•ืกืฃ ืžืฉืชืžืฉ ื—ื“ืฉ" ื•"ืจืฉื™ืžืช ืžืฉืชืžืฉื™ื", ื•ื ืฉืื™ืจ ืืช ื–ื” ื›ืš ืœืขืช ืขืชื”.

ื‘ื•ืื• ื ื™ืฆื•ืจ ืฉื ื™ ืกืจื‘ืœื˜ื™ื

Servlets ื™ืงื‘ืœื• ื•ื™ืขื‘ื“ื• ื‘ืงืฉื•ืช ืฉ-Tomcat ื™ืขื‘ื™ืจ ืืœื™ื”ื. ื‘ืชื™ืงื™ื™ืช src/main/java ื ื™ืฆื•ืจ ื—ื‘ื™ืœืช ืืคืœื™ืงืฆื™ื” , ืฉืชื›ื™ืœ ืืช ื”ืžืงื•ืจื•ืช ืฉืœื ื•. ืฉื ื™ื”ื™ื• ืœื ื• ืขื•ื“ ื—ื‘ื™ืœื•ืช ืฉื•ื ื•ืช. ืœื›ืŸ, ื›ื“ื™ ืฉื”ื—ื‘ื™ืœื•ืช ื”ืœืœื• ืœื ื™ื™ื•ื•ืฆืจื• ืื—ืช ื‘ืชื•ืš ื”ืฉื ื™ื™ื”, ื‘ื•ืื• ื ื™ืฆื•ืจ ืžื—ืœืงื” ื›ืœืฉื”ื™ ื‘ื—ื‘ื™ืœืช ื”ืืคืœื™ืงืฆื™ื” (ื•ืื– ื ืžื—ืง ืื•ืชื”). ื›ืขืช ื ื™ืฆื•ืจ ืฉืœื•ืฉ ื—ื‘ื™ืœื•ืช ืฉื•ื ื•ืช ื‘ื—ื‘ื™ืœืช ื”ืืคืœื™ืงืฆื™ื” :
  • ื™ืฉื•ื™ื•ืช - ื”ื™ืฉื•ื™ื•ืช ืฉืœื ื• ื™ืฉื›ื‘ื• ื›ืืŸ (ื”ืžื—ืœืงื” ืขืฆืžื”, ืฉืชืชืืจ ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ ืžืฉืชืžืฉ);
  • ื“ื’ื - ื”ื“ื’ื ืฉืœื ื• ื™ื”ื™ื” ื›ืืŸ (ืขื•ื“ ืขืœ ื–ื” ืงืฆืช ืžืื•ื—ืจ ื™ื•ืชืจ);
  • ืกืจื‘ืœื˜ื™ื - ื•ื‘ื›ืŸ, ื”ื ื” ื™ื”ื™ื• ื”ืกืจื‘ืœื˜ื™ื ืฉืœื ื•.
ืœืื—ืจ ืžื›ืŸ, ืืชื” ื™ื›ื•ืœ ืœื”ืกื™ืจ ื‘ื‘ื˜ื—ื” ืืช ื”ืžื—ืœืงื” ืžื—ื‘ื™ืœืช ื”ืืคืœื™ืงืฆื™ื” (ืื ื™ืฆืจืช ืื•ืชื”, ื›ืžื•ื‘ืŸ). ื‘ื—ื‘ื™ืœืช servlets ื ื™ืฆื•ืจ ืฉืชื™ ืžื—ืœืงื•ืช:
  • AddServlet - ื™ืขื‘ื“ ื‘ืงืฉื•ืช ืฉื”ืชืงื‘ืœื• ื‘- /add ;
  • ListServlet - ื™ืขื‘ื“ ื‘ืงืฉื•ืช ืฉื”ืชืงื‘ืœื• ื‘- /list .

ื—ื™ื‘ื•ืจ ืชืœื•ืช ื‘-Maven

Tomcat ื’ืจืกื” 9.* ืžื™ื™ืฉืžืช ืืช Servlet ื’ืจืกื” 4.0 ื•ืืช ืžืคืจื˜ื™ JavaServer Pages ื’ืจืกื” 2.3. ื–ื” ื›ืชื•ื‘ ื‘ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืฉืœ Tomcat 9 ื‘ืคืกืงื” ื”ืจืืฉื•ื ื” ื‘ืฉื•ืจื” ื”ืฉื ื™ื™ื”. ื–ื” ืื•ืžืจ ืฉืื ืืชื”, ื›ืžื•ื ื™, ืžืฉืชืžืฉ ื‘ื’ืจืกื” ื–ื• ืฉืœ Tomcat, ืื– ื”ืงื•ื“ ืฉื ื›ืชื•ื‘ ื•ื ืฉืœื— ืœื”ืคืขืœื” ื™ืฉืชืžืฉ ื‘ื“ื™ื•ืง ื‘ื’ืจืกืื•ืช ืฉืฆื•ื™ื ื•. ืื‘ืœ ื”ื™ื™ื ื• ืจื•ืฆื™ื ืœืงื‘ืœ ืืช ื”ืžืคืจื˜ื™ื ื”ืืœื” ื‘ืคืจื•ื™ืงื˜ ืฉืœื ื•, ื›ืš ืฉื”ืงื•ื“ ืฉืœื ื• ืฉืžืฉืชืžืฉ ื‘ื”ื ืœืคื—ื•ืช ื™ืงืžืคืœ ื‘ื”ืฆืœื—ื”. ื•ื‘ืฉื‘ื™ืœ ื–ื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืขืžื™ืก ืื•ืชื ื‘ืคืจื•ื™ืงื˜ ืฉืœื ื•. ื–ื” ื”ืžืงื•ื ืฉื‘ื• ืžื™ื™ื‘ืŸ ื‘ื ืœื”ืฆื™ืœ.

ื”ื›ืœืœ ื”ื›ืœืœื™ ื”ื•ื ื–ื”: ืื ืืชื” ืฆืจื™ืš ืœื—ื‘ืจ ืžืฉื”ื• ืœืคืจื•ื™ืงื˜ ืฉืœืš ื‘ืืžืฆืขื•ืช Maven:

  • ืขื‘ื•ืจ ืืœ ืืชืจ ื”ืžืื’ืจ ืฉืœ Maven;
  • ื—ืคืฉ ืฉื ืืช ื”ืกืคืจื™ื™ื” ืฉืืชื” ืฆืจื™ืš ื•ืืช ื”ื’ืจืกื” ืฉืืชื” ืฆืจื™ืš;
  • ืืชื” ืžืงื‘ืœ ืืช ืงื•ื“ ื”ืชืœื•ืช ืฉืฆืจื™ืš ืœื”ื›ื ื™ืก ืœ-pom.xml ืฉืœืš;
  • ืœึฐื”ึทื›ื ึดื™ืก! :)
ืื– ื‘ื•ืื• ื ืชื—ื™ืœ. ืจืืฉื™ืช, ื‘ื•ืื• ื ื›ื™ืŸ ืงื•ื‘ืฅ ืคื•ื . ืื™ืคืฉื”ื• ืื—ืจื™ /version ืื‘ืœ ืœืคื ื™ /project , ื”ื›ื ืก ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:
<dependencies>

</dependencies>
ืœืคื™ื›ืš, ืฆื™ื™ื ื• ืฉื‘ืชื•ืš ื”ืชื’ื™ื ื”ืœืœื• ื ืคืจื˜ ืืช ื”ืชืœื•ืช ืฉืื ื• ืฆืจื™ื›ื™ื. ื›ืขืช ืขื‘ื•ืจ ืืœ mvnrepository.com , ื™ื”ื™ื” ืฉื“ื” ื—ื™ืคื•ืฉ ื‘ื—ืœืง ื”ืขืœื™ื•ืŸ. ืจืืฉื™ืช, ื”ื–ืŸ servlet ืœื—ื™ืคื•ืฉ. ื”ืชื•ืฆืื” ื”ืจืืฉื•ื ื”, ืฉื‘ื” ื™ืฉ ื™ื•ืชืจ ืžืฉื‘ืขืช ืืœืคื™ื ืฉื™ืžื•ืฉื™ื, ืžืชืื™ืžื” ืœื ื•. ืื ื• ื–ื•ื›ืจื™ื ืฉืื ื• ื–ืงื•ืงื™ื ืœื’ืจืกื” 4.0 (ืขื‘ื•ืจ Tomcat 9; ืขื‘ื•ืจ ื’ืจืกืื•ืช ืื—ืจื•ืช, ื™ื™ืฉื•ืžื™ื ื™ืฉื ื™ื ื™ื•ืชืจ ืขืฉื•ื™ื™ื ืœื”ืชืื™ื). ื–ื•ื”ื™ ื’ืจืกื” ืขื“ื›ื ื™ืช ืœืžื“ื™, ื›ืš ืฉืื™ืŸ ื”ืจื‘ื” ืฉื™ืžื•ืฉื™ื, ืื‘ืœ ื–ื• ื”ื’ืจืกื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื. ื™ืคืชื— ื“ืฃ ืฉื‘ื• ืชื•ื›ืœื• ืœืงื‘ืœ ืืช ื”ืงื•ื“ ืœืชืœื•ืช ื–ื• ืขื‘ื•ืจ ืžื ื”ืœื™ ื—ื‘ื™ืœื•ืช ืฉื•ื ื™ื ื•ืืคื™ืœื• ืชื•ื›ืœื• ืคืฉื•ื˜ ืœื”ื•ืจื™ื“ ืื•ืชื•. ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืจื•ืฆื™ื ืœื—ื‘ืจ ืื•ืชื• ื‘ืืžืฆืขื•ืช Maven, ืื ื• ื‘ื•ื—ืจื™ื ืืช ื”ืงื•ื“ ื‘ืœืฉื•ื ื™ืช Maven. ืื ื• ืžืขืชื™ืงื™ื ื•ืžื“ื‘ื™ืงื™ื ืœืงื•ื‘ืฅ ื”-pom ืฉืœื ื• ื‘ืชื•ืš ืงื˜ืข ื”ืชืœื•ืช. ืื ืžื•ืคื™ืขื” ื”ื•ื“ืขื” ื‘ืคื™ื ื” ื”ื™ืžื ื™ืช ื”ืชื—ืชื•ื ื” ืฉืœ IDEA ืฉืฉื•ืืœืช ืื ื‘ืจืฆื•ื ื ื• ืœืืคืฉืจ ื™ื™ื‘ื•ื โ€‹โ€‹ืื•ื˜ื•ืžื˜ื™, ืื ื• ืžืกื›ื™ืžื™ื. ืื ืกื™ืจื‘ืช ื‘ื˜ืขื•ืช, ืขื‘ื•ืจ ืืœ "ื”ื’ื“ืจื•ืช" ื•ื”ืคืขืœ ื™ื™ื‘ื•ื โ€‹โ€‹ืื•ื˜ื•ืžื˜ื™ ื‘ืื•ืคืŸ ื™ื“ื ื™: ื”ื’ื“ืจื•ืช (Ctrl + Alt + S) -> Build, Execution, Deployment -> Maven -> ื™ื™ื‘ื•ื โ€‹โ€‹ื–ื” ื™ืฉืžื•ืจ ืืช ืงื•ื‘ืฅ ื”-pom ื•ืงื•ื‘ืฆื™ ื”ืชืฆื•ืจื” ืฉืœ IDEA ืขื‘ื•ืจ ื–ื” ืคืจื•ื™ืงื˜ ืžืกื•ื ื›ืจืŸ. ื›ืขืช, ื‘ืืžืฆืขื•ืช ืื•ืชื• ืขื™ืงืจื•ืŸ, ื ืžืฆื ื•ื ื—ื‘ืจ ืืช JavaServer Pages ื’ืจืกื” 2.3 (ื”ื–ืŸ jsp ื‘ื—ื™ืคื•ืฉ). ื•ืžื›ื™ื•ื•ืŸ ืฉื›ื‘ืจ ื”ืฉืชืžืฉื ื• ื‘-Maven, ื‘ื•ื ื ืกืคืจ ืœื• ืžื™ื“ ืฉื”ืžืงื•ืจื•ืช ืฉืœื ื• ืชื•ืืžื™ื ืœืชื—ื‘ื™ืจ ืฉืœ Java 8, ื•ืฉืฆืจื™ืš ืœื”ื™ื“ื•ืจ ืื•ืชื ืœืงื•ื“ ื‘ืชื™ื ืฉืœ ืื•ืชื” ื’ืจืกื”. ืื—ืจื™ ื›ืœ ื”ืžื ื™ืคื•ืœืฆื™ื•ืช ื”ืืœื”, pom.xml ืฉืœื ื• ื™ื™ืจืื” ื‘ืขืจืš ื›ืš:
<?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>

ื”ื•ืคื›ื™ื ืืช ื”ืกืจื‘ื˜ื™ื ืฉืœื ื• ืœืกืจื‘ืœื˜ื™ื ืืžื™ืชื™ื™ื

ื‘ืฉืœื‘ ื–ื”, ืฆืžื“ ื”ืกืจื‘ืœื˜ื™ื ืฉื™ืฆืจื ื• ื”ื ืœืžืขืฉื” ืจืง ืฉื™ืขื•ืจื™ื ืจื’ื™ืœื™ื. ืื™ืŸ ืœื”ื ืฉื•ื ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช. ืื‘ืœ ืขื›ืฉื™ื• ื—ื™ื‘ืจื ื• ืืช ื”-API ืฉืœ Servlet ืœืคืจื•ื™ืงื˜ ืฉืœื ื•, ื•ืื ื›ืŸ, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืžื—ืœืงื•ืช ืžืฉื. ื›ื“ื™ ืœื”ืคื•ืš ืืช ื”ืกืจื‘ืœื˜ื™ื ืฉืœื ื• ืœ"ืืžื™ืชื™ื™ื", ืื ื—ื ื• ืคืฉื•ื˜ ืฆืจื™ื›ื™ื ืœืจืฉืช ืื•ืชื ืžื”ืžื—ืœืงื” HttpServlet .

ืžื™ืคื•ื™ ืื• ื—ืœื•ืงื” ืœืžื—ื™ืฆื•ืช

ืขื›ืฉื™ื• ื–ื” ื™ื”ื™ื” ื ื—ืžื“ ืื™ื›ืฉื”ื• ืœืกืคืจ ืœ-Tomcat ื›ืš ืฉื‘ืงืฉื•ืช ืž- /add ื™ื˜ื•ืคืœื• ืขืœ-ื™ื“ื™ servlet AddServlet ืฉืœื ื• , ื•ืœื›ืŸ ื‘ืงืฉื•ืช ืž- /list ืžื˜ื•ืคืœื•ืช ืขืœ-ื™ื“ื™ ื”- servlet ListServlet . ืชื”ืœื™ืš ื–ื” ื ืงืจื ืžื™ืคื•ื™ . ื–ื” ื ืขืฉื” ื‘ืงื•ื‘ืฅ web.xml ืœืคื™ ื”ืขื™ืงืจื•ืŸ ื”ื–ื”:
  • ืจืืฉื™ืช ืื ื• ืžืชืืจื™ื ืืช ื”ืกืจื‘ืœื˜ (ืื ื• ื ื•ืชื ื™ื ืฉื ื›ืœืฉื”ื• ื•ืžืฆื™ื™ื ื™ื ืืช ื”ื ืชื™ื‘ ืœืžื—ืœืงื” ืขืฆืžื”);
  • ืœืื—ืจ ืžื›ืŸ ืื ื• ืงื•ืฉืจื™ื ืืช ื”ืกืจื‘ืœื˜ ื”ื–ื” ืœื›ืชื•ื‘ืช ืกืคืฆื™ืคื™ืช (ืื ื• ืžืฆื™ื™ื ื™ื ืืช ืฉื ื”ืกืจื‘ืœื˜ ืฉื–ื” ืขืชื” ื ืชื ื• ืœื• ื•ืžืฆื™ื™ื ื™ื ืืช ื”ื›ืชื•ื‘ืช ืฉืžืžื ื” ื™ืฉ ืœืฉืœื•ื— ื‘ืงืฉื•ืช ืœืกืจื‘ืœื˜ ื–ื”).
ื‘ื•ืื• ื ืชืืจ ืืช ื”ืกืจื‘ืœื˜:
<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>
ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืฉื ื”-servlet ื–ื”ื” ื‘ืฉื ื™ ื”ืžืงืจื™ื. ื”ื•ื“ื•ืช ืœื›ืš, Tomcat ื™ื•ื“ืข ืฉืื ื‘ืงืฉื” ืžื’ื™ืขื” ืœื›ืชื•ื‘ืช /add , ื™ืฉ ืœื”ืขื‘ื™ืจ ืื•ืชื” ืœืฉืจืช app.servlets.AddServlet . ืื ื—ื ื• ืขื•ืฉื™ื ืืช ืื•ืชื• ื”ื“ื‘ืจ ืขื ื”ืกืจื‘ืœ ื”ืฉื ื™. ื›ืชื•ืฆืื” ืžื›ืš, ืœ-web.xml ืฉืœื ื• ื™ืฉ ื‘ืขืจืš ืืช ื”ืชื•ื›ืŸ ื”ื‘ื:
<?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>
ืื’ื‘, ืœื ื™ืฆืจื ื• ืกื™ืžื•ืŸ ืขื‘ื•ืจ ื”ืขืžื•ื“ ื”ืจืืฉื™ ื›ืืŸ (ื‘- / ). ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉื‘ืžืงืจื” ื”ื–ื” ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืืช ื–ื”. ื“ืฃ ื”ื‘ื™ืช ืฉืœื ื• ื”ื•ื ืงื•ื‘ืฅ HTML ืคืฉื•ื˜ ืฉืžืฆื™ื’ ืฉื ื™ ื›ืคืชื•ืจื™ื. ืื™ืŸ ืชื•ื›ืŸ ื“ื™ื ืžื™, ื•ืœื›ืŸ ืื™ืŸ ื˜ืขื ืœื™ืฆื•ืจ ืขื‘ื•ืจื• ืกืจื‘ืœื˜ ื ืคืจื“, ืฉืืœื™ื• ื™ื™ืฉืœื—ื• ื‘ืงืฉื•ืช ืžื”ื›ืชื•ื‘ืช / ื•ืืฉืจ ืœื ื™ืขืฉื” ื“ื‘ืจ ืžืœื‘ื“ ื”ืขื‘ืจืช ื‘ื™ืฆื•ืข ืœืื™ื–ื” jsp (ืฉื’ื ื”ื•ื ืฆืจื™ืš ืœื”ื™ื•ืช ื ื•ืฆืจ), ืฉื™ืฆื™ื™ืจ ืœื• ืจืง ื”ื™ื• ืœื ื• ืฉื ื™ ื›ืคืชื•ืจื™ื. ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืืช ื–ื”; ืื ื—ื ื• ืฉืžื—ื™ื ืขื ืžืฉืื‘ ืกื˜ื˜ื™. ื›ืืฉืจ Tomcat ื™ืงื‘ืœ ื‘ืงืฉื”, ื”ื•ื ื™ื‘ื“ื•ืง ืฉืื™ืŸ ืืคื™ืœื• servlet ืื—ื“ ืฉื™ื›ื•ืœ ืœืขื‘ื“ ืืช ื”ื‘ืงืฉื” ื‘ื›ืชื•ื‘ืช ื›ื–ื•, ื•ืื– ื”ื•ื ื™ืจืื” ืฉื‘ื›ืชื•ื‘ืช ื”ื–ื• ื™ืฉ ืœืžืขืฉื” ืงื•ื‘ืฅ html ืžื•ื›ืŸ , ืฉื”ื•ื ื™ืฉืœื— ื‘ื”ืฆืœื—ื” . ื ื•ื›ืœ ืœื”ืจื™ืฅ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืฉื•ื‘ (ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืฉืจืช ืื• ืœืคืจื•ืก ืžื—ื“ืฉ, ื›ืจืฆื•ื ืš) ื•ืœื•ื•ื“ื ืฉื”ื“ืฃ ื”ืจืืฉื™ ืžืขื•ื‘ื“, ืฉื•ื ื“ื‘ืจ ืœื ื ืฉื‘ืจ, ื›ืฉืื ื—ื ื• ืœื•ื—ืฆื™ื ืขืœ ื”ื›ืคืชื•ืจื™ื ืžืชืจื—ืฉื™ื ืžืขื‘ืจื™ื, ืื‘ืœ ื‘ื™ื ืชื™ื™ื ื™ืฉ ื’ื ืฉื’ื™ืื” ื›ืชื•ื‘. ืื’ื‘, ืื ืœืคื ื™ ื›ืŸ ื”ื™ื™ืชื” ืœื ื• ืฉื’ื™ืื” 404, ืขื›ืฉื™ื• ื™ืฉ ืœื ื• 405. ื–ื” ืื•ืžืจ ืฉื”ืžื™ืคื•ื™ ืขื‘ื“, ื”ืกืจื‘ืœื˜ื™ื ื ืžืฆืื•, ืื‘ืœ ืคืฉื•ื˜ ืœื ื”ื™ื• ืœื”ื ืฉื™ื˜ื•ืช ืžืชืื™ืžื•ืช ืœืขื‘ื“ ืืช ื”ื‘ืงืฉื”. ืื ื‘ืฉืœื‘ ื–ื” ืืชื” ืขื“ื™ื™ืŸ ืžืงื‘ืœ ืฉื’ื™ืืช 404, ืœืžืจื•ืช ืฉื”ื›ืœ ื ืขืฉื” ื›ื”ืœื›ื”, ืื•ืœื™ ื›ื“ืื™ ืœืชืงืŸ ืืช ืชืฆื•ืจืช ื”ืคืจื™ืกื” ื‘ืจืขื™ื•ืŸ. ืœืฉื ื›ืš, ืขืœื™ืš ืœืขื‘ื•ืจ ืœ- Edit configurations (ื‘ื—ืœืง ื”ืขืœื™ื•ืŸ ืœื™ื“ ื›ืคืชื•ืจ ื”ื”ืชื—ืœื”), ืœืขื‘ื•ืจ ืœืœืฉื•ื ื™ืช Deployment ื‘ืฆื“ ื™ืžื™ืŸ ืฉืœ ื”ื—ืœื•ืŸ ื•ืœื•ื•ื“ื ืฉื‘ื”ืงืฉืจ ืฉืœ Application ื–ื” ืคืฉื•ื˜ ืžืฆื•ื™ืŸ /

ืกื˜ื™ื” ืœื™ืจื™ืช ืงืฆืจื”: ืžื” ืงื•ืจื” "ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข"?

ื‘ื˜ื— ื›ื‘ืจ ืชื”ื™ืชื ืื™ืš ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืขื•ื‘ื“ืช ื‘ื˜ื•ืžืงื˜? ืžื” ืงื•ืจื” ืฉื? ื•ืื™ืคื” ื”ืฉื™ื˜ื” main() ? ื‘ืจื’ืข ืฉืืชื” ืžืงืœื™ื“ localhost:8080 ื‘ื“ืคื“ืคืŸ ืฉืœืš ื•ืขื•ื‘ืจ ืœื›ืชื•ื‘ืช ื–ื•, ื”ื“ืคื“ืคืŸ ืฉื•ืœื— ื‘ืงืฉื” ืœื›ืชื•ื‘ืช ื–ื• ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ http . ืื ื™ ืžืงื•ื•ื” ืฉืืชื” ื›ื‘ืจ ืžื•ื“ืข ืœื›ืš ืฉื‘ืงืฉื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžืกื•ื’ื™ื ืฉื•ื ื™ื, ื›ืฉื”ืคื•ืคื•ืœืจื™ื™ื ื‘ื™ื•ืชืจ ื”ื GET ื•- POST . ืœื›ืœ ื‘ืงืฉื” ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžืขื ื”. ื‘ืงืฉืช GET ืžืฆืคื” ืฉื‘ืชื’ื•ื‘ื” ื™ื™ื ืชืŸ ืœื” ืงื•ื“ HTML ืžื•ื›ืŸ , ืฉื™ื•ื—ื–ืจ ืœื“ืคื“ืคืŸ, ื•ื”ื“ืคื“ืคืŸ ื™ื—ืœื™ืฃ ื™ืคื” ืืช ื”ืงื•ื“ ื”ื–ื” ื‘ื›ืœ ืžื™ื ื™ ืื•ืชื™ื•ืช, ื›ืคืชื•ืจื™ื ื•ื˜ืคืกื™ื. ื‘ืงืฉืช ื”-POST ืงืฆืช ื™ื•ืชืจ ืžืขื ื™ื™ื ืช, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ื ื•ืฉืืช ืื™ืชื” ื’ื ืงืฆืช ืžื™ื“ืข. ืœื“ื•ื’ืžื”, ื‘ื˜ื•ืคืก ื”ืจื™ืฉื•ื ืื• ื”ื”ืจืฉืื” ืฉืœ ื”ืžืฉืชืžืฉ, ื”ื–ื ืช ืืช ื”ื ืชื•ื ื™ื ืฉืœืš ื•ืœื—ืฆืช ืขืœ "ืฉืœื—". ื‘ืจื’ืข ื–ื” ื ืฉืœื—ื” ื‘ืงืฉืช POST ืœืฉืจืช ืขื ื”ืžื™ื“ืข ื”ืื™ืฉื™ ืฉืœืš ื‘ืคื ื™ื. ื”ืฉืจืช ืงื™ื‘ืœ ืืช ื”ืžื™ื“ืข ื”ื–ื”, ืขื™ื‘ื“ ืื•ืชื• ื•ื”ื—ื–ื™ืจ ืื™ื–ื•ืฉื”ื™ ืชื’ื•ื‘ื” (ืœื“ื•ื’ืžื”, ื“ืฃ HTML ืขื ื”ืคืจื•ืคื™ืœ ืฉืœืš). ื”ื”ื‘ื“ืœ ื”ืžื”ื•ืชื™ ื‘ื™ื ื™ื”ืŸ ื”ื•ื ืฉื‘ืงืฉื•ืช GET ืžื™ื•ืขื“ื•ืช ืจืง ืœืงื‘ืœ ื ืชื•ื ื™ื ืžื”ืฉืจืช, ื‘ืขื•ื“ ืฉื‘ืงืฉื•ืช POST ื ื•ืฉืื•ืช ืื™ืชืŸ ืžื™ื“ืข ืžืกื•ื™ื, ื•ื”ื ืชื•ื ื™ื ื‘ืฉืจืช ืขืฉื•ื™ื™ื ืœื”ืฉืชื ื•ืช (ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืืชื” ืžืขืœื” ืืช ื”ืชืžื•ื ื” ืฉืœืš ืœืฉืจืช, ื–ื” ื™ื˜ื•ืก ื‘ื‘ืงืฉืช POST ื•ื”ืฉืจืช ื™ื•ืกื™ืฃ ืื•ืชื” ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื›ืœื•ืžืจ ื™ืชืจื—ืฉ ืฉื™ื ื•ื™ ื›ืœืฉื”ื•. ืขื›ืฉื™ื• ื ื—ื–ื•ืจ ืœ- Tomcat. ื›ืืฉืจ ื”ื•ื ืžืงื‘ืœ ื‘ืงืฉื” ื›ืœืฉื”ื™ ืžื”ืœืงื•ื—, ื”ื•ื ืžืกืชื›ืœ ืขืœ ื”ื›ืชื•ื‘ืช. ืžื—ืคืฉ ืืช ื”ื ืชื•ื ื™ื ืฉืœื• ืœ ืœืจืื•ืช ืื ื™ืฉ servlet ืžืชืื™ื, ืฉื™ืขื‘ื“ ื‘ืงืฉื•ืช ืœื›ืชื•ื‘ืช ื›ื–ื• (ืื• ืžืฉืื‘ ืžื•ื›ืŸ ืฉื ื™ืชืŸ ืœื”ื—ื–ื™ืจ ืžื™ื“). ืื ื”ื•ื ืœื ืžื•ืฆื ืžื” ืœื”ื—ื–ื™ืจ, ื”ื•ื ืžื’ื™ื‘ ืœื ื‘ื“ืฃ html, ืืœื ืขื ืชื’ื•ื‘ืช 404. ืื ื”ื•ื ืžื•ืฆื servlet ืžืชืื™ื, ืฉ"ื™ื•ืฉื‘" ืขืœ ื”ื›ืชื•ื‘ืช ื”ื–ื•, ื”ื•ื ื‘ื•ื—ืŸ ืื™ื–ื” ืกื•ื’ ื‘ืงืฉื” ื”ื•ื ืงื™ื‘ืœ (GET, POST ืื• ืžืฉื”ื• ืื—ืจ), ื•ืื– ืฉื•ืืœ ืืช ื”-servlet ืื ื™ืฉ ืœื• ืฉื™ื˜ื” ื™ื›ื•ืœ ืœื”ืชืžื•ื“ื“ ืขื ืกื•ื’ ื–ื” ืฉืœ ื‘ืงืฉื”. ืื ื”-servlet ืื•ืžืจ ืฉื”ื•ื ืœื ื™ื›ื•ืœ ืœืขื‘ื“ ืืช ื”ืกื•ื’ ื”ื–ื”, Tomcat ืžื’ื™ื‘ ืœืœืงื•ื— ืขื ืงื•ื“ 405. ื–ื” ืžื” ืฉืงืจื” ืœื ื•. ืื‘ืœ ืื ื ืžืฆื servlet ืžืชืื™ื, ื•ื™ืฉ ืœื• ืฉื™ื˜ื” ืžืชืื™ืžื”, Tomcat ื™ื•ืฆืจ ืื•ื‘ื™ื™ืงื˜ ืฉืœ servlet ื–ื”, ืžืจื™ืฅ ืื•ืชื• ื‘ืฉืจืฉื•ืจ ื—ื“ืฉ ( thread ), ืžื” ืฉืžืืคืฉืจ ืœ-servlet ืœืขื‘ื•ื“ ื‘ืฉืจืฉื•ืจ ื ืคืจื“, ื•- Tomcat ืžืžืฉื™ืš ืœืขื‘ื•ื“ ื”ืœืื” ื‘ืคื ื™ ืขืฆืžื•, ืงื‘ืœื” ื•ืฉืœื™ื—ื” ืฉืœ ื‘ืงืฉื•ืช. ื‘ื ื•ืกืฃ, Tomcat ื™ื•ืฆืจ ืฉื ื™ ืื•ื‘ื™ื™ืงื˜ื™ื ื ื•ืกืคื™ื: ืื—ื“ ืžืกื•ื’ HttpServletRequest (ื‘ืงืฆืจื” ืืงืจื ืœื–ื” ื‘ืงืฉื” ื‘ืขืชื™ื“), ื•ื”ืฉื ื™ ืžืกื•ื’ HttpServletResponse(ืื ื™ ืืงืจื ืœื–ื” ื”ืชืฉื•ื‘ื”). ื‘ืื•ื‘ื™ื™ืงื˜ ื”ืจืืฉื•ืŸ ื”ื•ื ืžืฆื™ื‘ ืืช ื›ืœ ื”ื ืชื•ื ื™ื ืฉื”ื•ื ืงื™ื‘ืœ ื‘ื‘ืงืฉื” ืžื”ืœืงื•ื—, ื›ืš ืฉื ื™ืชืŸ ืœืฉืœื•ืฃ ืืช ื›ืœ ื”ื ืชื•ื ื™ื ื”ืืœื” ืžื”ืื•ื‘ื™ื™ืงื˜ ื”ื–ื”. ื•ื‘ื›ืŸ, ืื—ืจื™ ื›ืœ ื–ื”, ื”ื•ื ืžืขื‘ื™ืจ ืืช ืฉื ื™ ื”ืื•ื‘ื™ื™ืงื˜ื™ื ื”ืœืœื• ืœืฉื™ื˜ื” ื”ืžืชืื™ืžื” ืฉืœ ื”-servlet ืฉืคื•ืขืœ ื‘ืฉืจืฉื•ืจ ื ืคืจื“. ื‘ืจื’ืข ืฉื”ืกืจื‘ืœ ืžืกื™ื™ื ืืช ืขื‘ื•ื“ืชื• ื•ื™ืฉ ืœื• ืชื’ื•ื‘ื” ืžื•ื›ื ื” ืœืฉืœื•ื— ืœืœืงื•ื—, ื”ื•ื ืžืจื™ื ื“ื’ืœ ืœื˜ื•ืžืงืื˜ ื•ืื•ืžืจ, "ืกื™ื™ืžืชื™, ื”ื›ืœ ืžื•ื›ืŸ." Tomcat ืžืงื‘ืœ ืืช ื”ืชื’ื•ื‘ื” ื•ืฉื•ืœื— ืื•ืชื” ืœืœืงื•ื—. ื–ื” ืžืืคืฉืจ ืœ-Tomcat ืœืงื‘ืœ ื‘ืงืฉื•ืช ื•ืœืฉืœื•ื— ืชื’ื•ื‘ื•ืช ืœืœื ื”ืคืจืขื”, ื‘ืขื•ื“ ืฉื›ืœ ื”ืขื‘ื•ื“ื” ื ืขืฉื™ืช ืขืœ ื™ื“ื™ servlets ื”ืคื•ืขืœื™ื ื‘ืฉืจืฉื•ืจื™ื ื ืคืจื“ื™ื. ื‘ื”ืชืื ืœื›ืš, ื›ืืฉืจ ืื ื• ื›ื•ืชื‘ื™ื ืงื•ื“ servlet, ืื ื• ืžื’ื“ื™ืจื™ื ืืช ื”ืขื‘ื•ื“ื” ืฉืชื‘ื•ืฆืข. ื•ื›ืŸ, ืืชื” ื™ื›ื•ืœ ืœื—ืฉื•ื‘ ืขืœ ื”ืฉื™ื˜ื” main() ื›ืžื• ื‘-Tomcat ืขืฆืžื” (ื›ืŸ, ื”ื™ื ื›ืชื•ื‘ื” ื‘ื’'ืื•ื•ื”), ื•ื›ืฉืื ื—ื ื• "ืžืชื—ื™ืœื™ื" ืืช Tomcat, ื”- main().

ืื ื• ืชื•ืคืกื™ื ืฉื™ื˜ื•ืช GET ืขื servlets ื•ืฉื•ืœื—ื™ื ืชื’ื•ื‘ื•ืช ืคืฉื•ื˜ื•ืช

ื›ืจื’ืข, ืœืกืจื‘ืœื˜ื™ื ืฉืœื ื• ืื™ืŸ ืฉื™ื˜ื•ืช ืžืชืื™ืžื•ืช (GET), ืื– Tomcat ืžื—ื–ื™ืจ ืœื ื• ืฉื’ื™ืื” 405. ื‘ื•ืื• ื ืขืฉื” ืื•ืชื! ื”ืžื—ืœืงื” HttpServlet , ืฉืžืžื ื” ืื ื• ื™ื•ืจืฉื™ื ืืช ื”-servlets ืฉืœื ื•, ืžื’ื“ื™ืจื” ืฉื™ื˜ื•ืช ืฉื•ื ื•ืช. ืขืœ ืžื ืช ืœื”ื’ื“ื™ืจ ืงื•ื“ ื›ืœืฉื”ื• ืœืฉื™ื˜ื•ืช, ืื ื• ืคืฉื•ื˜ ืขื•ืงืคื™ื ืื•ืชืŸ. ื‘ืžืงืจื” ื–ื”, ืขืœื™ื ื• ืœืขืงื•ืฃ ืืช ืฉื™ื˜ืช doGet() ื‘ืฉื ื™ ื”ืกืจื‘ืœื˜ื™ื.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}
ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืฉื™ื˜ื” ื–ื• ืžืงื‘ืœืช ืฉื ื™ ืื•ื‘ื™ื™ืงื˜ื™ื: req (request) ื•- resp (response). ืืœื• ื”ื ืื•ืชื ืื•ื‘ื™ื™ืงื˜ื™ื ืฉ-Tomcat ื™ืฆื•ืจ ื•ื™ืื›ืœืก ืขื‘ื•ืจื ื• ื›ืืฉืจ ื”ื•ื ื™ืงืจื ืœืžืชื•ื“ื” ื”ืžืชืื™ืžื” ื‘ืกืจื‘ืœื˜ ื–ื”. ืจืืฉื™ืช, ื‘ื•ืื• ื ืขืฉื” ืืช ื”ืชืฉื•ื‘ื•ืช ื”ืคืฉื•ื˜ื•ืช ื‘ื™ื•ืชืจ. ืœืฉื ื›ืš, ืงื— ืืช ื”ืื•ื‘ื™ื™ืงื˜ resp ื•ื”ืฉื™ื’ ืžืžื ื• ืื•ื‘ื™ื™ืงื˜ PrintWriter , ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืœื—ื™ื‘ื•ืจ ืชื’ื•ื‘ื•ืช. ื•ื‘ื›ืŸ, ื‘ืืžืฆืขื•ืชื• ื ื“ืคื™ืก ืื™ื–ื• ืžื—ืจื•ื–ืช ืคืฉื•ื˜ื”.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    PrintWriter writer = resp.getWriter();
    writer.println("Method GET from AddServlet");
}
ื ืขืฉื” ืžืฉื”ื• ื“ื•ืžื” ื‘ืฉืจืช ListServlet , ืฉืœืื—ืจื™ื• ื ืชื—ื™ืœ ืฉื•ื‘ ืืช ื”ืฉืจืช ืฉืœื ื•. ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ื›ืœ ืขื•ื‘ื“! ื›ืืฉืจ ืืชื” ืœื•ื—ืฅ ืขืœ ื”ื›ืคืชื•ืจื™ื, ืขืžื•ื“ื™ื ื ืคืชื—ื™ื ืขื ื”ื˜ืงืกื˜ ืฉ"ื”ืงืœื˜ื ื•" ืขื PrintWriter . ืจืง ืฉื”- jsp ืฉืœื ื• ืฉื”ื›ื ื• ืœื™ืฆื™ืจืช ื“ืคื™ื ืขื ืชืฉื•ื‘ื•ืช ืœื ืžืฉืžืฉื™ื ื‘ืฉื•ื ืฆื•ืจื”. ื”ืกื™ื‘ื” ืœื›ืš ื”ื™ื ืฉื”ื‘ื™ืฆื•ืข ืคืฉื•ื˜ ืœื ืžื’ื™ืข ืืœื™ื”ื. ื”ืฉืจืช ืขืฆืžื• ื™ื•ืฆืจ ื›ืขืช ืชื’ื•ื‘ื” ื•ืžืกื™ื™ื ืืช ืขื‘ื•ื“ืชื•, ื•ืžืื•ืชืช ืœ-Tomcat ืฉื™ืฉ ืœื• ืชื’ื•ื‘ื” ืžื•ื›ื ื” ืœืœืงื•ื—. Tomcat ืคืฉื•ื˜ ืœื•ืงื— ืืช ื”ืชื’ื•ื‘ื” ื”ื–ื• ื•ืฉื•ืœื— ืื•ืชื” ื‘ื—ื–ืจื” ืœืœืงื•ื—. ืื ื• ืžืขื‘ื™ืจื™ื ืฉืœื™ื˜ื” ืž-servlets ืœ- jsp. ื‘ื•ืื• ื ืฉื ื” ืืช ื”ืงื•ื“ ืฉืœ ื”ืฉื™ื˜ื•ืช ืฉืœื ื• ื›ืš:
  • ืื ื• ืžืงื‘ืœื™ื ืžืื•ื‘ื™ื™ืงื˜ request a request manager object, ืฉื‘ื• ืื ื• ืžืขื‘ื™ืจื™ื ืืช ื›ืชื•ื‘ืช ื”-jsp ืฉืœ ื”ืขืžื•ื“ ืฉืืœื™ื• ืื ื• ืจื•ืฆื™ื ืœื”ืขื‘ื™ืจ ืืช ื”ืฉืœื™ื˜ื”;
  • ื‘ืืžืฆืขื•ืช ื”ืื•ื‘ื™ื™ืงื˜ ืฉื”ืชืงื‘ืœ, ืื ื• ืžืขื‘ื™ืจื™ื ืืช ื”ืฉืœื™ื˜ื” ืœืขืžื•ื“ ื”-jsp ืฉืฆื•ื™ืŸ , ื•ืœื ืฉื•ื›ื—ื™ื ืœืฆืจืฃ ืœืฉื ืืช ืื•ื‘ื™ื™ืงื˜ื™ ื”ื‘ืงืฉื” ื•ื”ืชื’ื•ื‘ื” ืฉืงื™ื‘ืœื ื• ืž-Tomcat.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    RequestDispatcher requestDispatcher = req.getRequestDispatcher("views/add.jsp");
    requestDispatcher.forward(req, resp);
}
ื‘ื’ื•ืฃ ืฉืœ ื“ืคื™ jsp (ื‘ืชื•ืš ืชื’ ื”ื’ื•ืฃ) ื ื•ื›ืœ ืœื›ืชื•ื‘ ืžืฉื”ื• ื›ื“ื™ ืฉื ื•ื›ืœ ืœืจืื•ืช ื‘ื‘ื™ืจื•ืจ ืื™ื–ื” ืขืžื•ื“ ืžื•ืฆื’. ืœืื—ืจ ืžื›ืŸ, ืื ื• ืžืคืขื™ืœื™ื ืžื—ื“ืฉ ืืช ื”ืฉืจืช ื•ื‘ื•ื“ืงื™ื. ื›ืคืชื•ืจื™ื ื‘ืขืžื•ื“ ื”ืจืืฉื™ ื ืœื—ืฆื™ื, ื“ืคื™ื ื ืคืชื—ื™ื, ืžื” ืฉืื•ืžืจ ืฉื‘ืงืฉื•ืช ื ืฉืœื—ื•ืช ืœ-servlets, ื•ืœืื—ืจ ืžื›ืŸ ื”ืฉืœื™ื˜ื” ืžื•ืขื‘ืจืช ืœื“ืคื™ jsp, ืฉื›ื‘ืจ ืžืขื•ื‘ื“ื™ื. ื–ื” ื”ื›ืœ. ื‘ื—ืœืง ื”ื‘ื ืฉืœ ื”ืžืืžืจ ื ืขืกื•ืง ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื•.

ืžื” ืขื•ื“ ืœืงืจื•ื:

ื™ืฆื™ืจืช ืคืจื•ื™ืงื˜ ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘- IntelliJ Idea Enterprise. ืฆืขื“ ืื—ืจ ืฆืขื“, ืขื ืชืžื•ื ื•ืช


ื”ืฆ'ืื˜ ืฉืœื™
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION