diff --git a/libraries-server/pom.xml b/libraries-server/pom.xml
index a849708cd8..eb9cb61e56 100644
--- a/libraries-server/pom.xml
+++ b/libraries-server/pom.xml
@@ -5,6 +5,7 @@
libraries-server
0.0.1-SNAPSHOT
libraries-server
+ war
com.baeldung
@@ -105,12 +106,51 @@
+
+
+
+
+ org.eclipse.jetty
+ jetty-maven-plugin
+ ${jetty.version}
+
+ 8888
+ quit
+
+ -Xbootclasspath/p:${settings.localRepository}/org/mortbay/jetty/alpn/alpn-boot/${alpn.version}/alpn-boot-${alpn.version}.jar
+
+ ${basedir}/src/main/config/jetty.xml
+
+ /
+
+
+
+
+ org.eclipse.jetty.http2
+ http2-server
+ ${jetty.version}
+
+
+ org.eclipse.jetty
+ jetty-alpn-openjdk8-server
+ ${jetty.version}
+
+
+ org.eclipse.jetty
+ jetty-servlets
+ ${jetty.version}
+
+
+
+
+
3.6.2
4.5.3
- 9.4.8.v20171121
+ 9.4.27.v20200227
4.1.20.Final
+ 8.1.11.v20170118
8.5.24
4.3.1
1.2.0
diff --git a/libraries-server/src/main/config/jetty.xml b/libraries-server/src/main/config/jetty.xml
new file mode 100644
index 0000000000..fd4a50382b
--- /dev/null
+++ b/libraries-server/src/main/config/jetty.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ src/main/resources/keystore.jks
+ storepwd
+ src/main/resources/truststore.jks
+ storepwd
+ TLSv1.2
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+ http/1.1
+
+
+ -
+
+
+
+
+
+
+
+
+ 8443
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+ alpn
+
+
+ -
+
+ h2,h2-17
+
+
+ -
+
+
+
+
+
+
+
+
+ 8444
+
+
+
+
\ No newline at end of file
diff --git a/libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java b/libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java
new file mode 100644
index 0000000000..56b75c45d3
--- /dev/null
+++ b/libraries-server/src/main/java/com/baeldung/jetty/http2/Http2JettyServlet.java
@@ -0,0 +1,29 @@
+package com.baeldung.jetty.http2;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class Http2JettyServlet extends HttpServlet {
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ response.addHeader("Cache-control", "no-store, no-cache, must-revalidate");
+ response.addDateHeader("Last-Modified", 0);
+ response.addDateHeader("Expires", 0);
+
+ String requestPath = request.getRequestURI();
+ InputStream input = getServletContext().getResourceAsStream(requestPath);
+ OutputStream output = response.getOutputStream();
+ byte[] buffer = new byte[1024];
+ int read;
+ while ((read = input.read(buffer)) >= 0) {
+ output.write(buffer, 0, read);
+ }
+ }
+
+}
diff --git a/libraries-server/src/main/resources/keystore.jks b/libraries-server/src/main/resources/keystore.jks
new file mode 100644
index 0000000000..428ba54776
Binary files /dev/null and b/libraries-server/src/main/resources/keystore.jks differ
diff --git a/libraries-server/src/main/resources/truststore.jks b/libraries-server/src/main/resources/truststore.jks
new file mode 100644
index 0000000000..839cb8c351
Binary files /dev/null and b/libraries-server/src/main/resources/truststore.jks differ
diff --git a/libraries-server/src/main/webapp/WEB-INF/web.xml b/libraries-server/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..75d7e11c64
--- /dev/null
+++ b/libraries-server/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,33 @@
+
+
+
+
+ http2Jetty
+ com.baeldung.jetty.http2.Http2JettyServlet
+
+
+ http2Jetty
+ /images/*
+
+
+
+ push
+ org.eclipse.jetty.servlets.PushCacheFilter
+
+ ports
+ 8444
+
+
+ maxAssociations
+ 32
+
+
+
+ push
+ /*
+
+
+
\ No newline at end of file
diff --git a/libraries-server/src/main/webapp/http2.html b/libraries-server/src/main/webapp/http2.html
new file mode 100644
index 0000000000..4563945a5e
--- /dev/null
+++ b/libraries-server/src/main/webapp/http2.html
@@ -0,0 +1,14 @@
+
+
+
+ Baeldung HTTP/2 Client in Jetty
+
+
+ HTTP/2 Demo
+
+
+
\ No newline at end of file
diff --git a/libraries-server/src/main/webapp/images/homepage-latest_articles.jpg b/libraries-server/src/main/webapp/images/homepage-latest_articles.jpg
new file mode 100644
index 0000000000..59e78e4560
Binary files /dev/null and b/libraries-server/src/main/webapp/images/homepage-latest_articles.jpg differ
diff --git a/libraries-server/src/main/webapp/images/homepage-rest_with_spring.jpg b/libraries-server/src/main/webapp/images/homepage-rest_with_spring.jpg
new file mode 100644
index 0000000000..43d9221e85
Binary files /dev/null and b/libraries-server/src/main/webapp/images/homepage-rest_with_spring.jpg differ
diff --git a/libraries-server/src/main/webapp/images/homepage-weekly_reviews.jpg b/libraries-server/src/main/webapp/images/homepage-weekly_reviews.jpg
new file mode 100644
index 0000000000..0d6d111911
Binary files /dev/null and b/libraries-server/src/main/webapp/images/homepage-weekly_reviews.jpg differ
diff --git a/libraries-server/src/main/webapp/index.html b/libraries-server/src/main/webapp/index.html
new file mode 100644
index 0000000000..2497893d82
--- /dev/null
+++ b/libraries-server/src/main/webapp/index.html
@@ -0,0 +1,12 @@
+
+
+
+ Baeldung: HTTP2 Client in Jetty
+
+
+ HTTP/1.1
+
+ HTTP/2 Push
+
+
+
\ No newline at end of file