2011-01-31 68 views
3

我想獲得在客戶端加載applet之後動態分配的變量的值。 Applet嵌入在JSP頁面中。在那個JSP頁面中,我想獲得這個值。Applet和JSP通信

public class CheckJavaVersion extends Applet 
{ 
private static Label versionCheck; 
public static String javaVersion; 
public void init() 
{ 
try 
{ 
Color colFrameBackground = new Color(198, 0, 0); 
this.setBackground(colFrameBackground); 
versionCheck = new Label("Java Version:"+System.getProperty("java.version")); 
this.add(versionCheck); 
javaVersion = versionCheck.getText(); 
} 
} 

JSP頁面:下面的源代碼給

<html> 
<head><title>Display Java Version</title> 
</head> 
<body> 
<jsp:plugin code="com.applets.CheckJavaVersion" codebase="/AppletURLComm" type="applet"> 
</jsp:plugin> 
</body> 
</html> 

現在我要訪問在JSP頁面中javaversion變量。如果我訪問該變量,它會給出null值。如何獲得具有價值的變量?

回答

1

這與JSP無關。您想要獲取駐留在客戶端(小程序)上的變量。所以你必須用javascript來做到這一點。 See herehere

+0

非常有用的鏈接:) – 2015-02-04 13:46:48

1
*package thumb; 
/** 
* @author Ravi Thapa 
* @since May 20, 2014 
* @version 1.0 This class will get thumb impression image and verification 
* String 
*/ 
public class ThumbVerification extends JApplet 
     implements ActionListener { 
     base64Image = null; 
     base64FMR = null; 
/* 
here is code for thumb image capture code 
*/ 

    public static byte[] decodeImage(String imageDataString) { 
     return Base64.decodeBase64(imageDataString.getBytes()); 
    } 
    public String getBase64FMR() { 
     return base64FMR; 
    } 
    public String getBase64Image() { 
     return base64Image; 
    } 
} 

我編譯的代碼,並轉換成jar文件,並簽署

D:\Thumb\build\classes\thumb>keytool -genkey -keystore myKeystore -alias myself 
Enter keystore password: 
Re-enter new password: 
What is your first and last name? 
    [Unknown]: Ravi 
What is the name of your organizational unit? 
    [Unknown]: abc 
What is the name of your organization? 
    [Unknown]: abc 
What is the name of your City or Locality? 
    [Unknown]: Lucknow 
What is the name of your State or Province? 
    [Unknown]: UP 
What is the two-letter country code for this unit? 
    [Unknown]: 91 
Is CN=Ravi Thapa, OU=NIC, O=NIC, L=Lucknow, ST=UP, C=91 correct? 
    [no]: yes 
Enter key password for <myself> 
     (RETURN if same as keystore password): 
Re-enter new password: 
D:\SECUGEN_DRIVERS\Thumb\build\classes\thumb>keytool -selfcert -alias myself -kystore myKeystore 
Illegal option: -kystore 
keytool -selfcert [OPTION]... 
Generates a self-signed certificate 
Options: 
-alias <alias>     alias name of the entry to process 
-sigalg <sigalg>    signature algorithm name 
-dname <dname>     distinguished name 
-startdate <startdate>   certificate validity start date/time 
-validity <valDays>    validity number of days 
-keypass <arg>     key password 
-storetype <storetype>   keystore type 
-keystore <keystore>   keystore name 
-storepass <arg>    keystore password 
-providername <providername> provider name 
-providerclass <providerclass> provider class name 
-providerarg <arg>    provider argument 
-providerpath <pathlist>  provider classpath 
-v        verbose output 
Use "keytool -help" for all available commands 
D:\SECUGEN_DRIVERS\Thumb\build\classes\thumb>keytool -list -keystore myKeystore 
Enter keystore password: 
Keystore type: JKS 
Keystore provider: SUN 
Your keystore contains 1 entry 
myself, Apr 15, 2014, PrivateKeyEntry, 
Certificate fingerprint (SHA1): 24:9C:50:D7:49:47:27:EB:87:9A:BA:89:F4:19:72:6A:02:AF:1B:3F 
D:\SECUGEN_DRIVERS\Thumb\build\classes\thumb>jarsigner -keystore myKeystore Thumb.jar myself 
Enter Passphrase for keystore: 
jar signed. 
Warning: 
The signer certificate will expire within six months. 
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2014-07-14) or after any future revocation date. 

把jar文件到JSP文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ page import="java.io.File"%> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> 
     <meta http-equiv="cache-control" content="no-cache"/> 
     <script type="text/javascript"> 
     function getVarData(){ 
        var thumbImp = document.Applet1.getBase64FMR(); 
        var thumbImpImage = document.Applet1.getBase64Image(); 
        document.getElementById('varThumb').value = thumbImp; 
        document.getElementById('varThumbImage').value = thumbImpImage; 
     } 
     </script> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <td> 
        <applet code="thumb.ThumbVerification" width="120" height="170" id="Applet1" name="AppletABC" 
          archive="<%=request.getContextPath()%>/Thumb.jar"></applet> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 
SEND THE DATA USING HIDDEN FIELD 
<input type="submit" value=" SAVE " onclick="getVarData();"/> 

       <input type="hidden" id="varThumb" name="varThumb"/> 
       <input type="hidden" id="varThumbImage" name="varThumbImage"/>* 
+0

我只是做和你一樣,很好的回答:) – 2015-02-04 13:47:13