ืืืข ื ืืจืฉ ืืืื ืช ืืืืืจ: ืืืจ ืคืืืช ืื ืืืชืจ ืืื ืชื ืืช Java Core ืืืืืชื ืจืืฆืื ืืืกืชืื ืขื ืืื ืืืืืืืช JavaEE ืืชืื ืืช ืืื ืืจื ื . ืื ืืืื ืืืืื ื ืืืืชืจ ืขืืืจื ืืืืื ืืขืช ืืช ืงืืืกื ืืืกืคื Java , ืืขืืกืง ืื ืืฉืืื ืงืจืืืื ืืืืืจ.
ืืืืืจ ืืื ืืื ืืืืฉื ืืืืืื ื ืฉื ืืืืืจ ืฉืื ืืฆืืจืช ืคืจืืืงื ืืืื ืืจื ื ืืคืฉืื ืืืืชืจ ื- IntelliJ Idea Enterprise
. ืืืืืจ ืื, ืืืืืชื ืืืฆื ืืืฆืืจ ืชืื ืืช ืคืจืืืงื ืืื ืืจื ื ืขืืืืช. ืืคืขื ืื ื ืืจืื ืื ืืืฆื ืืืฆืืจ ืืืฉืื ืืื ืืจื ื ืคืฉืื ืื ืืืจืงืืืื ืืืืืืื ืืืืฆืขืืช Java Servlet API ื- JavaServer Pages API . ืืืคืืืงืฆืื ืฉืื ื ืืืื ืืฃ ืืืช ืขื ืฉื ื ืงืืฉืืจืื:
ืืืื ื ืชืืื. ืจืืฉืืช, ืืื ืืช ืงืืืฅ POM . ืืืคืฉืื ืืืจื ืืขืจื /version , ืืื ืืคื ื /project , ืืื ืก ืืช ืืืืจืื ืืืืื:
ืืืื ื ืขืืืจ ืืช ืืฉืืืื ืืืกืจืืืืื ืืงืืฆื JSP. ืื ื ื ืฉื ื ืืช ืืงืื ืฉื ืืฉืืืืช ืฉืื ื ืืืืคื ืืื:
![ืืฆืืจืช ืืืฉืื ืืื ืืจื ื ืคืฉืื ืืืืฆืขืืช servlets ื-JSPs (ืืืง 1) - 1](https://cdn.codegym.cc/images/article/3fef7792-a7ef-45e1-9bb7-569ba5588066/512.jpeg)
- ืงืืฉืืจ ืืืฃ ืืืืกืคืช ืืฉืชืืฉืื;
- ืงืืฉืืจ ืืจืฉืืืช ืืืฉืชืืฉืื.
ืงืฆืช ืขื ืืื ื ืืืคืืืงืฆืื ืืขืชืืืืช ืฉืื ื
ืืฃ ืืืืช ืฉืื ื (/) ืืืื ืืฃ HTML ืกืืื ืจืืื ืืืืชืจ ืขื ืืืชืจืช ืืฉื ื ืงืืฉืืจืื/ืืืฆื ืื:- ืืืกืฃ ืืฉืชืืฉ ืืืฉ (ืื ืืื ืื / ืืืกืฃ );
- ืืฆื ืืช ืจืฉืืืช ืืืฉืชืืฉืื (ืื ืืื ืื / ืจืฉืืื ).
ืฆืืจ ืืฃ ืืืช ืกืืื
ืื ืืชื 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 - ืืืื ืืกืจืืืืื ืฉืื ื ืืืืืื.
- AddServlet - ืืขืื ืืงืฉืืช ืฉื ืฉืืืืช ืื / ืืืกืฃ ;
- ListServlet - ืืขืื ืืงืฉืืช ืฉื ืฉืืืืช ืื / ืจืฉืืื .
ืืืืืจ ืชืืืช ื-Maven
Tomcat 9. * ืืืืฉืืช ืืช ืืืคืจืืื ืขืืืจ Servlet 4.0 ื- JavaServer Pages 2.3 . ืื ืื ืฉื ืืืจ ืืฉืืจื ืืฉื ืืื ืฉื ืืคืกืงื ืืจืืฉืื ื ืืชืืขืื ืืจืฉืื ืฉื Tomcat 9. ืื ืืืืจ ืฉืื ืืชื, ืืืื ื, ืืฉืชืืฉ ืืืจืกื ืื ืฉื Tomcat , ืื ืืงืื ืฉืชืืชืื ืืชืคืขืื ืืฉืชืืฉ ืืืจืกืืืช ืืื. ืืื ืืืื ื ืจืืฆืื ืืงืื ืืช ืืืคืจืืื ืืืื ืืคืจืืืงื ืฉืื ื, ืื ืฉืืงืื ืฉืื ื, ืฉืืฉืชืืฉ ืืื, ืืคืืืช ืืชืืืจ ืืืฆืืื. ืืืื ืืขืฉืืช ืืืช, ืขืืื ื ืืืขืื ืืืชื ืืคืจืืืงื ืฉืื ื. ืื ืืืงืื ืฉืื ืืืืื ืื ืืืฆืื.
ืืืื ืืืืื ืืื ืื: ืื ืืชื ืฆืจืื ืืืืจ ืืฉืื ืืคืจืืืงื ืฉืื ืืืืฆืขืืช Maven:
|
<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](https://cdn.codegym.cc/images/article/c906e7c7-7558-475c-944d-147cdeacf58e/1080.jpeg)
ืืฉืชืืฉ ื-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 ืฉืฆืืื, ืืื ืืฉืืื ืืืขืืืจ ืืช ืืืืืืงืื ืืืงืฉื ืืืชืืืื ืฉืงืืืื ื ื-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, ืืฉืจ ืืขืช ืขืืืจืื ืจืื ืืืจ. ืื ืืื ืืขืช ืขืชื. ืืืืง ืืื
ืฉื ืืืืจ ืื, ื ืขืืื ืขื ืืคืื ืงืฆืืื ืืืืช ืฉื ืืืคืืืงืฆืื ืฉืื ื.
GO TO FULL VERSION