ืจืืช ืืืืข ืื ืืจืฉืช ืืืื ืช ืืืืืจ: ืืืจ ืคืืืช ืื ืืืชืจ ืืื ืชื ืืช Java Core ืืืืืชื ืจืืฆืื ืืืกืชืื ืขื ืืื ืืืืืืืช JavaEE ืืชืื ืืช ืืื ืืจื ื. ืื ืืืืื ื ืืืืชืจ ืื ืืชื ืืืื ืืขืช ืืช ืืืืคืืฉ ืฉื Java Collections, ืืืืกื ื ืืฉืืื ืงืจืืืื ืืืืืจ. ืืืืืจ ืืื ืืื ืืืฉื ืืืืื ื ืืืืืจ ืฉืื ืืฆืืจืช ืคืจืืืงื ืืื ืืจื ื ืคืฉืื ื- IntelliJ Idea Enterprise . ืื ืืืืืชื ืืืฆื ืืืฆืืจ ืชืื ืืช ืคืจืืืงื ืืื ืืจื ื ืขืืืืช. ืืคืขื ืื ื ืืจืื ืื ืืืฆื ืืืฆืืจ ืืืฉืื ืืื ืืจื ื ืคืฉืื ืื ืืคื ืืืืฆืขืืช ืืืื ืืืืืืืช Java Servlet API ื-JavaServer Pages API. ืืืคืืืงืฆืื ืฉืื ื ืืืื ืืฃ ืืืช ืขื ืฉื ื ืงืืฉืืจืื:
ืืฆ'ืื ืฉืื
- ืืืฃ ืืืกืคืช ืืืฉืชืืฉ;
- ืืืฃ ืชืฆืืืช ืจืฉืืืช ืืฉืชืืฉืื.
ืงืฆืช ืขื ืืื ื ืืืืฉืื ืืขืชืืื
ืืืฃ ืืจืืฉื ืฉืื ื ( / ) ืืืื ืืฃ ื-html ืืกืืื ืืจืืื ืืืืชืจ ืขื ืืืชืจืช ืขืืืื ื ืืฉื ื ืงืืฉืืจืื/ืืืฆื ืื:- ืืืกืฃ ืืฉืชืืฉ ืืืฉ (ืืืฉืื ืื /add );
- ืืฆื ืืช ืจืฉืืืช ืืืฉืชืืฉืื (ืฉืืื ืื /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 ื ืืฆืืจ ืืืืืช ืืคืืืงืฆืื , ืฉืชืืื ืืช ืืืงืืจืืช ืฉืื ื. ืฉื ืืืื ืื ื ืขืื ืืืืืืช ืฉืื ืืช. ืืื, ืืื ืฉืืืืืืืช ืืืื ืื ืืืืืฆืจื ืืืช ืืชืื ืืฉื ืืื, ืืืื ื ืืฆืืจ ืืืืงื ืืืฉืื ืืืืืืช ืืืคืืืงืฆืื (ืืื ื ืืืง ืืืชื). ืืขืช ื ืืฆืืจ ืฉืืืฉ ืืืืืืช ืฉืื ืืช ืืืืืืช ืืืคืืืงืฆืื :- ืืฉืืืืช - ืืืฉืืืืช ืฉืื ื ืืฉืืื ืืื (ืืืืืงื ืขืฆืื, ืฉืชืชืืจ ืืืืืืงืืื ืฉื ืืฉืชืืฉ);
- ืืื - ืืืื ืฉืื ื ืืืื ืืื (ืขืื ืขื ืื ืงืฆืช ืืืืืจ ืืืชืจ);
- ืกืจืืืืื - ืืืื, ืื ื ืืืื ืืกืจืืืืื ืฉืื ื.
- AddServlet - ืืขืื ืืงืฉืืช ืฉืืชืงืืื ื- /add ;
- ListServlet - ืืขืื ืืงืฉืืช ืฉืืชืงืืื ื- /list .
ืืืืืจ ืชืืืช ื-Maven
Tomcat ืืจืกื 9.* ืืืืฉืืช ืืช Servlet ืืจืกื 4.0 ืืืช ืืคืจืื JavaServer Pages ืืจืกื 2.3. ืื ืืชืื ืืชืืขืื ืืจืฉืื ืฉื Tomcat 9 ืืคืกืงื ืืจืืฉืื ื ืืฉืืจื ืืฉื ืืื. ืื ืืืืจ ืฉืื ืืชื, ืืืื ื, ืืฉืชืืฉ ืืืจืกื ืื ืฉื Tomcat, ืื ืืงืื ืฉื ืืชืื ืื ืฉืื ืืืคืขืื ืืฉืชืืฉ ืืืืืง ืืืจืกืืืช ืฉืฆืืื ื. ืืื ืืืื ื ืจืืฆืื ืืงืื ืืช ืืืคืจืืื ืืืื ืืคืจืืืงื ืฉืื ื, ืื ืฉืืงืื ืฉืื ื ืฉืืฉืชืืฉ ืืื ืืคืืืช ืืงืืคื ืืืฆืืื. ืืืฉืืื ืื ืื ืื ื ืฆืจืืืื ืืืขืืืก ืืืชื ืืคืจืืืงื ืฉืื ื. ืื ืืืงืื ืฉืื ืืืืื ืื ืืืฆืื.ืืืื ืืืืื ืืื ืื: ืื ืืชื ืฆืจืื ืืืืจ ืืฉืื ืืคืจืืืงื ืฉืื ืืืืฆืขืืช Maven:
- ืขืืืจ ืื ืืชืจ ืืืืืจ ืฉื Maven;
- ืืคืฉ ืฉื ืืช ืืกืคืจืืื ืฉืืชื ืฆืจืื ืืืช ืืืจืกื ืฉืืชื ืฆืจืื;
- ืืชื ืืงืื ืืช ืงืื ืืชืืืช ืฉืฆืจืื ืืืื ืืก ื-pom.xml ืฉืื;
- ืึฐืึทืื ึดืืก! :)
<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, ืฉืืืจ ืืขืืืืื. ืื ืืื. ืืืืง ืืื ืฉื ืืืืืจ ื ืขืกืืง ืืคืื ืงืฆืืื ืืืืช ืฉื ืืืคืืืงืฆืื ืฉืื ื.
ืื ืขืื ืืงืจืื:
ืืฆ'ืื ืฉืื
GO TO FULL VERSION