Servlet 3.0 の超シンプルなサンプル (pom も)
ちょっとした Java のライブラリ使うサーバ書かなきゃいけなかったのですが、
折角なので、Servlet 3.0 で書いてみたら鼻血が出るほど簡単で、今まで web.xml とか書いてたのはなんだったんだ状態になったので、
超シンプルなサンプル書いてみました。
package org.yoshiori; import java.io.IOException; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/test") public class ServletTest extends HttpServlet{ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().print(new Date() + ": hoge"); } }
ほんと、これだけ。
web.xml とかその外の設定いっさいいらない。
ついでに pom も書いておくと
<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>org.yoshiori</groupId> <artifactId>servlet_test</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>servlet_test</name> <url>http://maven.apache.org</url> <dependencies> <!-- SERVLET 3.0 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>servlet-test</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <!-- web.xml が無くても mvn package 出来るように --> </configuration> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> </configuration> </plugin> </plugins> </build> </project>
こんな感じ
pom には jetty の設定も入れておいたので、
$ mvn jetty:run
して http://localhost:8080/test にアクセスすれば上記のページが見れまする。
tomcat7 にデプロイしたい時は
$ mvn package
すれば target の下に servlet-test.war が生成されるのでそれを放り込めばok