Hello World avec Java Servlet et JSP (démarrage facile du serveur Web avec Maven + Jetty)

Aperçu

--Exécuter Java Servlet et JSP dans un environnement local --Utiliser Jetty pour le conteneur de servlet

environnement

Code source

Liste des codes sources

--pom.xml: fichier de configuration de construction pour Maven --MyServlet.java: code source du servlet Java --index.jsp: code source JSP --web.xml: fichier de configuration de l'application Web

├── pom.xml
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── MyServlet.java
        └── webapp
            ├── WEB-INF
            │   └── web.xml
            └── index.jsp

pom.xml: fichier de configuration de construction pour Maven

--Ajoutez javax.servlet-api à la dépendance pour utiliser l'API Java Servlet 3.1. --Ajoutez jetty-maven-plugin pour pouvoir facilement démarrer Jetty à partir de Maven et vérifier l'opération.

<?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>com.example</groupId>
  <artifactId>my-servlet</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>my-servlet</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <jetty.version>9.4.19.v20190610</jetty.version>
  </properties>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <!-- https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html -->
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty.version}</version>
      </plugin>
    </plugins>
  </build>

</project>

MyServlet.java: code source du servlet Java

package com.example;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    resp.setContentType("text/html; charset=utf-8");
    PrintWriter out = resp.getWriter();
    out.println("<html><body>Hello, Servlet World!</body></html>");
    out.flush();
    out.close();
  }
}

index.jsp: code source JSP

<html><body>Hello JSP World!</body></html>

web.xml: fichier de configuration de l'application Web

--Mapper le servlet MyServlet.java afin qu'il soit accessible avec / my-servlet / *.

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>My Servlet Web Application</display-name>

  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/my-servlet/*</url-pattern>
  </servlet-mapping>
</web-app>

Lancez Jetty pour accéder à votre application Web

Vous pouvez démarrer Jetty avec mvn jetty: run.

$ mvn jetty:run

Lorsque vous accédez à http: // localhost: 8080 / my-servlet /, le contenu généré par MyServlet.java est renvoyé.

$ curl http://localhost:8080/my-servlet/
<html><body>Hello, Servlet World!</body></html>

Lorsque vous accédez à http: // localhost: 8080 /, le contenu écrit dans index.jsp est renvoyé.

$ curl http://localhost:8080/
<html><body>Hello JSP World!</body></html>

Matériel de référence

Recommended Posts

Hello World avec Java Servlet et JSP (démarrage facile du serveur Web avec Maven + Jetty)
Hello World avec GlassFish 5.1 + Servlet + JSP
Hello World avec GWT 2.8.2 et Maven
Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP
[Mise à jour décembre 2018] Astuces pour le serveur Web intégré et le serverlet créés avec Jetty9
Créez une application Web Hello World avec Spring Framework + Jetty
Bonjour tout le monde avec Kotlin et JavaFX
Hello World avec Docker et langage C
Bonjour tout le monde en Java et Gradle
Comparez Hello, world! Avec Spring Boot avec Java, Kotlin et Groovy
Hello World avec Eclipse + Spring Boot + Maven
Bonjour tout le monde avec le moteur de modèle Java Thymeleaf
Développement Java avec Codenvy: Hello World! Run
Bonjour tout le monde avec Kotlin et Tornado FX
Construction d'un environnement Java minimal et Hello World
Déployez des applications Web Java sur Azure avec maven
Créer un environnement Java et afficher hello world [Débutant]
Exécutez JSP Hello World avec Tomcat sur Docker
[Java] Hello World avec Java 14 x Spring Boot 2.3 x JUnit 5 ~
Facile à créer LINE BOT avec Java Servlet
Facile à afficher Hello World avec Rails + Docker
Java, bonjour le monde!
Java Hello World
Exécutez Maven sur Java 8 lors de la compilation sur Java 6 et des tests sur Java 11
Facile à créer LINE BOT avec Java Servlet Partie 2: J'ai essayé des messages image et des modèles
"Hello World" en Java
Apprendre Java (1) - Hello World
Hello World en Java
Hello World avec Micronaut
Mémo de développement d'applications Web avec MVN, Tomcat, JSP / Servlet avec VScode
[Java] Un type d'alphabet interdit Avec reliure Bonjour tout le monde! [Reliure]
Jusqu'à ce que vous créiez une application Web avec Servlet / JSP (Partie 1)
Raisons d'utiliser séparément Servlet et JSP dans le développement Java
Communication socket avec un navigateur Web utilisant Java et JavaScript ②
Communication socket avec un navigateur Web utilisant Java et JavaScript ①
Un exemple CRUD simple utilisant Java Servlet / JSP et MySQL
Parmi les trois serveurs Web embarqués Java, Tomcat, Jetty et Undertow, lequel fonctionnait sur GraalVM?