狂ったお茶会のlog

後で起きる自分のためのメモ

java事始め

しばらく前からjavaの勉強をはじめた

とりあえず投げつけてもらった入門書を読んだ

Amazon.co.jp: Java言語プログラミングレッスン 第3版(上): 結城 浩: 本

Amazon.co.jp: Java言語プログラミングレッスン 第3版(下): 結城 浩: 本

Eclipseをインストールした

最新が4.5.0だったのでそれ

eclipse入れる→古いJavaがないって言われるので入れる→Javaなんちゃらもないって言われる→( ゚ω ゚ )
みたいになった
これやったの1ヶ月前くらいなので記憶が定かではないが多分適当にいろいろ入れました
(eclipse最初に起動したらこれ↓に飛ばされたのでとりあえず入れた記憶)
(https://support.apple.com/kb/DL1572?locale=ja_JP)

Javaなんちゃらについて
JRE→実行環境
JDK→開発もできる
とのこと

蛇足だが
$ java -version で今どのverがPCに入ってるか見れる

こういう感じ

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

EclipseTomcatを登録する

おおむね以下を参照しました
EclipseでTomcatをサーバーとして登録する - Qiita

記事内のTomcatのリンクは切れていたので

Apache Tomcat - Apache Tomcat 8 Downloads

↑の Binary Distributions の Core の zip を落としてきて設定した

Javaのプロジェクト作成する

Eclipseに慣れてないので手順を書いておく

eclipseのメニュー
File -> New -> Project -> Select a wizard のWeb -> Dynamic Web Project を選択
f:id:dormouse666:20151101162248p:plain:w300

Project name 入れて Next
f:id:dormouse666:20151101162310p:plain:w300

src を選択して Next
f:id:dormouse666:20151101162353p:plain:w300

Context root 入れて Finish
f:id:dormouse666:20151101162433p:plain:w300

するとBoardプロジェクトができたぞい
f:id:dormouse666:20151101162611p:plain:w300

プロジェクトの中にパッケージを追加していく

src 配下に追加していく Packageを選択
f:id:dormouse666:20151101162811p:plain:w300

パッケージの名前をつける
通例としてドメイン名みたいにする(以下ではcom.dormouse)とのこと(別に実在はしなくていい)
パッケージ名が違えば同じ名前のクラス名や処理でも置いておける
f:id:dormouse666:20151101162949p:plain:w300

com.dormouse を右クリックして
com.dormouse.actionというパッケージを作成
その中に Class を作っていく
f:id:dormouse666:20151101163349p:plain:w300 ↑IndexActionというクラスを作成した際の画面

クラス名は頭を大文字にするのが通例っぽい
あとGenerate comments にチェック入れておくと@authorとか勝手につけてくれる

java書く

IndexActionに書いたもの

/**
 * 
 */
package com.dormouse.action;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author dormouse666
 *
 */
public class IndexAction extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.getWriter().print("test"); //文字列を返す
    }
}

メモ
- crl+スペースで補完 処理内の何もないところでやるとその処理内で使えるやつ出してくれる、有能
- ctl+iでインデント揃えてくれる

WebContent のWEB-INF配下に web.xml を追加
f:id:dormouse666:20151101164508p:plain:w300

中身は投げつけてもらったのとよくわかってないのとで省略するが
以下みたいに作成したものを呼び出すときはこうしたいってのを書いておく

 <servlet>
        <servlet-name>IndexAction</servlet-name> <!-- なんでもいいけどクラス名にしておく -->
        <servlet-class>com.dormouse.action.IndexAction</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>IndexAction</servlet-name>
        <url-pattern>/java</url-pattern> <!-- このURLに来た時にIndexActionが呼ばれる -->
    </servlet-mapping>

tomcatに認識してもらう

eclipseのServersタブに、入れておいたTomcatがあるはずなので右クリックして上記のプロジェクトをaddする
これを
f:id:dormouse666:20151101165239p:plain:w300

こうじゃ
f:id:dormouse666:20151101165256p:plain:w300

こうなる
f:id:dormouse666:20151101165310p:plain:w300

そいでtomcatをリスタートさせて(このタイミングだと勝手にされてるかも)、
自分で web.xml に設定したURLを叩く
IndexActionに書いてたやつが表示される
f:id:dormouse666:20151101165358p:plain:w400

以上です

あと、tomcatのserver.xmlの下の方に、ContextのURLが書いてあるようなのでそこも見ておくとよいのかも
f:id:dormouse666:20151101165705p:plain:w300