Using OBJECT, EMBED and APPLET Tags in Java Plug-in
2008-09-09 17:01
495 查看
from : http://doc.javanb.com/javasdk-docs/guide/plugin/developer_guide/using_tags.html#codebase
This chapter includes the following topics:
Introduction
JavaTM Plug-in in IE on Windows
Java Plug-in in NavigatorTM on Windows or SolarisTM operating environments
Java Plug-in in IE and Navigator
Java Plug-in Anywhere
Summary
Applets are normally specified in an HTML file as follows:
And normally the
However, an APPLET is rendered by the browser and there is no easy way to interrupt the browser and force it to use Sun's Java Runtime Environment (JRE) to run the applet. To force the browser to do so, however, you may use a special Java Plug-in tagging structure—involving the
For various combinations of browsers and platforms, the following sections tell you exactly what you need to do
Original
New
Note that the OBJECT tag contains similar information to the APPLET tag. It is sufficient to launch Java Plug-in in IE. The classid in the OBJECT tag is the class identifier for Java Plug-in itself. When IE renders this class identifier in the OBJECT tag, it will try to load Java Plug-in into the browser. See classid attribute below for information about versioning.
There are several attributes in the OBJECT tag, such as width, height and align, that are mapped directly from the corresponding attributes in the APPLET tag. These contain formatting information that IE will use to position Java Plug-in. Since this information is mapped directly without changes, the position and appearance of the applets using Java Plug-in should be the same as those applets using the APPLET tag.
Not all attributes in the APPLET tag can be mapped to the OBJECT tag attributes. For example, the attributes code andcodebase in the APPLET tag are not mapped into the OBJECT tag attribute. Instead, the attribute code is mapped into thePARAM code because, according to the w3c.org HTML specification, the attribute code does not exist in the OBJECT tag. There are other attributes that do not correspond in the OBJECT tag attributes. These attributes, with one exception, should be mapped to PARAM tags.
The one exception is the codebase attribute. In the APPLET tag, the codebase attribute represents the location from which to download additional class and jar files. However, in the OBJECT tag, the codebase attribute represents the location from which to download Java Plug-in when it is not found on the local machine. Because the codebase attribute has two different meanings in the APPLET and OBJECT tags, the
In the above example, the code and codebase attributes in the APPLET tag are mapped into the OBJECT tag parameters. ThePARAM code identifies the applet, and its value should be the same as the code attribute in the APPLET tag. The PARAM codebase identifies the
A new addition for Java Plug-in 1.3 (and valid in 1.4.x) was the PARAM scriptable. This was added to improve performance of applets that do not require the use of JavaScript or VBScript. The value should be true if the applet requires scripting support and false if it does not. The value is false by default.
Please note that PARAM scriptable is not the same as the PARAM mayscript. mayscript provides support for communication from Java applets to JavaScript only, while scriptable allows communication from JavaScript to Java applets in Internet Explorer only.
The text "No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!!" in the APPLET tag is mapped inside the <OBJECT>and </OBJECT> tags. Originally, this text is displayed only if the browser does not have Java support. By mapping it inside the OBJECT tag, this text will be displayed if the browser does not support the OBJECT tag.
The APPLET-to-OBJECT tag attributes mapping is as follows:
Some
If the original
If the orginal applet were as follows:
Then the direct mapping would be:
To avoid this problem, any
These new
Then the mapping should be as shown below:
Original
New
Note that the EMBED tag contains similar information to the APPLET tag.It is sufficient to launch Java Plug-in in Navigator. The attribute type in the EMBED tag is used to identify the type of the Java executable, such as an applet or a bean. When Navigator renders this attribute in the EMBED tag, it will try to load Java Plug-in into the browser. Note that a version number is also appended. It is used for comparing the version installed on a user's computer and deciding if another version needs to be installed. The second table below describes this in greater detail.
In the above example, several attributes in the EMBED tag, such as width, height and align, map directly from the corresponding attributes in the APPLET tag. These contain formatting information that Navigator uses to position Java Plug-in. Since this information is mapped directly without changes, the position and appearance of the applets using Java Plug-in should be the same as those applets using the APPLET tag.
Unlike the OBJECT tag, all information must be stored inside the <EMBED> tag. No PARAM elements are used with the EMBEDtag. Therefore, all
In the above example, the code and codebase attributes in the APPLET tag are mapped into the EMBED tag attributes. Attribute code identifies the applet. Its value should be the same as the code attribute in the APPLET tag. Attributecodebase identifies the codebase of the applet. Java Plug-in knows where to download the applet or JavaBeans component because it can read this information from the attributes. Also notice that the model attribute within the EMBED tag is mapped from the nested
Like the codebase attribute in the OBJECT tag, attribute pluginspage in the EMBED tag is used by Navigator if Java Plug-in is not installed on the user's computer, or if the wrong version of Java Plug-in is installed. It should point to the Java Plug-in Download Page on the Java Software website; or, for intranet deployment, to a page on the intranet from which Java Plug-in may be downloaded.
The text "No Java 2 SDK, Standard Edition v 1.4.1 support for APPLET!!" in the APPLET tag is mapped inside the <NOEMBED>and </NOEMBED> tags. With the traditional APPLET tag this text is displayed only if the browser does not have internal support for Java. By mapping it inside the NOEMBED tag, this text will be displayed if the browser does not support theEMBED tag, or if Navigator fails to start the Java Plug-in.
The APPLET-to-EMBED tag attributes mapping is as follows:
Some attributes are special to the EMBED tag. These attributes are:
Similar to the case of the OBJECT tag, if the original APPLET tag has PARAM element type, codebase, code, object, orarchive, mapping it to the EMBED tag attribute will cause a problem. To avoid this, Java Plug-in also supports the same new set of attribute names for the
Similar to the case of the OBJECT element, if the original
These new attribute names should be used only when necessary. If both new and original attribute names exist in the sameEMBED tag, the value associated with the new attribute name is used by Java Plug-in to load the applet or bean.
Original
New
Because IE understands the <OBJECT> tag, it will try to launch Java Plug-in. Notice that the <COMMENT> tag is a special HTML tag understood only by IE. IE ignores text between the <COMMENT> and </COMMENT> tags. In effect, the above tags actually become:
Note that the
This is identical to the new OBJECT tag example described above.
Now because Navigator understands neither the OBJECT nor the COMMENT elements, Navigator 4 views the above structure as follows:
This is identical to the new EMBED element example described above.
Thus you can use the new element structure—
In most environments, Internet or intranet, an HTML page is likely to be viewed on different browsers on different platforms. Ideally, then, you should activate Java Plug-in only on the right browser-platform combination. Otherwise, an applet should use the browser's default JVM. You can achieve this using the following Java Plug-in format:
Original
Although this tag seems complicated compared to the old APPLET tag, it is not. Most of the Java Plug-in tag is the same regardless of the applet used. For the majority of cases, a webmaster can copy and paste the Java Plug-in tag.
The first block of the script extracts the browser and platform. You must determine the browser and platform on which the applet is running. You do this by using JavaScriptTM to extract first the browser name, then the platform. This is done once per HTML document.
The second block of the script replaces the APPLET tag. You must replace each APPLET tag with a similar block of code. The script replaces the APPLET tag with either an EMBED tag or OBJECT tag, depending on the browser. You use the OBJECTtag for IE and the EMBED tag for Netscape Navigator. Finally, the original APPLET tag is included as a comment at the end. It is always a good idea to keep the original APPLET tag in case you want to remove the Java Plug-in invocation.
The first JavaScript establishes the browser and the platform on which the browser is running. You must do this because, currently, Java Plug-in supports only Windows 95, Windows 98, Windows NT 4.0, and Solaris. Note that Windows NT 3.51 is the only Win32 platform that Java Plug-in does not support. Java Plug-in should be invoked only on the supported browser and platform. The script sets the variable _ie to true if the browser is Internet Explorer. It sets the variable _ns to true if the browser is Navigator. (Note that all variable names in the JavaScript start with "_". This is done to avoid conflicting with other JavaScript variables in the same page.)
To detect the right browser, the JavaScript evaluates three strings that are within the JavaScript's Navigator object:userAgent, appVersion, and appName. These strings contain information about the browser and the platform. By looking at some examples of the string userAgent, you can see how to evaluate userAgent and use it to determine the browser. The following are some examples of the userAgent string for different platforms as it appears in Internet Explorer.
Note that in each case the substring "MSIE" is always in the userAgent string in Internet Explorer. Also, the userAgentstring in IE under Windows 3.1 and Windows 3.51 would contain the substring "Windows 3.1" because IE in these platforms is 16-bit. While IE 4 is also available on Solaris and Mac, in these versions the userAgent string does not contain the substring "Win". In addition, IE on Windows CE does not support JavaScript. This can be summarized as follows:
The above table shows that only Windows 95 and Windows NT 4.0 with IE can pass the Java Plug-in browser and platform requirements. However, this logic makes no assumptions about future releases of IE or future releases of Windows with IE. As long as the userAgent string contains "MSIE" and "Win", the above code should work in future releases of IE on Win32.
The above logic summarizes into the following:
It is harder to detect Navigator on the right platform. Using just JavaScript, there is no way to determine if the browser is running on the Windows NT 3.51 or Windows NT 4.0 operating platform. (Refer to the above table and examine the userAgent string. Notice that the userAgent strings in Windows NT 3.51 and Windows NT 4.0 operating platforms are the same in Navigator.) It is important to make this distinction because Java Plug-in supports only the Windows NT 4.0 operating platform. To run Java Plug-in on the right platform, you must use LiveConnect in Navigator to determine the OS version number. This can be summarized as follows:
The above logic translates into the following code:
Referring to the previous table, note that only Windows 95, Windows NT 4.0, and Solaris operating environments with Navigator pass all the tests. Because LiveConnect is used to get the OS version number and only Navigator supports LiveConnect, a JavaScript that accesses LiveConnect will not be understood by IE. To prevent this from causing a problem, you block out this piece of the script using the COMMENT tag since COMMENT is an IE-specific comment tag. The text between the COMMENT tag is ignored by IE but not by Navigator. In addition, you must specify the script language as JavaScript1.1 to block this out if the browser is Navigator 2.
At this point, the above logic for IE and Navigator summarizes to a script that should look as follows:
Remember that this block of JavaScript should be put at the top of the <BODY> of the HTML file. It is put at the top so that other JavaScripts can reference the variables _ie and _ns. This JavaScript is the same in all HTML files, and it is only needed once for each HTML body.
The second block of HTML tags are actually the corresponding OBJECT and EMBED tags that are mapped from the data in theAPPLET tag. Note that JavaScript outputs the OBJECT tag when the browser is IE running on the Windows 95, Windows 98 or Windows NT 4.0 operating environments. If the browser is Navigator 3/4 on Windows 95, Windows 98, Windows NT 4.0, or Solaris operating environments, then JavaScript also outputs the EMBED tag, though with a slightly different syntax. Recall that the mechanism for detecting the browser and the platform has been described in the above section. (Tags <!-- and --> are used for comments in HTML.)
Original
Note that the original APPLET tag is also mapped in the new Java Plug-in tag. This is done because Java Plug-in is intended to be used only on supported platforms. Leaving the APPLET tag in the script ensures that browsers that do not support Java Plug-in, or browsers that do not support JavaScript can gracefully handle the applet using the default JVM. HotJava Browser, IE, and Navigator on non-Java Plug-in supported platforms, or browsers without JavaScript support, read the above tags as follows:
These browsers ignore the tags </XMP>, </OBJECT>, </EMBED>, and </NOEMBED> as well because there is no corresponding<XMP>, <OBJECT>, <EMBED>, and <NOEMBED> tags. Because Java Plug-in is targeted for features in the Java 2 SDK, Standard Edition v 1.4 or future releases, those browsers without full Java 2 SDK 1.4 support and who do not support Java Plug-in will display the message "No Java 2 SDK, Standard Edition v 1.4 support for APPLET".
Unlike the previous examples, the mapped PARAM names contain java_code, java_codebase, and java_type instead of code,codebase, and type. This is necessary because specifying code and codebase in the <PARAM> inside the <APPLET> and</APPLET> tag causes problems in some browsers.
IE on Windows reads the tags as follows:
Be careful when you use the <XMP> tag. Because IE renders the <OBJECT> tag, you must disable the <APPLET> tag. If not disabled, two applets will simultaneously show up in the browser—one applet will be running in Microsoft's JVM, and the other will be running in Sun's JVM using Java Plug-in. The <XMP> tag provides a solution. The <XMP> and </XMP> tags basically transform any HTML tag that occurs between them into a stream of static text. In the above example, the <XMP>and </XMP> tags cause the browser to treat the <APPLET> tag as static text instead of an HTML tag. Because the browser ignores any static text between the <OBJECT> tag and the <PARAM> tag, the above tags actually become:
This is identical to the OBJECT tag example outlined above. Note that the <OBJECT> tag ignores the <NOEMBED>,</NOEMBED>, and </EMBED> tags.
Navigator on Windows operating environments reads tags as follows:
Note that the <XMP> tag is used again in the <EMBED> tag to also disable the <APPLET> tag. The <EMBED> tag ignores the<PARAM> and </OBJECT> tags as well. In effect, the above tags actually become:
This is identical to the EMBED tag example outlined above.
You can use the combined OBJECT-EMBED-JavaScript tag to activate Java Plug-in in the right browser on the right platform. This combined tag is complicated and it should be used only if your HTML page is browsed by users in a heterogenous environment.
Note that the use of Java Plug-in is not limited to the tag styles described in this document. In fact, webmasters are encouraged to modify the tag style or mix the tag with JavaScript to fit their needs. As long as the described OBJECTtag is used in IE and EMBED tag is used in Navigator, there should be no problems running Java Plug-in. Currently, there are several conversion templates shipped with the Java Plug-in HTML converter. Webmasters may find one template better than others for their needs, and are encouraged to modify these templates themselves if necessary.
This chapter includes the following topics:
Introduction
JavaTM Plug-in in IE on Windows
Java Plug-in in NavigatorTM on Windows or SolarisTM operating environments
Java Plug-in in IE and Navigator
Java Plug-in Anywhere
Summary
Introduction
This document explains the tagging structure, involvingOBJECTand
EMBEDtags, required by Java Plug-in. It is intended for web authors who want to manually insert Java Plug-in tags in their HTML pages.
NotesThere is a Java Plug-in HTML Converter, available free-of-charge from Sun Microsystems, that can automatically generate the tagging structure. It is highly recommended that most web authors use it.This converter can convert pages into any of the formats described below. For a complete list of JRE releases that can be autodownloaded via .cabfiles, as mentioned below, see Autodownload Files (Windows Only). |
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"> <PARAM name="model" value="models/HyaluronicAcid.xyz"> No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!! </APPLET> |
APPLETtag specifies information about the applet, while the
<PARAM> tags, located between the
<APPLET>and
</APPLET>tags, store per-instance applet information.
However, an APPLET is rendered by the browser and there is no easy way to interrupt the browser and force it to use Sun's Java Runtime Environment (JRE) to run the applet. To force the browser to do so, however, you may use a special Java Plug-in tagging structure—involving the
OBJECTor
EMBEDtag or both, as described below—in place of the usual
APPLETtag in an your HTML pages. This will cause the browser to launch Java Plug-in, which will then run the applet using Sun's JRE.
For various combinations of browsers and platforms, the following sections tell you exactly what you need to do
Note on Version NumbersProduct version numbers are of the form:n1.n2.n3_n4n5 where n1.n2is the major version number, the n3is the minor version number (also referred to as the maintenance version number), and n4n5is the patch version number (also referred to as the update version number). The version numbers used in the examples below refer to the 1.4major release with minor release number of 2and, at times, hypothetical patch number of mn. Do not put hypothetical values into actual HTML for web pages. |
Java Plug-in in IE on Windows
To use Java Plug-in in IE on Windows, use the OBJECT tag. The following is an example of mapping an APPLET tag to a Java Plug-in tag:Original APPLET
tag:
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"> <PARAM name="model" value="models/HyaluronicAcid.xyz"> No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!! </APPLET> |
New OBJECT
tag:
<OBJECT classid="clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA" width="200" height="200" align="baseline" codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_2-windows-i586.cab#Version=1,4,2,0"> <PARAM name="code" value="XYZApp.class"> <PARAM name="codebase" value="html/"> <PARAM name="type" value="application/x-java-applet;jpi-version=1.4.2"> <PARAM name="model" value="models/HyaluronicAcid.xyz"> <PARAM name="scriptable" value="true"> No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!! </OBJECT> |
NoteFor static versioning, setcodebaseequal to: http://java.sun.com/products/plugin/autodl/<.cab file for the version you want> For example, for static versioning for the 1.4.2 release (which uses classidof clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA), set codebaseto: http://java.sun.com/products/plugin/autodl/jinstall-1_4_2-win.cab For a complete list of JRE releases that can be autodownloaded via .cabfiles, seeAutodownload Files (Windows Only). For dynamic versioning (which uses classidof clsid:8AD9C840-044E-11D1-B3E9-00805F499D93), set codebase equal to: http://java.sun.com/products/plugin/autodl/jinstall-<major version of family in underscore format>-windows-i586.cab#Version=<full version number for lowest version in family in comma-separated format> If no version of Java is installed, or a version less than the major version of the family is installed, then this will cause automatic redirection to the latest .cabfor the latest version in the family. For example, for the 1.4.2 release you would set codebaseas follows: http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0 If the user had version 1.3.1 installed, then the latest version in the 1.4 family would be downloaded and installed. But if any version in the 1.4 family were installed, then it would be used and no download would take place. Note that the autodownload .cabfiles can change as patch releases are released. See below for more about the interpretation of codebase. |
There are several attributes in the OBJECT tag, such as width, height and align, that are mapped directly from the corresponding attributes in the APPLET tag. These contain formatting information that IE will use to position Java Plug-in. Since this information is mapped directly without changes, the position and appearance of the applets using Java Plug-in should be the same as those applets using the APPLET tag.
Not all attributes in the APPLET tag can be mapped to the OBJECT tag attributes. For example, the attributes code andcodebase in the APPLET tag are not mapped into the OBJECT tag attribute. Instead, the attribute code is mapped into thePARAM code because, according to the w3c.org HTML specification, the attribute code does not exist in the OBJECT tag. There are other attributes that do not correspond in the OBJECT tag attributes. These attributes, with one exception, should be mapped to PARAM tags.
NoteDuplicate parameter names should never be used with theOBJECTtag in Java Plug-in. |
codebaseattribute in the
APPLETtag is mapped into aPARAM codebase in the OBJECT tag to resolve the conflict.
In the above example, the code and codebase attributes in the APPLET tag are mapped into the OBJECT tag parameters. ThePARAM code identifies the applet, and its value should be the same as the code attribute in the APPLET tag. The PARAM codebase identifies the
codebaseof the applet. Java Plug-in knows where to download the applet or JavaBeans component because it can read this information from the parameters. The parameter type is not mapped from the APPLET tag, but it is required in the OBJECT tag. It identifies the type of the Java executable, such as an applet or a JavaBean, so that Java Plug-in knows how to initialize the Java executable. These three PARAM tags (code, codebase, and type) in the above example are specified for Java Plug-in. They do not exist in the PARAM of the original APPLET tag. Note that the modelparameter within the OBJECT tag is identical to the model parameter inside the APPLET tag. Except for these first three parameters specified for Java Plug-in, the remainder of the parameters are the same as those inside the APPLET tag.
A new addition for Java Plug-in 1.3 (and valid in 1.4.x) was the PARAM scriptable. This was added to improve performance of applets that do not require the use of JavaScript or VBScript. The value should be true if the applet requires scripting support and false if it does not. The value is false by default.
Please note that PARAM scriptable is not the same as the PARAM mayscript. mayscript provides support for communication from Java applets to JavaScript only, while scriptable allows communication from JavaScript to Java applets in Internet Explorer only.
The text "No Java 2 SDK, Standard Edition v 1.4.2 support for APPLET!!" in the APPLET tag is mapped inside the <OBJECT>and </OBJECT> tags. Originally, this text is displayed only if the browser does not have Java support. By mapping it inside the OBJECT tag, this text will be displayed if the browser does not support the OBJECT tag.
The APPLET-to-OBJECT tag attributes mapping is as follows:
Attribute Name | APPLETTag Support | OBJECTTag Support | Attribute Mapping to OBJECT Tag |
---|---|---|---|
align | X | X | OBJECTattribute align |
alt | X | ||
archive | X | PARAMelement archive | |
code | X | X | PARAMelement code |
codebase | X | X | PARAMelement codebase |
height | X | X | OBJECTattribute height |
hspace | X | X | OBJECTattribute hspace |
name | X | X | OBJECTattribute name, PARAMelement name This case is an exception. The nameattribute in the orginal APPLETelement must be mapped both to the nameattribute in the OBJECTelement and to a nested PARAM. If the original applet were as follows: <APPLET name="clock" ...> </APPLET> Then the mapping would be: <OBJECT name="clock" ...> <PARAM name="name" value="clock"> </OBJECT> |
object | X | PARAMelement object | |
title | X | X | OBJECTattribute title |
vspace | X | X | OBJECTattribute vspace |
width | X | X | OBJECTattribute width |
mayscript | X | PARAMelement mayscript |
OBJECTattributes and nested
PARAMelements are special to the OBJECT tag. They are the following:
Attribute/PARAM | Meaning in OBJECT tag |
---|---|
Attribute classid | It should always have the same value for dynamic version support, i.e.clsid:8AD9C840-044E-11D1-B3E9-00805F499D93. For static version support it will have a unique value for the version, e.g., clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA. For more information about static vs. dynamic versioning, see Encountering OBJECT, EMBED, and APPLET Tags With Different Plug-in Versions and Browsers. Note: The example above uses static versioning. |
Attribute codebase | It should be a full URL pointing to a .cabfile somewhere on the network. It's purpose is to allow downloading and installation of Plug-in if either no version of Plug-in is installed on a user's computer or if no appropriate version of Plug-in is installed. The URL should, by default, point to a page on the Java Software website. Examples: In the above example, codebaseis: codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_2-windows-i586.cab#Version=1,4,2,0" Note that this was for static versioning and that the version number appended to the .cabfile indicates that 1.4.2version of Plug-in needs to be installed on the user's computer, otherwise an attempt will be made to download and install it. For dynamic versioning, codebasewould be as follows: codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0" The appended version number indicates that if the user has version 1.4.0or higher of the Plug-in installed on the computer, no download will occur. In other words, if the installed Plug-in is in the 1.4 family (major version 1.4), then it will run. If the installed version is lower, however, then an attempt will be made to download and install a newer version via the .cabfile. |
PARAMelement type | The valuefor parameter typeshould be as follows: "application/x-java-<object_type>;<version_type>=<implementation_version>" where object_typeis appletor bean; version_typeis jpi-versionfor static versioning or versionfor dynamic versioning; implementation_versionis Implementation-Version as defined inAppendix 6: Sun-Supported Specification-Versionand Implemenation-VersionFormats. For more information about static vs. dynamic versioning, see Encountering OBJECT, EMBED, and APPLET Tags With Different Plug-in Versions and Browsers. Examples: For an applet deployed for static versioning with Plug-in version 1.4.1patch release 02, valuefor typewould be as follows: "application/x-java-applet;jpi-version=1.4.1_02" For a bean deployed for dynamic versioning with Plug-in version 1.4.1patch release 03, valuefor typewould be: "application/x-java-bean;version=1.4" This is because for dynamic versioning only the major version number is checked; i.e., if the installed Plug-in is in the major version family, no download is required. |
PARAMelement codebase | Specifies the base URL of the applet. The URL can be relative or absolute but it should be in the domain of the current document. This PARAMelement is required only if the applet is not located in the same directory as the document. |
PARAMelement code | Specifies the name of the Java applet or JavaBeans component. It cannot be used with PARAMelement object nested inside the same OBJECT tag. |
PARAMelement scriptable | Specifies whether the applet is scriptable from the HTML page using JavaScript or VBScript. The value can be either trueor false. This attribute is new in Java Plug-in 1.4. |
PARAMelement object | Specifies the name of the serialized Java applet or JavaBeans component. It cannot be used with PARAMelement code nested inside the same OBJECT tag. This attribute is optional. |
PARAMelement archive | Specifies the name of the Java archive. This attribute is optional. |
PARAMelement mayscript | Specifies whether the applet is allowed to access netscape.javascript.JSObject. The value can be either trueor false. This attribute is optional. |
APPLETelement uses attributes type, codebase, code, object or archive, and also has nested
PARAMelement attributes type, codebase, code, object or archive, there will be a problem with the direct mapping of the
APPELETattributes to
PARAMattributes , as there will then be
PARAMelements with duplicate
nameattributes, e.g.,
If the orginal applet were as follows:
<APPLET codebase = "a/b/c ...> <PARAM name="codebase" value="my.jar"> </APPLET>
Then the direct mapping would be:
<OBJECT ...> <PARAM name="codebase" value="a/b/c"> <PARAM name="codebase" value="my.jar"> </OBJECT>
To avoid this problem, any
APPLETattribute that has a corresponding
PARAMelement in the orignal applet should be mapped as shown below.
Original attribute in theAPPLETelement | New PARAMattribute with OBJECTelement |
---|---|
code | java_code |
codebase | java_codebase |
archive | java_archive |
object | java_object |
type | java_type |
PARAMelement attribute names should be used only when necessary. If both the new and original
PARAMnames exist in the same OBJECT tag, the values associated with the new
PARAMelement names are used by Java Plug-in to load the applet or JavaBean.
Example
Suppose the orginal applet was as follows:<APPLET codebase = "a/b/c ...> <PARAM name="codebase" value="my.jar"> </APPLET>
Then the mapping should be as shown below:
<OBJECT ...> <PARAM name="java_codebase" value="a/b/c"> <PARAM name="codebase" value="my.jar"> </OBJECT>
Java Plug-in in Netscape Navigator on Windows or SolarisTM operating environments
To use Java Plug-in with Netscape Navigator 4.x on Windows or Solaris operating environments, you must use the EMBEDtag. The following example shows the mapping of a traditional APPLET tag to a Java Plug-in EMBED tag:Original APPLET
tag:
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"> <PARAM name="model" value="models/HyaluronicAcid.xyz"> No Java 2 SDK, Standard Edition v 1.4.1 support for APPLET!! </APPLET> |
New EMBED
tag:
<EMBED type="application/x-java-applet;jpi-version=1.4.1" width="200" height="200" align="baseline" code="XYZApp.class" codebase="html/" model="models/HyaluronicAcid.xyz" pluginspage="http://java.sun.com/j2se/1.4.1/download.html"> <NOEMBED> No Java 2 SDK, Standard Edition v 1.4.1 support for APPLET!! </NOEMBED> </EMBED> |
In the above example, several attributes in the EMBED tag, such as width, height and align, map directly from the corresponding attributes in the APPLET tag. These contain formatting information that Navigator uses to position Java Plug-in. Since this information is mapped directly without changes, the position and appearance of the applets using Java Plug-in should be the same as those applets using the APPLET tag.
Unlike the OBJECT tag, all information must be stored inside the <EMBED> tag. No PARAM elements are used with the EMBEDtag. Therefore, all
APPLETattributes and related
PARAMelements must be mapped as attribute
name="value"pairs inside the EMBED tag.
In the above example, the code and codebase attributes in the APPLET tag are mapped into the EMBED tag attributes. Attribute code identifies the applet. Its value should be the same as the code attribute in the APPLET tag. Attributecodebase identifies the codebase of the applet. Java Plug-in knows where to download the applet or JavaBeans component because it can read this information from the attributes. Also notice that the model attribute within the EMBED tag is mapped from the nested
PARAMelement model inside the APPLET tag.
Like the codebase attribute in the OBJECT tag, attribute pluginspage in the EMBED tag is used by Navigator if Java Plug-in is not installed on the user's computer, or if the wrong version of Java Plug-in is installed. It should point to the Java Plug-in Download Page on the Java Software website; or, for intranet deployment, to a page on the intranet from which Java Plug-in may be downloaded.
The text "No Java 2 SDK, Standard Edition v 1.4.1 support for APPLET!!" in the APPLET tag is mapped inside the <NOEMBED>and </NOEMBED> tags. With the traditional APPLET tag this text is displayed only if the browser does not have internal support for Java. By mapping it inside the NOEMBED tag, this text will be displayed if the browser does not support theEMBED tag, or if Navigator fails to start the Java Plug-in.
The APPLET-to-EMBED tag attributes mapping is as follows:
Attributes | APPLET tag support | EMBED tag support | Attribute map to EMBEDtag |
---|---|---|---|
align | X | X | Attribute align |
alt | X | X | Attribute alt |
archive | X | Attribute archive | |
code | X | Attribute code | |
codebase | X | Attribute codebase | |
height | X | X | Attribute height |
hspace | X | X | Attribute hspace |
name | X | X | Attribute name |
object | X | Attribute object | |
title | X | X | Attribute title |
vspace | X | X | Attribute vspace |
width | X | X | Attribute width |
mayscript | X | Attribute mayscript |
Attribute | Meaning in EMBED tag |
---|---|
Attribute type | typeshould be as follows: "application/x-java-<object_type>;<version_type>=<implementation_version>" where object_typeis appletor bean; version_typeis jpi-versionfor static versioning or versionfor dynamic versioning; implementation_versionis Implementation-Version as defined in Appendix 6: Sun-Supported Specification-Versionand Implemenation-VersionFormats. For more information about static vs. dynamic versioning, see Encountering OBJECT, EMBED, and APPLET Tags With Different Plug-in Versions and Browsers. Examples: For an applet deployed for static versioning with Plug-in version 1.4.1patch release 02, typewould be as follows: "application/x-java-applet;jpi-version=1.4.1_02" For a bean deployed for dynamic versioning with Plug-in version 1.4.1patch release 03, typewould be: "application/x-java-bean;version=1.4" This is because for dynamic versioning only the major version number is checked; i.e., if the installed Plug-in is in the major version family, no download is required). |
Attributecodebase | Specifies the base URL of the applet or JavaBeans component. The URL can be relative or absolute but it should be in the domain of the current document. This attribute is required only if the applet is not located in the same directory as the document. |
Attribute code | Specifies the name of the Java applet or JavaBeans component. It cannot be used with paramobject inside the same EMBED tag. |
Attributeobject | Specifies the name of the serialized Java applet or JavaBeans component. It cannot be used with the code attribute inside the same EMBED tag. This attribute is optional. |
Attributearchive | Specifies the name of the Java archive. This attribute is optional. |
Attributepluginspage | It should be a full URL pointing to an HTML page from which Java Plug-in can be downloaded. If there is no Plug-in installed on a user's computer, or if the version of the Plug-in is not the one specified via the the typeattribute, then this page will be presented to the user. |
Attributemayscript | Specifies whether the applet is allowed to access netscape.javascript.JSObject. The value can be either trueor false. This attribute is optional. |
EMBEDtag, as specified below:
Similar to the case of the OBJECT element, if the original
APPLETelement uses attributes type, codebase, code, objector archive, and also has nested
PARAMelement attributes type, codebase, code, object or archive, there will be a problem with the direct mapping of the
APPELETattributes to
EMBEDattributes. To avoid this problem, Java Plug-in also supports the same new set of attribute names for the
EMBEDtag, as specified below:
Original Attribute Names | New Attribute Names |
---|---|
code | java_code |
codebase | java_codebase |
archive | java_archive |
object | java_object |
type | java_type |
Java Plug-in in IE and Navigator
The newOBJECTelement scheme described above allows a web page with an applet to use Java Plug-in with Internet Explorer, and the new
EMBEDelement scheme allows a web page with an applet to use Java Plug-in with Netscape. However, changes are a web page will be browsed by both browsers. Hence, there needs to be a way to use the
OBJECTscheme when a page is browser by Internet Explorer, and the EMBED scheme when the page is browsed by Netscape. Such a scheme is described below.
Original APPLET
element:
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> No Java 2 SDK, Standard Editoin v 1.4 support for APPLET!! </APPLET> |
New OBJECT
element with nested EMBED
element:
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" align="baseline" codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn"> <PARAM NAME="code" VALUE="XYZApp.class"> <PARAM NAME="codebase" VALUE="html/"> <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> <COMMENT> <EMBED type="application/x-java-applet;jpi-version=1.4" width="200" height="200" align="baseline" code="XYZApp.class" codebase="html/" model="models/HyaluronicAcid.xyz" pluginspage="http://java.sun.com/products/plugin/1.4/plugin-install.html"> <NOEMBED> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </NOEMBED> </EMBED> </COMMENT> </OBJECT> |
Note that the
<COMMENT>element is unique to IE. IE ignores text between the
<COMMENT>and
</COMMENT>elements. For IE, then, the above structure of elements looks like this:
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" align="baseline" codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn"> <PARAM NAME="code" VALUE="XYZApp.class"> <PARAM NAME="codebase" VALUE="html/"> <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> </OBJECT> |
Now because Navigator understands neither the OBJECT nor the COMMENT elements, Navigator 4 views the above structure as follows:
<EMBED type="application/x-java-applet;jpi-version=1.4" width="200" height="200" align="baseline" code="XYZApp.class" codebase="html/" model="models/HyaluronicAcid.xyz" pluginspage="http://java.sun.com/products/plugin/1.4/plugin-install.html"> <NOEMBED> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </NOEMBED> </EMBED> |
Thus you can use the new element structure—
OBJECTelement with nested
EMBEDelement—to invoke Java Plug-in when either IE or Netcape encounters a page with an applet. The is the recommeded format to use.
Java Plug-in Anywhere
Warning!The material in this section is out of date. It will be updated in the future. The description of the script below corresponds to the Extended option with the HtmlConverter. It is recommended that you do not use this option at this time. The Standard option is the recommended option. |
Original APPLET
element:
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </APPLET> |
New-style format:
The following is an example of an equivalent Java Plug-in format. (The example includes comments.)<!-- The following code is specified at the beginning of the <BODY> tag. --> |
The first block of the script extracts the browser and platform. You must determine the browser and platform on which the applet is running. You do this by using JavaScriptTM to extract first the browser name, then the platform. This is done once per HTML document.
The second block of the script replaces the APPLET tag. You must replace each APPLET tag with a similar block of code. The script replaces the APPLET tag with either an EMBED tag or OBJECT tag, depending on the browser. You use the OBJECTtag for IE and the EMBED tag for Netscape Navigator. Finally, the original APPLET tag is included as a comment at the end. It is always a good idea to keep the original APPLET tag in case you want to remove the Java Plug-in invocation.
The first JavaScript establishes the browser and the platform on which the browser is running. You must do this because, currently, Java Plug-in supports only Windows 95, Windows 98, Windows NT 4.0, and Solaris. Note that Windows NT 3.51 is the only Win32 platform that Java Plug-in does not support. Java Plug-in should be invoked only on the supported browser and platform. The script sets the variable _ie to true if the browser is Internet Explorer. It sets the variable _ns to true if the browser is Navigator. (Note that all variable names in the JavaScript start with "_". This is done to avoid conflicting with other JavaScript variables in the same page.)
To detect the right browser, the JavaScript evaluates three strings that are within the JavaScript's Navigator object:userAgent, appVersion, and appName. These strings contain information about the browser and the platform. By looking at some examples of the string userAgent, you can see how to evaluate userAgent and use it to determine the browser. The following are some examples of the userAgent string for different platforms as it appears in Internet Explorer.
Platform and Browser | JavaScript's Navigator.userAgent string |
---|---|
Windows 2000 w/IE 5.0 | "Mozilla/4.0 (compatible; MSIE 5.01; Window NT5.0) |
Windows NT 4.0 w/IE 4.0 | "Mozilla/4.0 (compatible; MSIE 4.0; Windows NT)" |
Windows NT 4.0 w/IE 3.02 | "Mozilla/2.0 (compatible; MSIE 3.02; Windows NT)" |
Windows 95 w/IE 4.0 | "Mozilla/4.0 (compatible; MSIE 4.0; Windows 95)" |
Windows 95 w/IE 3.02 | "Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)" |
Windows NT 3.51 w/IE 4.0 | "Mozilla/4.0 (compatible; MSIE 4.0; Windows 3.1)" |
Windows 3.1 w/IE 4.0 | "Mozilla/4.0 (compatible; MSIE 4.0; Windows 3.1)" |
Windows NT 4.0 w/Navigator 4.04 | "Mozilla/4.04 [en] (WinNT; I)" |
Windows NT 4.0 w/Navigator 3.04 | "Mozilla/3.04 (WinNT; I)" |
Windows NT 3.51 w/Navigator 4.04 | "Mozilla/4.04 [en] (WinNT; I)" |
Windows NT 3.51 w/Navigator 3.04 | "Mozilla/3.04 (WinNT; I)" |
Windows 95 w/Navigator 4.03 | "Mozilla/4.03 [en] (Win95; I)" |
Windows 95 w/Navigator 3.03 | "Mozilla/3.03 (Win95; I)" |
Solaris 2.6 w/Navigator 4.02 | "Mozilla/4.02 [en] (X11; l; SunOS 5.6 sun4u) |
userAgent string / Browsers | Windows 3.1 w/ IE 3/4 | Windows NT 3.51 w/ IE 3/4 | Windows 95 w/ IE 3/4 | Windows NT 4.0 w/ IE 3/4 | Windows CE w/ IE | Mac w/ IE | UNIX w/ IE | Other browsers on any platform |
---|---|---|---|---|---|---|---|---|
contains "MSIE" | X | X | X | X | X | X | ||
contains "Win" | X | X | X | X | ||||
does not contain "Windows 3.1" | X | X | X | X | X |
The above logic summarizes into the following:
<SCRIPT LANGUAGE="JavaScript"><!-- var _info = navigator.userAgent; var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0); //--></SCRIPT> |
Testing logic / Browsers | Windows 3.1 w/ NS 3/4 | Windows NT 3.51 w/ NS 3/4 | Windows 95 w/ NS 3/4 | Windows NT 4.0 w/ NS 3/4 | NS on Solaris | IE on Solaris | NS on other platform | IE on other platform | Other browsers on any platform |
---|---|---|---|---|---|---|---|---|---|
appName contains "Netscape" | X | X | X | X | X | X | |||
userAgent contains "Win" | X | X | X | X | X | ||||
userAgent does not contain "Win16" | X | X | X | X | X | ||||
os.version does not contain 3.5 | X | X | X | Depends on OS | |||||
userAgent contains "Sun" | X | X |
<SCRIPT LANGUAGE="JavaScript"><!-- var _info = navigator.userAgent; var _ns = false; //--></SCRIPT> <COMMENT><SCRIPT LANGUAGE="JavaScript1.1"><!-- var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || _info.indexOf("Sun") > 0)); //--></SCRIPT></COMMENT> |
At this point, the above logic for IE and Navigator summarizes to a script that should look as follows:
<!-- The following code is specified at the beginning of the <BODY> tag. --> <SCRIPT LANGUAGE="JavaScript"><!-- var _info = navigator.userAgent; var _ns = false; var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0); //--></SCRIPT> <COMMENT><SCRIPT LANGUAGE="JavaScript1.1"><!-- var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || _info.indexOf("Sun") > 0)); //--></SCRIPT></COMMENT> |
The second block of HTML tags are actually the corresponding OBJECT and EMBED tags that are mapped from the data in theAPPLET tag. Note that JavaScript outputs the OBJECT tag when the browser is IE running on the Windows 95, Windows 98 or Windows NT 4.0 operating environments. If the browser is Navigator 3/4 on Windows 95, Windows 98, Windows NT 4.0, or Solaris operating environments, then JavaScript also outputs the EMBED tag, though with a slightly different syntax. Recall that the mechanism for detecting the browser and the platform has been described in the above section. (Tags <!-- and --> are used for comments in HTML.)
Original APPLET
tag:
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </APPLET> |
New style tag:
<SCRIPT LANGUAGE="JavaScript"><!-- if (_ie == true) document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" align="baseline" codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn"> <NOEMBED><XMP>'); else if (_ns == true) document.writeln('<EMBED type="application/x-java-applet;jpi-version=1.4" width="200" height="200" align="baseline" code="XYZApp.class" codebase="html/" model="models/HyaluronicAcid.xyz" pluginspage="http://java.sun.com/products/plugin/1.4/plugin-install.html"> <NOEMBED><XMP>'); //--></SCRIPT> <APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"></XMP> <PARAM NAME="java_code" VALUE="XYZApp.class"> <PARAM NAME="java_codebase" VALUE="html/"> <PARAM NAME="java_type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz">LUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </APPLET></NOEMBED></EMBED></OBJECT> |
<APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"></XMP> <PARAM NAME="java_code" VALUE="XYZApp.class"> <PARAM NAME="java_codebase" VALUE="html/"> <PARAM NAME="java_type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </APPLET></NOEMBED></EMBED></OBJECT> |
Unlike the previous examples, the mapped PARAM names contain java_code, java_codebase, and java_type instead of code,codebase, and type. This is necessary because specifying code and codebase in the <PARAM> inside the <APPLET> and</APPLET> tag causes problems in some browsers.
IE on Windows reads the tags as follows:
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" align="baseline" codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn"> <NOEMBED><XMP> <APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"></XMP> <PARAM NAME="java_code" VALUE="XYZApp.class"> <PARAM NAME="java_codebase" VALUE="html/"> <PARAM NAME="java_type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </APPLET></NOEMBED></EMBED> </OBJECT> |
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" align="baseline" codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn"> <PARAM NAME="java_code" VALUE="XYZApp.class"> <PARAM NAME="java_codebase" VALUE="html/"> <PARAM NAME="java_type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </OBJECT> |
Navigator on Windows operating environments reads tags as follows:
<EMBED type="application/x-java-applet;jpi-version=1.4" width="200" height="200" align="baseline" code="XYZApp.class" codebase="html/" model="models/HyaluronicAcid.xyz" pluginspage="http://java.sun.com/products/plugin/1.4/plugin-install.html"> <NOEMBED><XMP> <APPLET code="XYZApp.class" codebase="html/" align="baseline" width="200" height="200"></XMP> <PARAM NAME="java_code" VALUE="XYZApp.class"> <PARAM NAME="java_codebase" VALUE="html/"> <PARAM NAME="java_type" VALUE="application/x-java-applet;jpi-version=1.4"> <PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz"> <PARAM NAME="scriptable" VALUE="true"> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </APPLET></NOEMBED></EMBED></OBJECT> |
<EMBED type="application/x-java-applet;jpi-version=1.4" width="200" height="200" align="baseline" code="XYZApp.class" codebase="html/" model="models/HyaluronicAcid.xyz" pluginspage="http://java.sun.com/products/plugin/1.4/plugin-install.html"> <NOEMBED> No Java 2 SDK, Standard Edition v 1.4 support for APPLET!! </NOEMBED> </EMBED> |
You can use the combined OBJECT-EMBED-JavaScript tag to activate Java Plug-in in the right browser on the right platform. This combined tag is complicated and it should be used only if your HTML page is browsed by users in a heterogenous environment.
Summary
This document describes the OBJECT tag and EMBED tag styles used by Java Plug-in. It focuses on the conversion from anAPPLET tag to the OBJECT and EMBED tags. Currently, HTML 4.0 suggests that the OBJECT tag is the best way to insert Java applets and JavaBeans components into a HTML page. This document will be updated in the near future should there be a need to convert the OBJECT tag to the Java Plug-in tag style. Information disclosed in this document is intended to assist ISVs for writing HTML migration tools and to assist webmasters with Java Plug-in migration. The tag style described in this document is subject to change in the future.Note that the use of Java Plug-in is not limited to the tag styles described in this document. In fact, webmasters are encouraged to modify the tag style or mix the tag with JavaScript to fit their needs. As long as the described OBJECTtag is used in IE and EMBED tag is used in Navigator, there should be no problems running Java Plug-in. Currently, there are several conversion templates shipped with the Java Plug-in HTML converter. Webmasters may find one template better than others for their needs, and are encouraged to modify these templates themselves if necessary.
相关文章推荐
- HashCode and Equals method in Java object – A pragmatic concept
- Using JPA and JAXB Annotations in the Same Object
- Difference between Association, Composition and Aggregation in Java, UML and Object Oriented Program
- Setting the Reply-To Header in an Email using CDONTS.NewMail Object and CDO Message
- Java - Why wait, notify and notifyAll is defined in Object Class and not on Thread class
- XML document processing in Java using XPath and XSLT
- java.lang.Object in Java and System.Object class in C#
- [Ubuntu] Using javaplug-in in chrome firefox in Ubuntu
- 在HTML中嵌入Java Applet,Applet、Object和Embed的应用
- 在HTML中嵌入Java Applet,Applet、Object和Embed的应用
- Controlling Object Visibility and Editability in Unity Using HideFlags
- Using Collections.sort and Comparator in Java
- Unable to find a value for "字段名" in object of class java.lang.String using operator "."
- Instantiating a Silverlight Plug-in (Using CreateSilverlight.js and Silverlight.js)
- Using Collections.sort and Comparator in Java
- how to save a c++ object in java object and use it
- How to create Immutable Class and Object in Java - Tutorial Example
- BI Java 补丁错误处理 :Cannot login to the SAP J2EE Engine using user and password as provided in the Filesystem Secure Store. Enter va
- Using SiteMap and MasterPages to set META Tags in ASP.NET and C#
- Using the Java UNO runtime and API in your IDE