Главная
Java
Servlet.
Сервлет является интерфейсом Java, реализация которого расширяет функциональные возможности сервера.
Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.
Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов.
Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы.
Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.
Servlet API history :
Servlet API version : | Released : | Specification : | Platform : | Important Changes : |
---|---|---|---|---|
Jakarta Servlet 5.0.0 M1 | Jun 12, 2020 | 5.0 | Jakarta EE 9 | API moved from package javax.servlet to jakarta.servlet |
Jakarta Servlet 4.0.3 | Aug 13, 2019 | 4.0 | Jakarta EE 8 | Renamed from "Java" trademark |
Java Servlet 4.0 | Sep 2017 | JSR 369 | Java EE 8 | HTTP/2 |
Java Servlet 3.1 | May 2013 | JSR 340 | Java EE 7 | Non-blocking I/O, HTTP protocol upgrade mechanism (WebSocket) |
Java Servlet 3.0 | December 2009 | JSR 315 | Java EE 6, Java SE 6 | Pluggability, Ease of development, Async Servlet, Security, File Uploading |
Java Servlet 2.5 | September 2005 | JSR 154 | Java EE 5, Java SE 5 | Requires Java SE 5, supports annotation |
Java Servlet 2.4 | November 2003 | JSR 154 | J2EE 1.4, J2SE 1.3 | web.xml uses XML Schema |
Java Servlet 2.3 | August 2001 | JSR 53 | J2EE 1.3, J2SE 1.2 | Addition of Filter |
Java Servlet 2.2 | August 1999 | JSR 902, JSR 903 | J2EE 1.2, J2SE 1.2 | Becomes part of J2EE, introduced independent web applications in .war files |
Java Servlet 2.1 | November 1998 | 2.1a | Unspecified | First official specification, added RequestDispatcher, ServletContext |
Java Servlet 2.0 | December 1997 | N/A | JDK 1.1 | Part of April 1998 Java Servlet Development Kit 2.0 |
Java Servlet 1.0 | December 1996 | N/A | Part of June 1997 Java Servlet Development Kit (JSDK) 1.0 |
<?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>org.example</groupId>
<artifactId>servlets</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
</project>
Класс простого сервлета:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/hello")
public class MainServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter printWriter = resp.getWriter();
printWriter.write("Hello!");
printWriter.close();
}
}
<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_4_0.xsd" version="4.0" metadata-complete="true">
<div>
Server info: <%= application.getServerInfo() %><br>
Servlet version: <%= application.getMajorVersion() %>.<%= application.getMinorVersion() %><br>
JSP version: <%= JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>
</div>
Output:Server info: Apache Tomcat/7.0.21
Servlet version: 3.0
JSP version: 2.1
Еще надо обратить внимание на версию указанную в web.xml файле !!!
"http://java.sun.com/dtd/web-app_2_3.dtd"