0
0

More than 1 year has passed since last update.

シンプルな Java Servlet サンプル (Spring Boot 版)

Last updated at Posted at 2021-11-17

ちょっと Java Servlet を Spring Boot で動作させてみたい時のサンプルをメモしておきます。

Maven (pom.xml)

Spring Boot で Java Servlet を動作させるには Spring Web が必要です。
Spring Initializr を利用するなどの何らかの方法で pom.xml ファイルの <dependencies> に以下の Maven Repository 記述を追加します。 (ビルドでの自動ダウンロードの実現のためには、インターネットに接続されている必要があります)

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

なお、Spring Initializr サイトはこちらを参照してください。

Java コード

Spring Web が利用可能になれば、以下のような Java Servlet を実行するコードを記述しましょう。

import java.io.BufferedWriter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ServletCtrl {
    @RequestMapping("/*")
    public void serv(
        final HttpServletRequest req
        , final HttpServletResponse resp)
        throws ServletException {
        System.err.println("Servlet: begin: "
            + req.getMethod() + " " + req.getRequestURI());
        try {
            BufferedWriter writer = new BufferedWriter(resp.getWriter());
            writer.write("<HTML><BODY><P>Hello World!</P></BODY></HTML>");
            writer.flush();
        } catch (IOException e) {
            throw new ServletException(e.getMessage(), e);
        }
        System.err.println("Servlet: end.");
    }
}

簡易な解説

  • RestController アノテーションを利用してクラスを登録
  • RequestMapping アノテーションを利用してリクエストをメソッドにマッピング
  • メソッドの引数に HttpServletRequestHttpServletResponse を加えることにより Java Servlet 処理を可能にする

文書情報

  • 初出: 2021-11-17

関連情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0