ちょっと 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
アノテーションを利用してリクエストをメソッドにマッピング - メソッドの引数に
HttpServletRequest
とHttpServletResponse
を加えることにより Java Servlet 処理を可能にする
文書情報
- 初出: 2021-11-17