Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2015/11/15 Javaでwebアプリケーション入門

66,182 views

Published on

Javaでwebアプリケーション入門。

http://javajok.connpass.com/event/22044/

Published in: Technology
  • Dating direct: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ありがとうございます☆なんとなく理解したつもりだったところを、いろいろ氷解していただきました^^
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

2015/11/15 Javaでwebアプリケーション入門

  1. 1. Javaで Webアプリケーション入門 Abe Asami
 2015/11/15 関西Java女子部
  2. 2. 自己紹介 Abe Asami “きの子” (フリーエンジニア) http://nocono.net/ @aa7th Scala、Andorid
  3. 3. 今日作ってもらうもの
  4. 4. しんぷれったー
  5. 5. 構成
  6. 6. simpletter-api • Twitter「風」API • 今回のために用意(開発)したAPI
  7. 7. API
  8. 8. API • Application Programming Interface • 外部のプログラムから機能を利用するための インターフェイス • 特にRESTという設計思想に基づいたAPIは 「REST API」と呼ばれる
  9. 9. TwitterのAPI仕様書を 見てみよう
  10. 10. 環境
  11. 11. 環境 • Java • バージョン8 • SpringBoot • Java製フレームワーク
  12. 12. フレームワーク
  13. 13. フレームワークとは • アプリケーションに共通する基本的なプログラ ム構造や機能セットを実装したプログラム。 • アプリケーションの骨組み。土台。 • 複雑なシステムを一から作るのは大変なので、 フレームワークを利用して開発する。 • 様々なフレームワークが存在する。 (引用元:http://itpro.nikkeibp.co.jp/article/Keyword/20070528/272739/)
  14. 14. 何はともあれ まずは作ってみましょう
  15. 15. ハンズオンタイム
  16. 16. Webアプリケーション基礎
  17. 17. ※注意 • このセクションでお話することは、Javaに 限った話ではありません。 • Webアプリケーション一般の話をします。
  18. 18. そもそも Webアプリケーションとは?
  19. 19. Webアプリケーションとは • Webアプリケーションとは、Webサーバー上 で動作し、Webブラウザを用いて利用するア プリケーションのことである。 引用元:
 http://www.weblio.jp/content/ %E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA %E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
  20. 20. 例えば • ネットショップ • ネットバンキング • ブログ etc
  21. 21. Webアプリについて知る際に まず覚えてほしい言葉
  22. 22. 「サーバー」 と 「クライアント」
  23. 23. サーバー/クライアントモデル • サーバーは提供する側。クライアントは提供 される側。 • Webアプリの世界にかぎらず、
 サーバー/クライアントという言葉は使う。 • 今日説明するのは、あくまでWebアプリでの サーバーとクライアント。
  24. 24. クライアント • サーバーに必要な情報(リソース)を要求し、返却された 情報を利用する側。 • WebアプリでいうところのクライアントはWebブラウ ザ。 • Webブラウザはサーバーから返却された情報(リソース) を解析、表示する。 • HTML/CSS/JavaScript • 画像
  25. 25. リソースの種類 • HTML • HyperText Markup Language • Webの文章を記述するためのマークアップ言語 • CSS • Cascading Style Sheets • Webのスタイルを指定するための言語 • 装飾を行う • JavaScript • Webブラウザで動くプログラミング言語 • 主に、Webサイトの動的な動きの実装に使われる • Javaとは関係ない
  26. 26. サーバー • クライアントの要求に応じて、リソースを返却する側 • サーバー機能を提供するサーバーソフトを使用 • Apache、nginxなどなど色々種類がある • Javaの場合、TomcatやJetty • サーバーマシンは特殊なPCがいるわけではない • ただし、自前で用意するとなると大変なので今は あまりやらない・・・
  27. 27. では、 サーバーとクライアント間で どのようなやり取りが 行われているのか
  28. 28. イメージ図 Webサーバー Webブラウザ(クライアント) 1. Webページを
 見たいという
 リクエストを送る 2. 指定した
 Webページを
 レスポンスとして
 返す (参考元:Webエンジニア養成読本)
  29. 29. HTTPプロトコル • サーバー・クライアント間の通信の取り決め。 • リクエスト・レスポンス • HTTPメソッド
  30. 30. 「リクエスト」 と 「レスポンス」
  31. 31. リクエスト • クライアントの要求 GET /search HTTP/1.1 Host: www.google.co.jp 例) https://www.google.co.jp/search の情報を取得 ① ② ③ ④ ① メソッド
 ② リクエストURI
 ③ プロトコルバージョン
 ④ リクエストヘッダ ・・・メタデータ
 (⑤ リクエストボディ ・・・ 更新情報などサーバーへ送信したい情報)
  32. 32. レスポンス • リクエストを元にサーバーで生成し返却される情報 HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 <html> … </html> ① ② ③ ④ ⑤ ① プロトコルバージョン
 ② ステータスコード・・・実行結果を表すコード
 ③ テキストフレーズ ・・・実行結果を表すフレーズ
 ④ レスポンスヘッダ ・・・メタデータ
 ⑤ レスポンスボディ ・・・返却情報本体
  33. 33. 実際のリクエストと レスポンスの通信 の様子を見てみよう
  34. 34. HTTPメソッド
  35. 35. HTTPメソッド • リクエストの種類 (という解釈でいいと思います) • リクエストが何を要求するかによって
 使い分ける
  36. 36. HTTPメソッドは8種類 (HTTP1.1)
  37. 37. 実際使用するのは • GET • POST • ( PUT ) • ( DELETE ) ぐらいです。
  38. 38. GET
  39. 39. GETメソッド • リソースの取得 • 例えば、リンクからURLにアクセスするのは GETメソッド。
  40. 40. POST
  41. 41. POSTメソッド • リソースの作成など • 例えば、フォームに情報を入力(ネットショッ プなどで)して「送信」ボタンを押下、サー バーに送信・保存する場合はPOSTメソッ ド。
  42. 42. GETとPOSTの使い分け
  43. 43. GETとPOSTの使い分け • リソースを取得するだけで変更がない場合は GET。 • 上記以外(変更がある場合)はPOST。
  44. 44. GETとPOSTの違い • GETの場合、サーバーへはクエリパラメータ を使って情報を渡し、POSTの場合は
 リクエストボディを使う
  45. 45. クエリパラメータ
  46. 46. クエリパラメータ • クライアントからサーバーへ情報を渡すため のもの • URLに付与 • 例)
 http://◯◯◯.com/search?q=Java&type=a ↑これ
  47. 47. リクエストボディ
  48. 48. リクエストボディ POST /sample HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 8 …
 
 text=Hello • リクエストヘッダの後ろに付与される
  49. 49. URI(URL)
  50. 50. URI • Uniform Resorce Identifier • リソースを統一的に識別するID
  51. 51. URL • Uniform Resorce Location • リソースの場所(Location)を示すためのURI がURL • URLはURIの一種
  52. 52. 参考書籍 • Webを支える技術 -HTTP、URI、HTML、そ してREST (WEB+DB PRESS plus)
  53. 53. Javaについて
  54. 54. Java • オブジェクト指向なプログラミング言語 • コンパイル言語 • JVM上で動く
  55. 55. 今日のプロジェクトを 実行した際に 何が行われているか
  56. 56. コンパイル
  57. 57. コンパイル • 一般的には、ソースコードをコンピュータが実行できる 機械語のプログラムに変換すること。 • Javaの場合、JVMが実行できるバイトコードのクラス・ ファイルに変換される。 • Javaのコンパイラはjavac • javacコマンドでコンパイルできる • IDEのrunボタンを押した時に裏で実行してくれて
 いる
  58. 58. javacコマンドを使用するには JDKが必要
  59. 59. JDK
  60. 60. JDK • Java SE Development Kit • Java用開発者向けキット • アプリケーションを開発するのに必要また は便利なコンパイラやデバッガなどの開発 ツール • 一般的に、こういう開発者向けキットを「SDK (Software Development Kit)」という (参考元:http://docs.oracle.com/javase/jp/8/docs/technotes/guides/index.html#jre-jdk)
  61. 61. コンパイルして生成された クラスファイルは JVM上で実行される
  62. 62. JVM
  63. 63. JVM • Java仮想マシン • Javaで開発されたアプリケーションはJVM上 で実行される • 各OS版のJVMが存在する。OS差異はJVMによ り吸収されるため、同じプログラムで各OS上 で実行することができる。 • Write once, run anywhere
  64. 64. アプリ起動時のイメージ
  65. 65. アプリ起動時のイメージ JVM Tomcat 開発した
 アプリケーション
 (コンパイル済み) PC
  66. 66. イメージを掴んで いただけたでしょうか
  67. 67. 今日のは
 Java/Webアプリ開発の
 ほんのさわりの部分ですが、
 みなさんの理解の助けに
 なれたなら嬉しいです

  68. 68. 今日はお疲れ様でした
  69. 69. テンプレートエンジン
  70. 70. テンプレートエンジン • HTMLファイルにプログラム(Java)コードを 埋め込むように記述できる機能を提供してく れる。 • 今日使ったのはThymeleaf (SpringBoot標準)

×