第13回講義

Similar documents
メディプロ1 Javaサーブレット補足資料.ppt

プレポスト【問題】

WebOTXマニュアル

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

PowerPoint プレゼンテーション

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

PowerPoint Presentation

B2-Servlet-0112.PDF

スライド 1

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

Servlet/JSP ( 作成中 ) 2010 年 x 月 x 日作成 Firebird 日本ユーザー会 Naoyuki Sano 1

Microsoft PowerPoint - Lecture_3

Javaと マルチスレッド

Web JavaScript Java Applet Flash ActionScript CGI (C, perl, ruby ) PHP Servlet, JSP (JavaServer Pages) ASP 7-2

II 2 p.2 2 GET POST form action URL Aisatsu 2.1 Servlet GET GET : Query String QueryStringTest.java 1 import java.io.ioexception; 2 import java.io.pri

PowerPoint Presentation

スライド 1

Microsoft PowerPoint - Lecture_2

Microsoft PowerPoint ppt

9iAS_DEV.PDF

スライド 1

サーブレット (Servlet) とは Web サーバ側で動作する Java プログラム 通常はapache 等のバックグラウンドで動作する Servletコンテナ上にアプリケーションを配置 代表的な Servlet コンテナ Apache Tomcat WebLogic WebSphere Gla

Gartner Day

WebOTXマニュアル

WebOTXマニュアル

<4D F736F F D A B C982E682E98F6F90C88A6D E646F63>

Javaの作成の前に

メディプロ1 Javaプログラミング補足資料.ppt

GEC-Java

Web Servlet/JSP JSP

Microsoft PowerPoint - web_and_dm08_servlet2.pptx

SpringSecurity

Servlet JSP JSP Servlet/JSP における 日 本 語 の 処 理 - 1

intra-mart im-JavaEE Framework

受講を行うための前提知識 PC の基本操作ができること 座学 コーディング実習 受講講座の名称 9 日間 67:30 システムエンジニア向け IT 基礎 4/8/( 月 ) IT 技術者に共通する基本的な知識の習得を目標とします コンピュータ基礎では コンピュータの仕組みやコンピュータで扱う数値や単


WTM2019SingleSignOn

プログラミング基礎I(再)

V8.1新規機能紹介記事

intra-mart im-J2EE Framework

第2回講義

Microsoft Word - Android_SQLite講座_画面800×1280

think9i Oracle Internet File System i を使用した ソフトウェア開発手法 日本オラクル株式会社製品本部システム製品マーケティング部 Copyright 2001 Oracle Corporation Japan. All Rights Reserved.

HTML/JSP/Servlet... 7 JSP... 7 Servlet Struts Struts Struts FormBean LoginForm


intra-mart WebPlatform/AppFramework

rcp-add-01:アーキテクチャ設計書

WEBシステムのセキュリティ技術

2

基本情報STEP UP演習Java対策

目次

JavaプログラミングⅠ

PowerPoint プレゼンテーション

オブジェクト指向プログラミング・同演習 5月21日演習課題

2004/11/23 オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),Visual

Oracle SOA Suite 11gコンポジットに対するSOASchedulerの構成

Part1 159 a a

ObjectPartner Pro

FY01H2_SOHO_iAS

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

SystemDirector Developer's Studio(V3.2) 適用ガイド

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft認定資格問題集(70-483_demo)

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版  

JavaプログラミングⅠ

PowerPoint Presentation

IT プロジェクト


情報システム設計論II ユーザインタフェース(1)

JavaプログラミングⅠ

PowerPoint プレゼンテーション

HTTP 404 への対処

Microsoft PowerPoint - chap10_OOP.ppt

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

PowerPoint プレゼンテーション

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

PowerPoint プレゼンテーション

文字列操作と正規表現

Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

PowerPoint プレゼンテーション

--- サーバ側処理 Java servlet の例 // 通常の Java servlet での POST で受信と同じ protected void dopost(httpservletrequest request, HttpServletResponse response) throws S

Microsoft Word 基_シラバス.doc

Q&A集

JAVA入門

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Webアプリケーション構築 Java 7版

Oracle9i JDeveloper R9.0.3 チュートリアル

メソッドのまとめ

Prog2_12th

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

2

