您的位置:首页 > 移动开发

Jsp +applet 应用总结

2011-09-01 10:34 274 查看
1. Jsp+jscall applet:

<appletcode="LoginApplet.class" name="LoginApplet" width=100% height=20codebase="/" archive="BeCTSApplet.jar">

<param name="loginType" value="cryptography">

<param name ="subjectRoot"value="<%=request.getRequestURL()%>">

<param name ="secureServ" value ="<%=cfg.getPublicKeyFile()%>">

<param name ="UniqueId" value ="<%=https.getId()%>">

<param name ="subtype" value = "create">

</applet>

Note :

1) applet传参数 :<param name ="loginType"value="cryptography">

2) <html:submitstyleClass="button" property="submit"
onclick="javascript:return compute();">


function compute (){

var str=window.document.forms[0].password.value;

var md5 = document. LoginApplet.md5(str);

window.document.getElementById('encryptedPassword').value ="Prefix_XXX" + md5;

alert("lala md5 : " + md5 ) ;

}

2. jsp+js(multiple) call applet

1)<scriptlanguage="javascript">

function Smartcard(){}

Smartcard.ALIGN= 'align="center" ';

Smartcard.WIDTH= 'width="10" ';

Smartcard.HEIGHT= 'height="10" ';

Smartcard.CONTEXT_PATH= '';

Smartcard.PARAM_NAME= new Array();

Smartcard.PARAM_VALUE= new Array();

Smartcard.PARAM_NAME[0]= 'hidePIN';

Smartcard.PARAM_VALUE[0]= 'true';

</script>

<scriptlanguage="javascript"src="common/javascript/activate.js"></script>

2) activate.js :

document.write('

<applet name="smartcardApplet"code="com.bcsis.egiro.applet.SmartcardUI.class"name="SmartCardUtil" ' +

Smartcard.ALIGN+ Smartcard.WIDTH+ Smartcard.HEIGHT+

'codebase="' + Smartcard.CONTEXT_PATH +'/common/applet/" archive="egirop-smartcard-applet.jar">');

for (var ii = 0, len = Smartcard.PARAM_NAME.length;ii < len; ii++) {

document.write('<paramname="' + Smartcard.PARAM_NAME[ii]+ '" value="' + Smartcard.PARAM_VALUE[ii] + '"/>');

}

document.write('</applet>');

3)in the applet (java file), get the value of parameter:

String pin = this.getParameter("hidePIN");

Note:

a) how param array is defined

b) how the <applet> passthe parameters

c) comparing 2.2) to 1

3. applet安全机制

当运行在沙箱中时:

(1)Applet不能读写本地计算机的文件系统,也不能运行任何本地可执行程序。

(2)Applet不能同除它们的下载处的服务器(该服务器称作原始主机)以外的其他任何主机通信。这条规则使得Applet不能探查企业内部网上的资源。 Applet 只可以访问webroot 中的内容

(3)Applet只能获取本地计算机中的以下信息:当前使用的Java版本;操作系统的名字和版本;用来分离文件、路径以及行的字符。除此以外,Applet不能获取任何其它关于本地计算机的信息。

(4)Applet弹出的所有窗口都会带有一警告消息,告诉用户这是一个Applet。 因为Java解释器会检查所有的危险指令和程序区域,所以一个带有敌意的Applet不能覆盖系统内存、改变操作系统赋予的特权或者使计算机崩溃。在某些情况下,这些限制显得过于严格。为了充许在不同情况下使用不同的安全级别,Java引入了签名Applet。


一个签名Applet带有一个能够表明签名者特征的证书。加密技术保证了这样的证书不可能被伪造。如果信任签名者,那么可以选择给该Applet额外的特权。被完全信任的Applet可以获得同本地应用程序一样的访问特权。


4. appletsign :

http://60.13.141.177/cgi-bin/Ginfo.dll?DispInfo&w=westpower&nid=973809

http://java.sun.com/security/usingJavakey.html(java1.1)
http://java.sun.com/security/signExample12/
5. Applet运行状态 (from http://baike.baidu.com/view/150834.htm)
  Applet类中的四种基本方法用来控制其运行状态:init()、start()、stop()、destroy()

  init()方法

  这个方法主要是为Applet的正常运行做一些初始化工作。当一个Applet被系统调用时,系统首先调用的就是该方法。通常可以在该方法中完成从网页向Applet传递参数,添加用户界面的基本组件等操作。

  start()方法

  系统在调用完init()方法之后,将自动调用start()方法。而且,每当用户离开包含该Applet的主页后又再返回时,系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行,而不像init()方法。因此, 可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程,如继续一个动画、声音等。

  stop()方法

  这个方法在用户离开Applet所在页面时执行,因此,它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候,停止一些耗用系统资源的工作以免影响系统的运行速度,且并不需要人为地去调用该方法。如果Applet中不包含动画、声音等程序,通常也不必实现该方法。

  destroy()方法

  与对象的finalize()方法不同,Java在浏览器关闭的时候才调用该方法。 Applet是嵌在HTML文件中的,所以destroty()方法不关心何时Applet被关闭,它在浏览器关闭的时候自动执行。在destroy() 方法中一般可以要求收回占用的非内存独立资源。(如果在Applet仍在运行时浏览器被关闭,系统将先执行stop()方法,再执行destroy()方 法。

6. Applet应用的有关参数说明 (from http://baike.baidu.com/view/150834.htm)

  利用Applet来接收从HTML中传递过来的参数,下面对这些参数作一简单说明:
  * CODE标志

  CODE标志指定Applet的类名;WIDTH和HEIGHT标志指定Applet窗口的像素尺寸。在APPLET语句里还可使用其他一些标志。

  * CODEBASE 标志

  CODEBASE标志指定Applet的URL地址。Applet的通用资源定位地址URL, 它可以是绝对地址 。也可以是相对于当前HTML所在目录的相对地址,如/AppletPath/Name。如果HTML文件不指定CODEBASE 标志,浏览器将使用和HTML文件相同的URL。

  * ALT 标志

  虽然Java在WWW上很受欢迎,但并非所有浏览器都对其提供支持。如果某浏览器无法运行Java Applet,那么它在遇到APPLET语句时将显示ALT标志指定的文本信息。

  * ALIGN 标志

  ALIGN标志可用来控制把Applet窗口显示在HTML文档窗口的什么位置。与HTML<LMG>语句一样,ALIGN标志指定的值可以是TOP、MIDDLE或BOTTOM。

  * VSPACE与HSPACE 标志

  VSPACE和HSPACE标志指定浏览器显示在Applet窗口周围的水平和竖直空白条的尺寸,单位为像素。如下例使用该标志在Applet窗口之上和之下各留出50像素的空白,在其左和其右各留出25像素的空白:

  * NAME 标志

  NAME标志把指定的名字赋予Applet的当前实例。当浏览器同时运行两个或多个Applet时,各Applet可通过名字相互引用或交换信息。如果忽略NAME标志,Applet的名字将对应于其类名。

  * PARAM 标志

  通用性是程序设计所追求的目标之一。使用户或者程序员能很方便地使用同一个Applet完成不同的任务是通用性的具体表现。从HTML文件获取信息是提高Applet通用性的一条有效途径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: