1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng lập trình java - Bài 10 (end) ppt

15 437 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 Tệp jar... Lê đình Thanh, Triển khai ứng dụng Java đóng gói ch

Trang 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

Triển khai ứng dụng

Bài 9

Trang 2

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

Tệp jar

Trang 3

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)

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

Trang 4

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

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

Trang 5

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:

Java Network

Launch Protocol

(JNLP)

Trang 6

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ạngXML) 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

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>

Trang 7

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>

Java Web Start

Trang 8

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 choapplication/x-java-jnlp-file JNLP

trong MIME type

16

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

Trang 9

Lê đình Thanh, Triển khai ứng dụng Java

Applet

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ặcjavax.swing.JAppletvới các phương thức

Trang 10

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

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

Trang 11

Lê đình Thanh, Triển khai ứng dụng Java

Nhúng applet vào trang web

Ớ Sử dụng thẻ <applet>

<applet code=AppletClassName.class

archive="JarFileName.jar" width=width height=height>

</applet>

hoặc

<applet code = 'AppletName' jnlp_href =

Ổapplet-desc.jnlp', width = 300, height = 300 />

Ớ Sử dụng tiện ắch nhúng applet

<script src="http://www.java.com/js/deployJava.js"></script>

<script>

var attributes = { code:'AppletName', width:300, height:300} ;

var parameters = {jnlp_href: Ổapplet-desc.jnlp'} ; deployJava.runApplet(attributes, parameters, '1.6');

</script>

Url của applet

Ớ getCodeBase() - URL của applet

Ớ getDocumentBase() Ờ url của trang web chứa applet

Ớ Vắ dụ:

Image image = getImage(getCodeBase(), "imgDir/a.gif");

Trang 12

Lê đình Thanh, Triển khai ứng dụng Java

Sử dụng tham số với applet

Ớ Triển khai bằng thẻ applet

<applet>

<PARAM NAME = parameter VALUE = value >

</applet>

Ớ Triển khai bằng jnlp

<applet-desc>

< PARAM NAME = parameter VALUE = value >

</applet-desc>

var parameters = {jnlp_href: 'applettakesparams.jnlp',

paramOutsideJNLPFile: 'fooOutsideJNLP'} ;

deployJava.runApplet(attributes, parameters, 1.4);

Ớ Nhận và xử lý tham số trong applet

paramValue = getParameter("paramName");

24

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);

Trang 13

Lê đình Thanh, Triển khai ứng dụng Java

Truy cập mã javascript từ applet

Ớ Lấy ựối tượng window

JSObject 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}) ;

Truy cập thành viên của applet bằng javascript

Ớ Quy tắc: ựịnh danh của applet ựược dùng như một tham chiếu ựến ựối tượng applet

Ớ <script

src="http://www.java.com/js/deployJava.js"></script>

<script> var attributes = { id:'mathApplet',

Trang 14

Lê đình Thanh, Triển khai ứng dụng Java

Duyệt DOM

public void start() {

try {

Class c =

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 not available");} }

28

Duyệt DOM

private void dump(Node root, String prefix) {

if (root instanceof Element) {

System.out.println(prefix + ((Element) root).getTagName() + " / " + root.getClass().getName()); } else if (root instanceof CharacterData) {

String data = ((CharacterData) root).getData().trim();

if (!data.equals("")) { System.out.println(prefix + "CharacterData: " + data); } }

else { System.out.println(prefix + root.getClass().getName()); }

NamedNodeMap attrs = root.getAttributes();

if (attrs != null) {

int len = attrs.getLength();

for (int i = 0; i < len; i++) {

Node attr = attrs.item(i);

System.out.print(prefix + HALF_INDENT + "attribute " + i + ": " + attr.getNodeName());

if (attr instanceof Attr) { System.out.print(" = " + ((Attr) attr).getValue()); } System.out.println(); } }

if (root.hasChildNodes()) {

NodeList children = root.getChildNodes();

if (children != null) {

int len = children.getLength();

for (int i = 0; i < len; i++) { dump(children.item(i), prefix + INDENT); } } }

}

Trang 15

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

Ngày đăng: 11/08/2014, 09:25

TỪ KHÓA LIÊN QUAN

w