CodeGym /ื‘ืœื•ื’ Java /Random-HE /ื™ืฆื™ืจืช ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ื‘ืืžืฆืขื•ืช servlets ื•-JSPs (ื—ืœืง 1)
John Squirrels
ืจึธืžึธื”
San Francisco

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

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

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

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

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

ืื ืืชื” 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>    <!-- button holder -->
            <button onclick="location.href='/list'">List users<//button>
            <button onclick="location.href='/add'">Add user<//button>
        </div>
    </div>
</body>
</html>
ืื™ืŸ ื›ืืŸ ืฉื•ื ื“ื‘ืจ ืžืกื•ื‘ืš. ื‘ืชื’ื™ืช ื”ื›ื•ืชืจืช , ืื ื• ืžืฆื™ื™ื ื™ื ืืช ื”ื›ื•ืชืจืช ืฉืœ ื”ื“ืฃ ืฉืœื ื•. ื‘ื’ื•ืฃ ื”ืขืžื•ื“, ื™ืฉ ืœื ื• ืฉื ื™ divs ืขื™ืงืจื™ื™ื : ื›ื•ืชืจืช ื•ืชื•ื›ืŸ . div ื”ืชื•ื›ืŸ ื›ื•ืœืœ ืžื—ื–ื™ืง ืœื›ืคืชื•ืจื™ื ืฉืœื ื•. ื•ืฉื ื™ืฉ ืœื ื• ืฉื ื™ ื›ืคืชื•ืจื™ื ืฉืœื•ืงื—ื™ื ืื•ืชืš ื‘ืœื—ื™ืฆื” ืœื›ืชื•ื‘ืช ื”ืžืชืื™ืžื”. ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืืช ื”ืคืจื•ื™ืงื˜ ื•ืœืจืื•ืช ืื™ืš ื”ื•ื ื ืจืื” ืขื›ืฉื™ื•. ืื ืชืœื—ืฅ ืขืœ ื”ื›ืคืชื•ืจื™ื, ืชืงื‘ืœ ื“ืคื™ 404 ืฉื’ื™ืื” , ื›ื™ ืื ื—ื ื• ื”ื“ืคื™ื ื”ืžืชืื™ืžื™ื ืขื“ื™ื™ืŸ ืœื ืงื™ื™ืžื™ื. ืื‘ืœ ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื“ืขืช ืฉื”ื›ืคืชื•ืจื™ื ืขื•ื‘ื“ื™ื. ืฉื™ืžื• ืœื‘ ืฉื–ื• ืœื ื”ื’ื™ืฉื” ื”ืื•ื ื™ื‘ืจืกืœื™ืช ื‘ื™ื•ืชืจ: ืื JavaScript ื›ื‘ื•ื™ ื‘ื“ืคื“ืคืŸ, ื”ื›ืคืชื•ืจื™ื ื”ืืœื” ืœื ื™ืขื‘ื“ื•. ืื‘ืœ ื ื ื™ื— ืฉืืฃ ืื—ื“ ืœื ืžืฉื‘ื™ืช ืืช JavaScript. :) ื‘ืจื•ืจ ืฉืืคืฉืจ ืœื”ืกืชื“ืจ ืขื ืงื™ืฉื•ืจื™ื ืคืฉื•ื˜ื™ื, ืื‘ืœ ืื ื™ ืžืขื“ื™ืฃ ื›ืคืชื•ืจื™ื. ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ืืช ื–ื” ืื™ืš ืฉืืชื” ืžืขื“ื™ืฃ. ื•ืืœ ืชื“ืื’ ืœื’ื‘ื™ ื”ืขื•ื‘ื“ื” ืฉืœื“ื•ื’ืžืื•ืช ืฉืœื™ ื™ื”ื™ื• ื”ืจื‘ื” divs . ื ืžืœื ืื•ืชื ื‘ืกื’ื ื•ื ื•ืช ืื—ืจ ื›ืš, ื•ื”ื›ืœ ื™ืจืื” ื™ืคื” ื™ื•ืชืจ. :)

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

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

ืฆื•ืจ ืฉื ื™ servlets

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

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

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

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

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