Java演習(4) -- 変数と型 --

PowerPoint Presentation

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Transcription:

オブジェクト指向概論 第 13 講 実装とサーバサイド Java 立命館大学 情報理工学部 黄宏軒 1

13.1 Java による実装 n フォワードエンジニアリング UML による表現をプログラミング言語による記述に変換 n リバースエンジニアリング UML User -name:string +getname():string プログラミング言語の情報を UML モデルに変換 UML User -name:string +getname():string Java プログラム public class User{ private String name; public String getname() { return name; Java プログラム public class User{ private String name; public String getname() { return name; 2

クラス定義の実装 UML クラスパッケージ汎化抽象クラスインタフェース実現 Java class package extends abstract class interface implements package sample.domain; public class Cart { public interface OrderService { public class OrderServiceSupport implements OrderService { public class OrderServiceImpl extends OrderServiceSupport { 3

属性と関連の実装 1. 属性 インスタンス変数またはクラス変数へ 2. 多重度 1 の関連 public class OrderDetail { private static int COUNT_MAX = 10; protected int ty; private int totalprice; public class CartItem { protected item Item; 4

3. 集約, コンポジション ( 関連と同じように ) インスタンス変数へ 4. 多重度が * の関連 配列またはコレクションで public class Class { private Teacher teacher; private Student[ ] student; 5

5. 多重度が * 対 * の双方向関連 関連クラスにするのが良い public class Author { private Write[] write; public class Write { private Author author; private Book book; 6

n オブジェクト図を描いているととわかりやすい 著者 1 1 0..* 1..* 書籍 A さん : 著者 ああ : 書籍いい : 書籍 執筆 B さん : 著者 うう : 書籍 ええ : 書籍 C さん : 著者 おお : 書籍 = 執筆オブジェクト 7

操作の実装 n UML の操作 Java のメソッド public class Customer { public static int ORDER_MAX = 10; private String customerid; public void addorder(order order) { public Collection<Order> getorders() { return this.orders; 8

n シーケンス図のメッセージ送信 送信先のメソッド public class OrderService { public void order(string custid) { Cart cart = cartdao.findbycustid(custid); Order order = cart.createorder(); 9

13.2 Web アプリケーション n 静的 Web 例 : ホームページ ページの要求 ページの返却 HTML ファイル n 動的 Web 例 : 乗換え案内 処理の要求 乗車駅 下車駅取得 最短経路探索 結果の返却 結果表示ページ作成 10

CGI(Common Gateway Interface) n 利用者の PC Webブラウザからの要求に応じて, 対応するプログラムを起動し, 実行結果をWebブラウザに返すしくみ キーワード 検索 http://foo.com/ 検索入力ページ http://foo.com/cgi.bin/search.pl サーバー 別プロセスとして起動される search.pl プログラムを起動 検索結果リスト 検索結果ページ ページの枠に検索結果を埋め込む 11

13.3 Java サーブレット スレッドとして起動される HTTP リクエスト サーブレット サーブレット サーブレット HTTP レスポンス サーブレットコンテナ ページの枠に検索結果を埋め込む 12

Web サーバソフト n Apache Web サーバ (HTTP リクエストを処理する ) ソフト CGI 機能を持つ n Apache Tomcat n IIS Java サーブレットや JSP を実行するためのサーブレットコンテナ ( エンジン ) Apache と連携させて動かすこともできる Microsoft が提供する Windows 用 Web サーバソフト ASP や ASP.NET を実行することができる 13

Java サーブレットの例 package jp.hattori.objectdev; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletreuest; import javax.servlet.http.httpservletresponse; public class SampleServlet extends HttpServlet { private static final long serialversionuid = 1L; 出力先の取得 出力するページの作成 protected void dopost (HttpServletReuest reuest, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html; charset=shift_jis"); HttpServlet クラスを継承してサーブレットを作成 reuest.setcharacterencoding("shift_jis"); String str = reuest.getparameter("text1"); PrintWriter out = response.getwriter(); out.println("<html><body>"); out.println(str); HTTP リクエスト (POST) により起動されるメソッド HTTP リクエストからパラメータを取り出す out.println("<h3> あなたは,<blink> " + str + " </blink> と書きました.</h3>"); out.println("</body></html>"); 14

doget( ) と dopost( ) n HTTP リクエストに対応して実行されるメソッド HTTP リクエスト 半径 = 4 Public void doget (reuest, response) { 半径 = 4 送信 面積 =50.24 // リクエストからデータを取り出す reuest.getparameter( radius ); //HTML 出力の生成 response.getwriter( ); HTTP レスポンス 15

デプロイメント記述子 web.xml <servlet> <description></description> <display-name>sampleservlet</display-name> <servlet-name>sampleservlet</servlet-name> <servlet-class>jp.hattori.objectdev.sampleservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>sampleservlet</servlet-name> <url-pattern>/sample</url-pattern> </servlet-mapping> サーブレット名 サーブレット名サーブレットクラス 対応する URL 16

13.4 JSP n Java サーブレット Java プログラムの中で HTML を生成 n JSP(Java Server Pages) HTMLの中にJavaプログラムを埋め込む実行時にはJavaサーブレットに書き換えられて実行される 17

JSP の例 <%@ page language="java" contenttype="text/html; charset=windows-31j" pageencoding="windows-31j"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head><meta http-euiv="content-type" content="text/html; charset=windows-31j"> <title>jsp 時計 </title></head> <body> <h2> ようこそ,JSP の世界へ </h2> ただいまの時刻は,<% out.println(new java.util.date()); %> です. </body> </html> 18

Java サーブレットと JSP の連携 n Java サーブレットで処理をして, 結果を JSP で表示 サーブレット // formview.jsp に引き継ぐため Attribute にセット reuest.setattribute( name, janame ); // hello.jsp に引き継ぐ ReuestDispatcher dispathcer =reuest.getreuestdispatcher( "hello.jsp" ); // フォワード dispathcer.forward( reuest, response ); JSP // パラメータの取得 String name = (String) reuest.getattribute( name ); // データの表示 <dt>name</dt> <dd><%= name %></dd> 19

13.5 JavaBeans n JavaBeans とは ある一定の命名規則と設計規則にしたがって作成された Java クラス 単体としては動作しないソフトウェア部品で, 常に他のプログラムから呼び出されて利用される n MVC (model, view, controller) モデルの実現 Java サーブレット,JSP からビジネスロジックを JavaBeans として独立させる 20

MVC モデル n 本講義で前提とするソフトウェアアーキテクチャのモデル 1 クライアントからの入力 (http reuest) を Controller が受ける 2Controller が入力を解釈して,Model に処理を依頼する クライアント ブラウザ Java Controller サーフ レット View JSP JavaBeans Model サーバ DB 4View は Model の処理結果を参照する 5View はクライアントに出力 (http response) を返す 3Controller が View を呼び出し,Web ページの生成を依頼する 21

Java サーブレット,JSP, JavaBeans サーブレット Public void doget(httpservletreuest reuest, HttpServletResponse response) throws ServletException, IOException { // JavaBeans を生成 HellowWorldBean samplbean = new HellowWorldBean(); ServletContext application = this.getservletconfig().getservletcontext(); // サーブレットコンテクストに格納 application.setattribute( HellowBean, samplebean); JSP <jsp:uawbean id= HellowBean class= mybeans.hellowworldbean scope= application /> // JavaBeansの使用宣言 <html><head><title>helloworldbean</tiutle></head> <body> <jsp:getproperty name= HellowBean property= greeting /> // データの取得 </body></html> 22

13.7 Java とデータベース n Java とデータベースはモデルが違う 23

DAO パターンによるデータアクセス n DAO(Data Access Object) システムのドメインロジックとデータ ( ベース ) のアクセスを分離させる データベースからオブジェクトを取得したり, データベースへオブジェクトを格納する DAO への依頼には SQL を使わない DAO は一つのテーブルに対応させる ロジック データアクセスレイヤ 予約テーブル DAO SQL データベース 予約テーブル 24

JDBC n JDBC (Java DB Connectivity) Java から DB をアクセスするための API MySQL などでは,DB は別プロセスとして動かすので, プロセス間通信となる Web サーバ select * from customer_tbl ; データベースサーバ 検索結果 DB doget( ) {. String sl = select * from customer_tbl ; rs = st.executequery(sl);. 25