プログラミングと日々思ったことなど

ブログ名通りです。仕事でプログラミングをはじめました。

Javaを個人的にはじめて、反省に至るまで【Java】

前回の記事から、随分経ってしまいました。

6月ごろから友人と二人で、少しずつ開発をしています。
その経過を書いていきます。

開発環境

macOS Sierra
Java 8
Eclipse(Neon)


参考にしたぺージ

初心者でもほぼ無料でJavaを勉強できるコンテンツ10選 - paiza開発日誌

Angular 2 画面遷移

mobile:初心者のためのSpring Framework入門


1.eclipseでダウンロードから、データベース接続に至るまで。

まず、eclipseで動的プロジェクトを作成し、サイトを参考にしながらデータベース接続画面を作成してみました。
そして実行してみますが・・・
f:id:boa0203:20170916180808p:plain

できない。
リソースが無いと言われてしまったので、何かが足りないのだと思い試行錯誤しました。
ですが原因がわからなかったので、経験者に質問。
助言と参考画面をもらいました。

助言
・contextかserverファイルの書き方が間違っているのでは。
JSPTOMCAT をビルドすると、変なファイルが作られるときもあるので、キャッシュのクリアをした方が良いかもしれない。
Tomcatapache連携する。
JSONでパラメータを与えて非同期にする。

!context.xml
アプリケーションの配置場所や呼び出し方などの情報を設定するファイル。

!server.xml
Tomcatサーバの動作を定義する設定するファイル。

参考画像を元に、自分のDB接続設定のコードを確認したところ書き方の違いを発見。
書き直したところ、接続ができました。

2.画面にデータベースから取得したデータを表示するまで。

接続はできたので、今度は取得したデータの表示に取り掛かりました。
1で取ってこれた接続設定と、servletを使用してデータを表示したかったのですが、データの表示がうまくいきませんでした。
このservletの書き方が理解できず、時間を費やしてしまい焦りだし、結局サンプルのjspに直書きするものでなんとか表示させました。

f:id:boa0203:20170916235837p:plain


Servlet
サーバー上で動く部品のようなもの。Java言語で記述される。
MVCではControlにあたる。

JSP
HTML上に直接記述できるJava言語。
MVCではViewにあたる。

servletjspの違い
servletは常にコンパイルが必要だが、jspサーブレットエンジンがjspファイルを自動的に変換してくれる。
なので、jspservletに変換される。

MVCについて
Model、View、Control と役割分担をしてプログラムを作成する方法。
役割の内容
Control ・・・ DB関連
View ・・・ 画面表示
Model ・・・ 処理結果をViewに返す(ModelとViewの仲介、制御)

JavaでのModelはJavaBeansになる。JavaBeans自体は、直接クライアントから呼び出されることはない。(仲介、制御なので)

3.表示したデータから1つのデータを選択して、それを別のページに持って行くまで。
次に1つのデータを選択して、次のページに表示する処理を作ろうと考えました。
が、何をすれば良いのかわからず、経験者にお聞きしました。

<%@page contentType="text/html"%> 

<%@page import="java.sql.*"%>

<%!

// サーブレットのinitメソッドに相当

public void jspInit() {

    try {

        // JDBCドライバをロード

        Class.forName("com.mysql.jdbc.Driver");

    } catch (Exception e) {

        e.printStackTrace();

    }

}

%>

<html> 

<body> 


<%=session.getAttribute("mysql")%> 

<%= request.getParameter("eid")%>

</body> 

</html> 


そしてメソッドを使用して、次画面に持って来ることができました。

・・・ここから、jspservletやプロジェクトの中身などについて調べて行ったり来たりしますが・・・理解が追いつかなくなりました。

4.フレームワークを使用する

理解が追いつかなくなってきたので、経験者が教えてくれたフレームワークを使用しようと試みます。

使ってみたのは、Angular 2です。

f:id:boa0203:20170917012222p:plain

参考ページそのままの画面を表示できました。
ですが、このAngular 2の使用はやめることにしました。
コンポーネント指向、開発言語(TypeScript)の理解が必要だからです。
JavaScriptコードもままならないのに、無謀でした。

このAngular 2を少しだけ動かし、Java自体をもう一度やり直そうと反省しました。

5.現在

反省して今度はSpringフレームワークを調べつつ、画面を作っています。
・・・この記事は戒めです・・・。