</dependencies>
ืื ื• ืขื•ืฉื™ื ื–ืืช ื›ื“ื™ ืœืฆื™ื™ืŸ ืฉื ืคืจื˜ ืืช ื”ืชืœื•ืช ื”ื ื“ืจืฉื•ืช ื‘ืชื•ืš ื”ืชื’ื™ื ื”ืœืœื•. ื›ืขืช ืขื‘ื•ืจ ืืœ mvnrepository.com . ื™ืฉ ืฉื“ื” ื—ื™ืคื•ืฉ ืœืžืขืœื”. ื›ื“ื™ ืœื”ืชื—ื™ืœ, ื—ืคืฉ ' servlet '. ื”ืชื•ืฆืื” ื”ืจืืฉื•ื ื”, ืฉื ืขืฉื” ื‘ื” ืฉื™ืžื•ืฉ ื™ื•ืชืจ ืžืฉื‘ืขืช ืืœืคื™ื ืคืขืžื™ื, ืžืชืื™ืžื” ืœื ื•. ื–ื›ื•ืจ, ืื ื• ื–ืงื•ืงื™ื ืœื’ืจืกื” 4.0 (ืขื‘ื•ืจ Tomcat 9 ). ื’ืจืกืื•ืช ืื—ืจื•ืช ืขืฉื•ื™ื•ืช ืœื”ืชืื™ื ืœื™ื™ืฉื•ืžื™ื ื™ืฉื ื™ื ื™ื•ืชืจ. ื–ื•ื”ื™ ื’ืจืกื” ืขื“ื›ื ื™ืช ืœืžื“ื™, ื›ืš ืฉืื™ืŸ ื›ืœ ื›ืš ื”ืจื‘ื” ืฉื™ืžื•ืฉื™ื. ืื‘ืœ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืืช ื–ื”. ื ืคืชื— ื“ืฃ ืฉื‘ื• ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ื”ืงื•ื“ ืขื‘ื•ืจ ื”ืชืœื•ืช ื”ื–ื• ืขื‘ื•ืจ ืžื’ื•ื•ืŸ ืžื ื”ืœื™ ื—ื‘ื™ืœื•ืช, ืื• ืฉืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœื”ื•ืจื™ื“ ืื•ืชื•. ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืจื•ืฆื™ื ืœื—ื‘ืจ ืื•ืชื• ื‘ืืžืฆืขื•ืช Maven, ื ื‘ื—ืจ ืืช ื”ืงื•ื“ ื‘ืœืฉื•ื ื™ืช Maven. ืื ื• ืžืขืชื™ืงื™ื ื•ืžื“ื‘ื™ืงื™ื ื‘ืงื˜ืข ื”ืชืœื•ืช ืฉืœ ืงื•ื‘ืฅ ื”-POM ืฉืœื ื•. ืื ืืชื” ืžืงื‘ืœ ื”ืชืจืื” ืฉืฉื•ืืœืช ืื ื‘ืจืฆื•ื ืš ืœืืคืฉืจ ื™ื™ื‘ื•ื โ€‹โ€‹ืื•ื˜ื•ืžื˜ื™ ื‘ืคื™ื ื” ื”ื™ืžื ื™ืช ื”ืชื—ืชื•ื ื” ืฉืœ ื”- IDEA , ื”ืžืฉืš ื•ื”ืกื›ื™ื ืœื›ืš. ืื ืกื™ืจื‘ืช ื‘ื˜ืขื•ืช, ืขื‘ื•ืจ ืืœ " ื”ื’ื“ืจื•ืช " ื•ื”ืคืขืœ ื™ื™ื‘ื•ื โ€‹โ€‹ืื•ื˜ื•ืžื˜ื™ ื‘ืื•ืคืŸ ื™ื“ื ื™: ื”ื’ื“ืจื•ืช (Ctrl + Alt + S) -> ื‘ื ื™ื™ื”, ื‘ื™ืฆื•ืข, ืคืจื™ืกื” -> Maven -> ื™ื™ื‘ื•ื . ื–ื” ื™ืืคืฉืจ ืœืš ืœืฉืžื•ืจ ืืช ืงื•ื‘ืฅ ื”-POM ื•ืืช ืงื•ื‘ืฆื™ ื”ืชืฆื•ืจื” ืฉืœ IDEA ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ ื–ื” ืžืกื•ื ื›ืจื ื™ื. ืœืคื™ ืื•ืชื• ืขื™ืงืจื•ืŸ, ื ืžืฆื ื•ื ื—ื‘ืจ ืืช JavaServer Pages 2.3 (ื—ืคืฉ "JSP"). ื•ืžื›ื™ื•ื•ืŸ ืฉื›ื‘ืจ ื”ืชื—ืœื ื• ืืช Maven, ื‘ื•ื ื ื’ื™ื“ ืœื” ืฉืงื•ื‘ืฆื™ ื”ืžืงื•ืจ ืฉืœื ื• ืขื•ืงื‘ื™ื ืื—ืจ ืชื—ื‘ื™ืจ Java 8, ื•ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืงืžืคืœ ืื•ืชื ืœ-bytecode ืขื‘ื•ืจ ื”ื’ืจืกื” ื”ื–ื•. ืœืื—ืจ ื›ืœ ื”ืฉืœื‘ื™ื ื”ืืœื”, 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>cc.codegym.info.fatfaggy</groupId>
    <artifactId>my-super-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compile.source>1.8</maven.compile.source>
        <maven.compile.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 ืžืขื•ื‘ื“ื•ืช ืขืœ ื™ื“ื™ AddServlet ืฉืœื ื• , ื•ื‘ืงืฉื•ืช ืขื‘ื•ืจ ื”ื›ืชื•ื‘ืช / list ืžื˜ื•ืคืœื•ืช ืขืœ ื™ื“ื™ ListServlet . ืชื”ืœื™ืš ื–ื” ื ืงืจื ืžื™ืคื•ื™ (ืกื™ืžื•ืŸ). ื–ื” ื ืขืฉื” ื‘- web.xml ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืื•ืชื• ืขื™ืงืจื•ืŸ:
  • ื›ื“ื™ ืœื”ืชื—ื™ืœ, ืชืืจ ืืช ื”-servlet (ืชืŸ ืฉื ื›ืœืฉื”ื• ื•ืฆื™ื™ืŸ ืืช ื”ื ืชื™ื‘ ืœืžื—ืœืงื” ืขืฆืžื”);
  • ื•ืื– ืœืื’ื“ ืืช ื”-servlet ื”ื–ื” ืœื›ืชื•ื‘ืช ืกืคืฆื™ืคื™ืช (ืฆื™ื™ืŸ ืืช ืฉื ื”-servlet, ืฉื–ื” ืขืชื” ื ืชื ื• ืœื•, ื•ืฆื™ื™ืŸ ืืช ื”ื›ืชื•ื‘ืช ืฉืืช ื”ื‘ืงืฉื•ืช ืฉืœื” ื™ืฉ ืœืฉืœื•ื— ืœ-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>
ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืฉื ื”ืฉืจืช ื–ื”ื” ื‘ืฉื ื™ ื”ืžืงืจื™ื. ื›ืชื•ืฆืื” ืžื›ืš, 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 ืคืฉื•ื˜ ืฉืžืฆื™ื’ ืจืง ืฉื ื™ ื›ืคืชื•ืจื™ื. ืื™ืŸ ืœื• ืชื•ื›ืŸ ื“ื™ื ืžื™, ืื– ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื™ืฆื•ืจ servlet ื ืคืจื“ ืขื‘ื•ืจ ื‘ืงืฉื•ืช ืž / ืฉืœื ื™ืขืฉื” ื“ื‘ืจ ืžืœื‘ื“ ืœื”ืขื‘ื™ืจ ื‘ื™ืฆื•ืข ืœ- JSP ื›ืœืฉื”ื• (ืฉื’ื ื”ื•ื ื”ื™ื” ืฆืจื™ืš ืœื”ื™ื•ื•ืฆืจ) ื›ื“ื™ ืœืฆื™ื™ืจ ืขื‘ื•ืจื ื• ืฉื ื™ ื›ืคืชื•ืจื™ื. ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืืช ื–ื”. ืžืชืื™ื ืœื ื• ืขืžื•ื“ ืกื˜ื˜ื™. ื›ืืฉืจ Tomcat ื™ืงื‘ืœ ื‘ืงืฉื”, ื”ื•ื ื™ื‘ื“ื•ืง ืื ื™ืฉ servlet ื‘ื•ื“ื“ ืฉื™ื›ื•ืœ ืœืขื‘ื“ ืืช ื”ื‘ืงืฉื” ืขื‘ื•ืจ ื”ื›ืชื•ื‘ืช ื”ื–ื•, ื•ืื– ื™ืจืื” ืฉื”ื›ืชื•ื‘ืช ื”ื–ื• ืœืžืขืฉื” ื›ื‘ืจ ืžื›ื™ืœื” ืืช ืงื•ื‘ืฅ ื”-HTML ื”ืžื•ื›ืŸ, ืื•ืชื• ื”ื•ื ื™ื’ื™ืฉ. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืจื™ืฅ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืฉื•ื‘ (ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืฉืจืช ืื• ืœืคืจื•ืก ืื•ืชื• ืžื—ื“ืฉ - ืžื” ืฉืืชื” ืžืขื“ื™ืฃ) ื•ืœื•ื•ื“ื ืฉื“ืฃ ื”ื‘ื™ืช ืžืขื•ื‘ื“, ืฉื•ื ื“ื‘ืจ ืœื ื ืฉื‘ืจ, ื•ื”ืžืขื‘ืจื™ื ืžืชืจื—ืฉื™ื ื›ืฉืื ื—ื ื• ืœื•ื—ืฆื™ื ืขืœ ื”ื›ืคืชื•ืจื™ื (ืื ื›ื™ ืื ื—ื ื• ืฉื•ื‘ ืžืงื‘ืœื™ื ืฉื’ื™ืื”). ืื’ื‘, ื‘ืขื•ื“ ืฉืงื•ื“ื ืงื™ื‘ืœื ื• ืฉื’ื™ืื” 404, ืขื›ืฉื™ื• ืื ื—ื ื• ืžืงื‘ืœื™ื 405. ื–ื” ืื•ืžืจ ืฉื”ืžื™ืคื•ื™ ืขื‘ื“ ื•ื”ืกืจื‘ืœื˜ื™ื ื ืžืฆืื•, ืื‘ืœ ืœื ื”ื™ื™ืชื” ืœื”ื ืฉื™ื˜ื” ืžืชืื™ืžื” ืœื˜ืคืœ ื‘ื‘ืงืฉื”.

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

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

ื”ืฉืชืžืฉ ื‘-servlets ื›ื“ื™ ืœืชืคื•ืก ืฉื™ื˜ื•ืช GET ื•ืœืฉืœื•ื— ืชื’ื•ื‘ื•ืช ืคืฉื•ื˜ื•ืช ื‘ืžื™ื•ื—ื“

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

}
ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืฉื™ื˜ื” ื–ื• ืœื•ืงื—ืช ืฉื ื™ ืืจื’ื•ืžื ื˜ื™ื: req (ื‘ืงืฉื”) ื•- resp (ืชื’ื•ื‘ื”). ืืœื• ื”ื ืื•ืชื ืื•ื‘ื™ื™ืงื˜ื™ื ืฉ-Tomcat ื™ื•ืฆืจ ื•ืžืื›ืœืก ืขื‘ื•ืจื ื• ื›ืืฉืจ ื”ื•ื ืงื•ืจื ืœืžืชื•ื“ื” ื”ืžืชืื™ืžื” ื‘-servlet. ื›ื“ื™ ืœื”ืชื—ื™ืœ, ื ื™ืฆื•ืจ ืืช ื”ืชื’ื•ื‘ื•ืช ื”ืคืฉื•ื˜ื•ืช ื‘ื™ื•ืชืจ. ืœืฉื ื›ืš, ื ื™ืงื— ืืช ื”ืื•ื‘ื™ื™ืงื˜ resp ื•ื ืงื‘ืœ ืžืžื ื• ืื•ื‘ื™ื™ืงื˜ PrintWriter. ืกื•ื’ ื–ื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ ืžืฉืžืฉ ืœื—ื™ื‘ื•ืจ ืชื’ื•ื‘ื”. ื ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ื•ืฆื™ื ืžื—ืจื•ื–ืช ืคืฉื•ื˜ื”.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    PrintWriter writer = resp.getWriter();
    writer.println("GET method from AddServlet");
}
ื ืขืฉื” ืžืฉื”ื• ื“ื•ืžื” ื‘- ListServlet, ื•ืื– ื ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืฉืจืช ืฉืœื ื•. ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ื›ืœ ืขื•ื‘ื“! ื›ืฉืœื•ื—ืฆื™ื ืขืœ ื”ื›ืคืชื•ืจื™ื ืžืงื‘ืœื™ื ื“ืคื™ื ืขื ื”ื˜ืงืกื˜ ืฉ"ื›ืชื‘ื ื•" ืขื ื”-PrintWriter. ืื‘ืœ ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืงื•ื‘ืฆื™ JSP ืฉื”ื›ื ื• ืœื™ืฆื™ืจืช ื“ืคื™ื ืขื ืชื’ื•ื‘ื•ืช. ื–ื” ืคืฉื•ื˜ ื‘ื’ืœืœ ืฉื”ื ืืฃ ืคืขื ืœื ืžื•ืฆืื™ื ืœื”ื•ืจื’. ื”ืกืจื‘ืœื˜ ืฉืœื ื• ื™ื•ืฆืจ ืืช ื”ืชื’ื•ื‘ื” ื‘ืขืฆืžื• ื•ืžืกื™ื™ื ืœืจื•ืฅ, ืžืกืžืŸ ืœ-Tomcat ืฉื”ื•ื ืžื•ื›ืŸ ืœื”ื’ื™ื‘ ืœืœืงื•ื—. Tomcat ืคืฉื•ื˜ ืœื•ืงื— ืืช ื”ืชื’ื•ื‘ื” ื•ืฉื•ืœื— ืื•ืชื” ื‘ื—ื–ืจื” ืœืœืงื•ื—. ื‘ื•ืื• ื ืขื‘ื™ืจ ืืช ื”ืฉืœื™ื˜ื” ืžื”ืกืจื‘ืœื˜ื™ื ืœืงื‘ืฆื™ JSP. ืื ื• ื ืฉื ื” ืืช ื”ืงื•ื“ ืฉืœ ื”ืฉื™ื˜ื•ืช ืฉืœื ื• ื‘ืื•ืคืŸ ื”ื‘ื:
  • ืื ื• ืžืฉื™ื’ื™ื ืื•ื‘ื™ื™ืงื˜ ืฉืœ ืฉื•ืœื— ื‘ืงืฉื” ืžืื•ื‘ื™ื™ืงื˜ ื”ื‘ืงืฉื”, ื•ืžืขื‘ื™ืจื™ื ืœื• ืืช ื”ื›ืชื•ื‘ืช ืฉืœ ื“ืฃ ื”-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, ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืžืฉื”ื• ื›ื“ื™ ืฉื ื•ื›ืœ ืœืจืื•ืช ื‘ื‘ื™ืจื•ืจ ืื™ื–ื” ืขืžื•ื“ ืžื•ืฆื’. ืœืื—ืจ ืฉืขืฉื™ืช ื–ืืช, ื”ืคืขืœ ืžื—ื“ืฉ ืืช ื”ืฉืจืช ื•ื‘ื“ื•ืง. ืื ื• ืœื•ื—ืฆื™ื ืขืœ ื”ื›ืคืชื•ืจื™ื ื‘ืขืžื•ื“ ื”ืจืืฉื™ ื•ื”ืขืžื•ื“ื™ื ื ืคืชื—ื™ื, ืžื” ืฉืื•ืžืจ ืฉื”ื‘ืงืฉื•ืช ื ืฉืœื—ื•ืช ืœืกืจื‘ืœื˜ื™ื. ืœืื—ืจ ืžื›ืŸ ื”ืฉืœื™ื˜ื” ืžื•ืขื‘ืจืช ืœื“ืคื™ ื”-JSP, ืืฉืจ ื›ืขืช ืขื•ื‘ืจื™ื ืจื™ื ื“ื•ืจ. ื–ื” ื”ื›ืœ ืœืขืช ืขืชื”. ื‘ื—ืœืง ื”ื‘ื ืฉืœ ืžืืžืจ ื–ื”, ื ืขื‘ื•ื“ ืขืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื•.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION