Jsp +applet 应用总结

来源:互联网 发布:淘宝旺旺卖家官方下载 编辑:程序博客网 时间:2024/05/20 18:03

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通用性的一条有效途径。


原创粉丝点击