Skip to content

Instantly share code, notes, and snippets.

@maeharin
Last active August 29, 2015 14:17
Show Gist options
  • Save maeharin/b9daa003b65257cb65fa to your computer and use it in GitHub Desktop.
Save maeharin/b9daa003b65257cb65fa to your computer and use it in GitHub Desktop.
java,mavenで生servlet

java,mavenで生servlet

プロジェクト作成

$ cd /Users/hidenorimaehara/sandbox
$ mvn_init -a raw_servlet -t web
$ cd raw_servlet
$ mvn eclipse:eclipse -Dwtpversion=2.0

eclipseで上記プロジェクトを読み込む

eclipse起動 -> file -> import -> general -> existing projects into workspace -> select root directory(browseで上記ディレクトリを選択)

デプロイ先サーバ用意

todo: tomcatのバイナリをeclipseに設定する手順を書く

eclipseで eclipse => 環境設定 => Server => Runtime Environments => Apache Tomcat v5.5 => Add => create a new local serverにcheck => Finish

eclipseのserversタブをクリック (すでにサーバーが起動していたら、停止) マウントしたいサーバ(tomcat5.5)を右クリック -> Add and Remove -> 左側のフィールドから自分のアプリをを選択 -> start!

http://localhost:8080/raw_servlet/

index.jspの内容が表示される

$ git add .
$ git commit

servlet作成

  • RouterServlet作成(ctrl + nでservlet選択すれば、自動で以下のようなマッピング定義をweb.xmlに追加してくれる)
+  <servlet>
+       <servlet-name>RouterServlet</servlet-name>
+       <display-name>RouterServlet</display-name>
+       <description></description>
+       <servlet-class>RouterServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+       <servlet-name>RouterServlet</servlet-name>
+       <url-pattern>/RouterServlet</url-pattern>
+  </servlet-mapping>

作ったサーブレットのdoGetを変更

import java.io.PrintWriter;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    PrintWriter out = response.getWriter();
	    out.println("hi---");
	}
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.3</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

  <build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.1</version>
              <configuration>
                  <encoding>UTF-8</encoding>
                  <source>1.6</source>
                  <target>1.6</target>
              </configuration>
          </plugin>
      </plugins>
  </build>

# eclipse:eclipseをしないと、.classpathにservlet-apiが入ってこない。。
$ mvn eclipse:eclipse -Dwtpversion=2.0 && mvn clean package

eclipseでrefreshすると、dependencyのエラーが消える

$ git add .
$ git commit

packageを作ってみる

  • ctrl + nでpackageを選択
  • com.maeharin
  • refresh
  • packageを右クリックしてファイル作成(前に作ったクラスをパッケージに動かしたければ、reafactoring -> move0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment