Servlet_JSP_Tomcat

View on GitHub

Servlet_JSP_Tomcat

ディレクトリ構成

.
├── main
│   ├── java
│   │   └── ittimfn
│   │       └── servlet
│   │           └── MyServlet.java
│   ├── resources
│   └── webapp
│       ├── WEB-INF
│       │   └── web.xml
│       └── jsp
│           └── myjsp.jsp
└── test
    ├── java
    │   └── ittimfn
    │       └── servlet
    │           └── AppTest.java
    └── resources

13 directories, 4 files

./main/java/ittimfn/servlet/MyServlet.java

/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package ittimfn.servlet;

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("/myservlet")
public class MyServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
        res.setContentType("text/html; charset=utf-8");
            try (PrintWriter out = res.getWriter()) {
                out.println("<html><body>");
                out.println("サーブレット: Hello Servlet World!<br>");
                out.println(getServletContext().getServerInfo());
                out.println("</body></html>");
        }
    }
}

./main/webapp/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Web Application Deployment Descriptor (Java Servlet 4.0) -->
<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">

  <servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/jsp/myjsp.jsp</jsp-file>
  </servlet>

  <servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/myjsp</url-pattern>
  </servlet-mapping>

</web-app>

./main/webapp/jsp/myjsp.jsp

<%@ page contentType="text/html; charset=utf-8" %><html><body>
    ジェイエスピー: Hello JSP World!<br>
    <%= pageContext.getServletContext().getServerInfo() %><br>
    java.vm.name: <%= System.getProperty("java.vm.name") %><br>
    java.vm.vendor: <%= System.getProperty("java.vm.vendor") %><br>
    java.vm.version: <%= System.getProperty("java.vm.version") %><br>
    </body></html>

build.gradle

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
 * User Manual available at https://docs.gradle.org/7.6/userguide/building_java_projects.html
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'

    id 'war'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    // Use JUnit Jupiter for testing.
    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.1'

    // This dependency is used by the application.
    implementation 'com.google.guava:guava:31.1-jre'

    providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
}

application {
    // Define the main class for the application.
    mainClass = 'ittimfn.servlet.App'
}

sourceCompatibility = 17
targetCompatibility = 17

tasks.named('test') {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}

実行

ビルド

gradle war

デプロイ

# コンテナが起動している場合は止めておく。
cd docker
docker-compose stop
cd ..

# シンボリックリンクは機能しないので、ファイルコピーする。
cp ./app/build/libs/app.war ./docker/webapps/

起動

cd docker
docker-compose up -d

url

参考