720 likes | 1.06k Views
JAVA Struts Framework (JAVA EE) Using Netbeans. MFEC (Genius Evolution Team) Version 1, Year 2014 By Pornpan P. ระยะเวลาและเนื้อหาในการอบรม. Agenda I. วันที่ 13 มีนาคม 2014 1. ช่วงเช้า Install Program Install JDK 1.6 , Set Environment (JAVA_HOME and Path)
E N D
JAVA Struts Framework (JAVA EE)Using Netbeans MFEC (Genius Evolution Team) Version 1, Year 2014 By Pornpan P.
ระยะเวลาและเนื้อหาในการอบรมระยะเวลาและเนื้อหาในการอบรม
Agenda I วันที่ 13 มีนาคม 2014 1. ช่วงเช้า Install Program • Install JDK 1.6 , Set Environment (JAVA_HOME and Path) • Netbeans IDE, Glassfish Application Server • Configuration Glassfish application server with Netbeans IDE • Install MySQL 5.0 • Install SQLFont
Agenda I วันที่ 13 มีนาคม 2014 2. ช่วงเช้า Introduction Java (Web Application) • OOP (Object Oriented Programming) • Introduction basic Web Application • Struts Framework (MVC Design Pattern) • Struts Control Flow • Lab Java Application Calculator (AWT) • Lab Student Circle Web (JSP+Java)
Agenda II วันที่ 13 มีนาคม 2014 1. ช่วงบ่าย • Create HelloStruts Project by Struts Framework. - struts Link by image, text and button. 2. ช่วงบ่าย • Create Struts Calculator Projectby Struts Framework.
Agenda II วันที่ 14 มีนาคม 2014 1. ช่วงเช้า Create StrutsCrudWeb Project • Create Database • Create Bean • Create Class Connection Database • Create DAO (Data Access Object)
Agenda II วันที่ 14 มีนาคม 2014 1. ช่วงบ่าย Create StrutsJDBCWeb Project • Create GUI or JSP page • Create Struts Action Form • Create Struts Action • Unit test • Introduction Web Service
Topic 1 Web Base Overview
Topic 1 : Web Base Overview ประเภทของโปรแกรม • Imperative or Structure Programming • C, C++ • PASCAL • OOP (Object-Oriented Programming) • Java, .Net • COP (Component-Object Programming) • CORBA, EJB, DCOM, COM+
Topic 1 : Web Base Overview วิวัฒนาการของ Application การพัฒนา Application มีดังนี้ • Stand Alone Application • Network Application (LAN, MAN, WAN) • Client-Server • Peer-To-Peer • Web-Base Application • Distributed Application
Topic 1 : Web Base Overview Stand Alone Application
Topic 1 : Web Base Overview Web Network Application (LAN, MAN, WAN) • Local Area Network • เครือข่ายข้อมูลความเร็วสูง โดยจะครอบคลุมพื้นที่ไม่ใหญ่มาก เช่น ภายในสํานักงาน ภายในอาคาร หรือภายในองค์กรหรือบริษัท • คอมพิวเตอร์แต่ละตัวจะต่อเข้ากับอุปกรณ์เครือข่าย อย่างเช่น ฮับ (Hub), สวิทชิ่งฮับ (Switching Hub) หรือ Access Point ด้วยสายคู่ตีเกลียว (Unshield Twisted Pairs หรือ UTP) หรือด้วยคลื่นวิทยุ • แต่เครือข่าย Local Area Network (LAN) จะเชื่อมต่อถึงกันด้วยอุปกรณ์ที่ชื่อเราเตอร์ (Router)
Topic 1 : Web Base Overview Network Application (LAN)
Topic 1 : Web Base Overview Web Network Application (LAN, MAN, WAN) • Metropolitan Area Network • เครือข่ายข้อมูล ที่ครอบคลุมพื้นที่ทางภูมิศาสตร์ที่ใหญ่ขึ้นกว่า LAN เช่น การเชื่อมต่อระหว่างองค์กรต่างๆ ภายใน อำเภอ หรือจังหวัด • เป็นลักษณะการนำเครือข่าย LAN หลายๆ เครือข่าย ที่อยู่ห่างกันมาต่อถึงกันผ่านทางสื่อต่างๆ เช่น ไมโครเวฟ (Microwave), คลื่นวิทยุ, ผ่านดาวเทียม, คู่สายสัญญาณเช่า (Leased line), หรือ ทางดิจิตอลสคริปเบอร์ (DSL) โดยการเชื่อมต่อระหว่างแต่ละเครือข่ายนั้นอาจมีความเร็วไม่สูงมาก
Topic 1 : Web Base Overview Network Application (MAN)
Topic 1 : Web Base Overview Web Network Application (LAN, MAN, WAN) • Wide Area Network • เครือข่ายที่เกิดจากการเชื่อมตอ เครือข่ายแบบ LAN ที่อยู่ห่างไกลกันมากๆ เข้าด้วยกัน โดยจะที่ครอบคลุมพื้นที่ทางภูมิศาสตร์ที่ใหญ่กว่าแบบ MAN เช่น การเชื่อมต่อระบบเครือข่ายระหว่างจังหวัด หรือระหว่างประเทศ โดยจะเชื่อมต่อด้วย คู่สายเช่า (Leased line) ระบบไมโครเวฟ หรือผ่านดาวเทียม และการเชื่อมต่อระหว่างแต่ละโหนดนั้นอาจมีความเร็วไม่สูงมาก
Topic 1 : Web Base Overview Network Application (WAN)
Topic 1 : Web Base Overview Web-Base Application
Topic 1 : Web Base Overview Web-Base Application
ความรู้เกี่ยวกับJava Language • Java แบ่งออกเป็น 3 กลุ่มคือ JavaME : Java 2 Platform, Micro Edition (Mobile/Wireless) JavaSE : Java 2 Platform, Standard Edition (Core/Desktop) JavaEE : Java 2 Platform, Enterprise Edition (Enterprise/Server) J2EE J2ME J2SE
Java Identifiers การเข้าถึงข้อมูลของแต่ละ Identifiers
OOP (Object Oriented Programming) OOP (Object Oriented Programming) เป็นวิธีการเขียนโปรแกรม โดยอาศัยแนวคิดของวัตถุชิ้นหนึ่ง มีความ สามารถในการปกป้องข้อมูล และการสืบทอดคุณสมบัติ ซึ่งทำให้แนวโน้มของ OOP ได้รับการยอมรับและพัฒนามาใช้ในระบบต่าง ๆ มากมาย เช่น ระบบปฏิบัติการ วินโดวส์ เป็นต้น OOP เป็นขั้นตอนของการเขียนโปรแกรม ไว้ใช้งานจริง จากที่ได้ Analysis และ Design ไว้แล้วและมีกฎ 3 ข้อ ดังต่อไปนี้ 1. Inheritance 2. Encapsulation 3. Polymorphism
1. Inheritance (คุณสมบัติการสืบทอด) 1. Inheritance (คุณสมบัติการสืบทอด) ใน Procedural Programming จะทำการจัดหาส่วนขอโปรแกรม ที่มีการใช้ซ้ำบ่อยๆ เพื่อนำกลับมาใช้ใหม่ (reuse) ในรูปแบบของโปรแกรม ย่อย (Procedure หรือ Function) ซึ่งเราจะสามารถเรียกใช้ซ้ำได้หลาย ครั้งตามต้องการ อย่างไรก็ตาม ใน OO Programming มีคุณสมบัติข้อนี้ เช่นกัน แต่ยังมีการออกแบบที่พิเศษมากขึ้นกว่าการ reuse คือ ความสามารถในการจัดการกับ Class และกลุ่มของ Class ต่างๆ
1. Inheritance (คุณสมบัติการสืบทอด) โดย คุณสมบัติที่เรียกว่า “Inheritance” ที่ประกอบด้วยหลักการของ Superclass/Subclass, Abstraction และ is-a relationship ซึ่งหลักการ ต่างๆ เหล่านี้จะช่วยให้การออกแบบโครงสร้างโปรแกรมแบบ OOP ทำ ได้ง่ายขึ้น • Inheritance คือ คุณสมบัติที่ Class ๆ หนึ่ง สามารถสืบลักษณะของ attribute และ method ของ อีก Class หนึ่งได้ การทำเช่นนี้ทำให้เราสามารถ Create Class ใหม่ขึ้นโดยนำสาระสำคัญหรือลักษณะ ที่เหมือนกันของ attribute และ behavior (method) จาก class อื่นมาใช้ได้ ดังรูปภาพต่อไปนี้
1. Inheritance (คุณสมบัติการสืบทอด) Superclass : คลาสแม่ A B D C Inheritance สืบทอดคุณสมบัติจากคลาสแม่ A B D Subclass : คลาสลูก C E
1. Inheritance (คุณสมบัติการสืบทอด) • การสร้าง Superclass และ SubclassSuperclassจะสร้างเหมือนกับการสร้าง Class ทั่วไป แต่การสร้าง • Subclass จะระบุคำว่า “extends” ร่วมด้วยเพื่อให้ทราบว่า Subclass • จะใช้คุณสมบัติจาก Superclassชื่ออะไร มีรูปแบบดังนี้ • classชื่อ subclass extendsชื่อ superclass เช่น class B extends class A จะหมายถึง คลาส B เป็น • subclass ของ class A ตัวอย่างเช่น • class A { int x ; } class B extends class A { int y ;}
1. Inheritance (คุณสมบัติการสืบทอด) • การสร้าง Superclass และ Subclassclass A { int x ; } class B extends class A { int y ; } ทำการสร้าง instance จากคลาสทั้ง 2 A a = new A() ; B b= new B() ;
classA { A() { System.out.println(“X”); } } class B extendsA { B() { System.out.println(“Y”); } public static void main(String args[]) { new B(); } } ผลลัพธ์ที่ได้ คือ X Y 1. Inheritance (คุณสมบัติการสืบทอด)
1. Inheritance (คุณสมบัติการสืบทอด) ความหมายของ Super classes & Sub classes คือ Super class เป็นคุณสมบัติหนึ่งที่เกิดจากการ Inheritance โดย Super class หรือ Parent class หมายถึง class ที่มี attribute และ method ที่จะให้ class ทั่วไปสืบทอดคุณสมบัติจากตัวเอง ส่วนsubclassหรือ child classหมายถึง class ที่สืบคุณสมบัติมาจาก parent classในการสืบทอดคุณสมบัติจาก Superclass ไปยัง Subclass นั้น Subclass จะมีคุณสมบัติของ attribute และ method ทุกอย่างจาก Superclassตัวอย่างดังรูป
1. Inheritance (คุณสมบัติการสืบทอด) Inheritance มีอยู่ 2 แบบคือ • แบบที่ 1Object ใหม่ 1Object ที่ถูกสร้างขึ้นมามีการสืบทอดลักษณะจาก Class แม่เพียง 1Classจะเรียกว่า Single inheritanceจะเห็นได้ว่า Object Helicopter จะสืบทอดลักษณะมาจาก Object Aircraft เพียง Object เดียว
1. Inheritance (คุณสมบัติการสืบทอด) • แบบที่ 2 บาง Object จะมีการสืบทอดลักษณะจาก Class แม่ 2 Class ขึ้นไป ซึ่งจะเรียกว่า Multiple inheritanceดังรูป Vehicle Object พาหนะ เครื่องบิน อาวุธ Ship Object Aircraft Object Weapon Object เรือ เฮลิคอปเตอร์ Helicopter Object Missile Object ขีปนาวุธ
2. Encapsulation (คุณสมบัติการห่อหุ้มข้อมูล) 2. Encapsulation Encapsulation คือ แนวความคิดในเชิง Object-Oriented ซึ่งข้อดีของ Encapsulation คือการป้องกัน attribute (data) ของ object จากความเสียหาย เพราะถ้าส่วนของโปรแกรมทั้งหมด อนุญาตให้มีการเข้าถึง Attribute ได้ตามที่ต้องการแล้วนั้น จะส่งผลให้ attribute นั้นง่ายต่อการถูกใช้อย่างผิดๆ ทำให้ค่า attribute เปลี่ยนแปลงไป ซึ่งก่อให้เกิดความเสียหายตามมาได้
2. Encapsulation (คุณสมบัติการห่อหุ้มข้อมูล) 1. Public - สามารถเรียกใช้ได้ทุก Class ทุก Package 2. Private - สามารถเรียกใช้ได้ภายใน Class เท่านั้น - Class ที่อยู่ใน Package เดียวกันไม่สามารถเรียกใช้ได้ - Package & Class อื่น ๆ ไม่สามารถเรียกใช้ได้ 3. Protected - Package อื่น ไม่สามารถเรียกใช้ได้ นอกจากจะทำการ Inherit ถึงจะใช้ข้าม Package & Class ได้ 4. Package - Package & Class อื่นไม่สามารถเรียกใช้ได้ - เรียกใช้ได้ภายใน Package เดียวกันเท่านั้น
package org.rmu.encapesulationA; public class A1 { public A1(){ } voiddefultA1() { System.out.println("defultA1"); } public void publicA1(){ System.out.println("publicA1"); } private void privateA1(){ System.out.println("privateA1"); } protected void protectedA1(){ System.out.println("protectedA1"); } public static void main(String args[]){ A1 a1= new A1(); a1.defultA1(); a1.publicA1(); a1.protectedA1(); a1.privateA1(); } } package org.rmu.encapesulationA; public class A2 { public A2(){ A1 a1 = new A1(); a1.defultA1(); a1.protectedA1(); a1.publicA1(); } public static void main(String args[]){ new A2(); } } 2. Encapsulation (คุณสมบัติการห่อหุ้มข้อมูล) ผลลัพธ์ที่ได้ คือ defultA1, protectedA1, publicA1 ผลลัพธ์ที่ได้ คือ defultA1, publicA1, protectedA1, privateA1
2. Encapsulation (คุณสมบัติการห่อหุ้มข้อมูล) package org.rmu.encapesulationB; import org.rmu.encapesulationA.A1; public class B1extendsA1 { public B1(){ A1 a1 = new A1(); a1.publicA1(); this.protectedA1(); } public static void main(String args[]){ new B1(); } } ผลลัพธ์ที่ได้ คือ publicA1, protectedA1
3. Polymorphism (คุณสมบัติการเปลี่ยนรูป หรือพ้องรูป) 3. Polymorphism หรือกฎการพ้องรูป กฎข้อนี้เพิ่มความสะดวกในการพัฒนางานเป็นอย่างมาก เช่นภาพของหมึก Printer ที่เป็นของเหลวสีดำ แต่สามารถที่จะพิมพ์เป็นภาพอะไรก็ได้ แล้วแต่คำสั่งทั้งๆ ที่เป็นแค่น้ำหมึกสีดำ ๆ แต่สามารถที่จะพิมพ์เป็นภาพ ตัวหนังสือ, ลายไทย, ภาษาจีน ฯลฯ ภาษาเชิงวัตถุเรียกการกระทำนี้ว่า การ Overwrite method และการ Overload Method ดังนี้ 가인 (佳人) OOP : 강유 (剛柔) Polymorphism 구름
3. Polymorphism (คุณสมบัติการเปลี่ยนรูป หรือพ้องรูป) - Overloading method คือการสร้างหรือกำหนดให้ Method หรือ Constructor ที่มีชื่อเดียวกัน มีอาวร์กิวเมนต์ที่แตกต่างกัน เพื่อให้ Method หรือ Constructor มีคุณสมบัติการพ้องรูป และการที่ Method หรือ Constructor มีอาร์กิวเมนต์ที่แตกต่างกันนั้น กล่าวได้ว่า Method หรือ Constructor เหล่านั้นถูก Overload เช่น
3. Polymorphism (คุณสมบัติการเปลี่ยนรูป หรือพ้องรูป) Public void print (int a); Public void print (float b); Public void print (double c); Public void print (); คือการทำ Overloading ให้กับ method โดยสร้าง method ที่มีอาร์กิวเมนต์แตกต่างกันขึ้นมามากกว่า 1method และกล่าวได้ว่า methodprint ถูก Overload แสดง method ที่ถูก Overload Public Student (int studentId); Public Student (int studentId,String name); Public Student (int studentId,String name,int age); Public Student (int studentId,String name,int age,double grade); คือการทำ Overloading ให้กับ constructor โดยกำหนดอาร์กิวเมนต์ที่ต่างกันให้กับ constructor Constructor ของ ClassStudent ถูก Overload แสดง constructorที่ถูก Overload
3. Polymorphism (คุณสมบัติการเปลี่ยนรูป หรือพ้องรูป) - Overridingคือการเขียนรายละเอียดใน method ใหม่โดยชื่อ method ยังเหมือนกับ class แม่ ที่ inherit มาใช้ในกรณีที่สร้างคลาสลูกหลาย ๆ คลาสแล้ว ต้องการให้มันทำงานต่างกัน Abstract Class vehicle {voidmove();} Class ship extends vehicle {voidmove() {//ใช้ใบพัดหมุนให้เรือวิ่งบนน้ำ }} Class car extends vehicle {voidmove() {//ใช้ล้อวิ่งบนบก }}
Web Application • (Web application) คือแอปพลิเคชั่นที่เข้าถึงเว็บเบราว์เซอร์ผ่านเครือข่ายคอมพิวเตอร์ หรืออินทราเน็ต
JAVA EE Modules J2ee Modules เป็นหน่วยของโปรแกรมที่สามารถบรรจุหลาย ๆ components ที่ทำงานหน้าที่คล้าย ๆ กัน หรือทำงานร่วมกัน เพื่อนำไปใช้งานคือ Deploy ได้โดยถือว่าเป็นหนึ่งหน่วย J2EE modules ทุก ๆ modules จะต้องถูกบีบอัดไว้เป็นไฟล์ jar หรือ war ขึ้นอยู่กับประเภทของ module นั้น และต้องมี deployment descriptor เป็นไฟล์ xml สำหรับบอกโครงสร้างของ module นั้นด้วย ตามข้อกำหนดของ j2EE มี modules3 ประเภทคือ
JAVA EE Application 1. Web Modules เป็น modules สำหรับบรรจุไฟล์ของ Servlets, JSP tag, Applets, java classes/jar, html/xml pages หรือไฟล์ resources อื่น ๆ ที่จะถูกอ้างถึงได้ เช่น ไฟล์รูปภาพและเสียง web modules ต้องถูกสร้างเป็น Web Archive file หรือเรียกไฟล์ war ซึ่งไฟล์ต้องมีนามสกุลเป็น .war ในทุก ๆ ไฟล์ war ต้องมีไฟล์ deployment descriptor ชื่อ web.xml 2. EJB Modules เป็น modules สำหรับบรรจุไฟล์ของ ejb และ resources ที่อาจถูกอ้างถึง ejb modules ต้องถูกสร้างเป็นไฟล์ jar ซึ่งไฟล์ต้องมีนามสกุลเป็น .jar ในทุก ๆ ไฟล์ jar ต้องมีไฟล์ deployment descriptor ชื่อ ejb-jar.xml อยู่ในไ ดเรกทอรี META-INF
JAVA EE Application 3.Java Modules เป็น modules สำหรับโปรแกรม java ที่เรียกใช้งาน ejb ดังนั้นจึงเรียกว่า j2eeapplication clients ซึ่งต้องสร้างเป็นไฟล์ jar และมีไฟล์ deployment descriptor ชื่อ application-client.xml Java EE Application (.ear file) application.xml Java module (.jar file) web module (.war file) ejb module (.jar file) application-client.xml web.xml ejb-jar.xml Servlet JSP EJB EJB Java class Java jar
Servlet Container Servlet คือรูปแบบของโปรแกรมภาษา Java ที่ถูกสร้างขึ้นเพื่อเป็น server side programs โดยข้อกำหนดและ servlet ต้องทำงานอยู่ในสภาวะแวดล้อมพิเศษชนิดหนึ่งที่เรียกว่า servlet container ซึ่งจะถูกสร้างขึ้นใน http servers เพื่อทำงานใน servlets
Struts Framework (MVC : Model, View, Controller) Struts Framework คือ การ Implement Model-View-Controller หรือ MVC design Pattern มีอยู่ 3 ส่วน 1. Model component 2. View component 3. Controller component ซึ่งในแต่ละ component สามารถพัฒนา Application โดยไม่ขึ้นกับ component ใด component หนึ่งเมื่อมีการเปลี่ยน component ใด component หนึ่งจะไม่มีผลกระทบต่อ component อื่น
Struts Framework (MVC : Model, View, Controller) ควบคุมการทำงานของระบบ Controller จัดการฐานข้อมูลของโปรแกรม View Model จัดการข้อมูลหน้าจอการใช้งานของระบบ Persistent (Hibernate, EJB, JDO) DBMS
EJB + Struts Architecture RMU News Broadcasting with Distributed Programming