Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
104,12 KB
Nội dung
1 Lê ðình Thanh, Triển khai ứng dụng Java Lê ðình Thanh Bộ môn Mạng và Truyền thông Máy tính Khoa Công nghệ Thông tin Trường ðại học Công nghệ, ðHQGHN Bài giảng LẬP TRÌNH JAVA 2 Lê ðình Thanh, Triển khai ứng dụng Java Triển khai ứng dụng Bài 9 3 Lê ðình Thanh, Triển khai ứng dụng Java Nội dung • Tệp jar • Java Network Launch Protocol (JNLP) • Java Web Start • Applet 4 Lê ðình Thanh, Triển khai ứng dụng Java Tệp jar 5 Lê ðình Thanh, Triển khai ứng dụng Java ðóng gói chương trình với tệp jar • ðể triển khai ứng dụng ñược viết bằng java, người ta thường ñóng gói các tệp chương trình (.class) cùng các tệp tài nguyên cần cho chương trình dưới dạng tệp JAR (Java Archive) • Chương trình jar.exe trong jdk/bin cung cấp các chức năng tạo lập tệp jar • Tạo tệp jar: jar cf jar-file input-file(s) • Xem nội dung tệp jar: jar tf jar-file • Giải nén tệp jar: jar xf jar-file • Giải nén một vài tệp trong tệp jar: jar xf jar-file archived-file(s) 6 Lê ðình Thanh, Triển khai ứng dụng Java Chạy chương trình với tệp jar • Dòng lệnh (cần Main-class manifest) java -jar app.jar • Sử dụng Java Web Start • Chạy applet 7 Lê ðình Thanh, Triển khai ứng dụng Java jar manifest • Tệp manifest là một tệp văn bản mô tả về các tệp ñược ñóng gói trong tệp jar • Khi tạp tệp jar, tệp manifest ñược tạo tự ñộng và gói vào jar với nội dung Manifest-Version: 1.0 Created-By: 1.6.0 (Sun Microsystems Inc.) • Sửa nội dung tệp manifest jar cfm jar-file manifest-addition-file input-file(s) trong ñó manifest-addition-file là tệp văn bản chứa nội dung ñược ñưa thêm vào manifest 8 Lê ðình Thanh, Triển khai ứng dụng Java Thiết lập Main-class manifest • Sửa nội dung tệp manifest jar cfm jar-file manifest-addition-file input-file(s) trong ñó manifest-addition-file là tệp văn bản chứa nội dung Main-Class: MyPackage.MyClass 9 Lê ðình Thanh, Triển khai ứng dụng Java Thiết lập thông tin phiên bản • Sửa nội dung tệp manifest jar cfm jar-file manifest-addition-file input-file(s) trong ñó manifest-addition-file là tệp văn bản chứa nội dung về Name: Specification-Title: Specification-Version: Specification-Vendor: Implementation-Title: Implementation-Version: Implementation-Vendor: 10 Lê ðình Thanh, Triển khai ứng dụng Java Java Network Launch Protocol (JNLP) 11 Lê ðình Thanh, Triển khai ứng dụng Java JNLP • ðể triển khai ứng dụng qua mạng, java sử dụng JNLP • Các bước triển khai • Tạo tệp.jnlp (dạng XML) mô tả về tệp .jar chứa mã chương trình và các tài nguyên cần thiết • Tạo liên kết trên trên trang web trỏ tới tệp .jnlp, Java Web Start sẽ download và chạy chương trình ñược mô tả trong tệp .jnlp • Sử dụng applet với mô tả .jnlp 12 Lê ðình Thanh, Triển khai ứng dụng Java Nội dung tệp jnlp cho ứng dụng <?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+“> <information> <title>Some Title</title> <vendor>Some Team</vendor> </information> <resources> <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> <jar href="DynamicTreeDemo.jar" main="true" /> </resources> <application-desc name="Application Name" main- class=“PackageName.ClassName" width="300" height="300"> </application-desc> </jnlp> 13 Lê ðình Thanh, Triển khai ứng dụng Java Nội dung tệp jnlp cho applet <?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+"> <information> <title>Dynamic Tree Demo</title> <vendor>Dynamic Team</vendor> </information> <resources> <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" /> <jar href="DynamicTreeDemo.jar" main="true" /> </resources> <applet-desc name="Applet Name" main- class="components.DynamicTreeApplet" width="300" height="300"> </applet-desc> </ jnlp > 14 Lê ðình Thanh, Triển khai ứng dụng Java Java Web Start 15 Lê ðình Thanh, Triển khai ứng dụng Java Java Web Start • Java Web Start cung cấp khả năng triển khai ứng dụng java một cách ñơn giản, hiệu quả bằng cách download và chạy • Client: Cần cài J2SE • Server: Cần cho application/x-java-jnlp-file JNLP trong MIME type. 16 Lê ðình Thanh, Triển khai ứng dụng Java Chạy ứng dụng Java Web Start • Sử dụng tiện ích triển khai ứng dụng <script src="http://www.java.com/js/deployJava.js"></script> <script> var dir = location.href.substring(0, location.href.lastIndexOf('/')+1); var url = dir + "webstart-desc.jnlp"; deployJava.launchButtonPNG = “button.gif”; deployJava.createWebStartLaunchButton(url, '1.6.0'); </script> • Hoặc tạo link ñến tệp jnlp <a href="/some/path/Notepad.jnlp">Launch Notepad Application</a> Có thể download deployJava.js ñể triển khai tại máy chủ của mình 17 Lê ðình Thanh, Triển khai ứng dụng Java Applet 18 Lê ðình Thanh, Triển khai ứng dụng Java Applet • Applet là ứng dụng java có thể nhúng vào trang web và hiển thị trên trình duyệt • Một applet chỉ chứa một lớp ñược kế thừa từ java.applet.Applet hoặc javax.swing.JApplet với các phương thức init() – ñược gọi khi applet ñược load lên trang web start() – bắt ñầu chạy stop() – không chạy nữa destroy() – ñược gọi trước khi applet ñược unload 19 Lê ðình Thanh, Triển khai ứng dụng Java Tạo applet import javax.swing.JApplet; import javax.swing.SwingUtilities; import javax.swing.JLabel; public class HelloWorld extends JApplet { public void init() { try { SwingUtilities.invokeAndWait( new Runnable() { public void run() { JLabel lbl = new JLabel("Hello World"); add(lbl); } } ); } catch (Exception e) { System.err.println("createGUI didn't complete successfully"); } } } 20 Lê ðình Thanh, Triển khai ứng dụng Java Nhúng applet vào trang web • Applets có thể ñược chúng vào trang web và tương tác với các ñối tượng tài liệu của trang web thông qua javascript • ðể applet chạy ñược, trình duyệt phải ñược cài Java Plug- in • Browser gửi ñoạn mã nhúng applet cho Java Plug-in. Java Plug-in chịu trách nhiệm gọi và thực thi applet [...]... src="http://www .java. com/js/deployJava.js"> var attributes = { id:'mathApplet', code:'jstojava.MathApplet', width:1, height:1} ; var parameters = {jnlp_href: 'math-applet.jnlp'} ; deployJava.runApplet(attributes, parameters, '1.6'); mathApplet.userName = "John Doe"; mathApplet.getGreeting(); 26 Lê ðình Thanh, Tri n khai ng d ng Java Duy... d ng ti n ích nhúng applet var attributes = { code:'AppletName', width:300, height:300} ; var parameters = {jnlp_href: ‘applet-desc.jnlp'} ; deployJava.runApplet(attributes, parameters, '1.6'); 21 Lê ðình Thanh, Tri n khai ng d ng Java Url c a applet • • • getCodeBase() - URL c a applet getDocumentBase() – url c a trang... window = JSObject.getWindow(this); Truy c p bi n javascript userName = window.getMember("userName"); C p nh t bi n javascript window.setMember("userName", userName); G i hàm javascript Number age = (Number) window.eval("getAge()"); window.call("writeSummary", new Object[] {summary}) ; 25 Lê ðình Thanh, Tri n khai ng d ng Java Truy c p thành viên c a applet b ng javascript • • • Quy t c: ñ nh danh c a applet... ðình Thanh, Tri n khai ng d ng Java Hi n th tr ng thái và m trang web • • Hi n th tr ng thái showStatus(“N i dung hi n th trên thanh tr ng thái”); M trang web AppletContext appletContext = getAppletContext() ; appletContext.showDocument (java. net.URL url); appletContext.showDocument (java. net.URL url, String targetWindow); 24 Lê ðình Thanh, Tri n khai ng d ng Java Truy c p mã javascript t applet • • • •... Class.forName("com.sun .java. browser.plugin2.DOM"); Method m = c.getMethod("getDocument", new Class[] { java. applet.Applet.class }); HTMLDocument doc = (HTMLDocument) m.invoke(null, new Object[] { this }); HTMLBodyElement body = (HTMLBodyElement) doc.getBody(); dump(body, INDENT); } catch (Exception e) { System.out.println("New Java Plug-In 27 not available");} } Lê ðình Thanh, Tri n khai ng d ng Java Duy t DOM... Lê ðình Thanh, Tri n khai ng d ng Java S d ng tham s v i applet • • Truy n tham s • Tri n khai b ng th applet • Tri n khai b ng jnlp < PARAM NAME = parameter VALUE = value > và var parameters = {jnlp_href: 'applettakesparams.jnlp', paramOutsideJNLPFile: 'fooOutsideJNLP'} ; deployJava.runApplet(attributes, parameters,... children.getLength(); for (int i = 0; i < len; i++) { dump(children.item(i), prefix + INDENT); } } } } 28 Lê ðình Thanh, Tri n khai ng d ng Java Giao ti p gi a các applets • Các applets có th giao ti p v i nhau thông qua javascript • Applet1 javascript Applet2 29 Lê ðình Thanh, Tri n khai ng d ng Java . dụng Java Thiết lập Main-class manifest • Sửa nội dung tệp manifest jar cfm jar-file manifest-addition-file input-file(s) trong ñó manifest-addition-file là tệp văn bản chứa nội dung Main-Class:. Specification-Title: Specification-Version: Specification-Vendor: Implementation-Title: Implementation-Version: Implementation-Vendor: 10 Lê ðình Thanh, Triển khai ứng dụng Java Java Network. Thanh, Triển khai ứng dụng Java Thiết lập thông tin phiên bản • Sửa nội dung tệp manifest jar cfm jar-file manifest-addition-file input-file(s) trong ñó manifest-addition-file là tệp văn bản chứa