Topic: 如何利用xml,javascript绕开applet的安全问题

  Print this page

1.如何利用xml,javascript绕开applet的安全问题 Copy to clipboard
Posted by: javabin
Posted on: 2004-09-29 12:51

相对于html而言,applet具有较高的用户交互性,如果在局域网这种高速网络环境下要实现比较丰富的用户界面的话,applet也是一种不错的选择。可是,由于applet的种种安全方面的限制,比如在缺省安全策略下,它不可以使用jdbc,不可以进行文件io操作等等。其实,如果你是在jsp或者asp中使用applet的话,问题就好办多了。我们可以利用asp或者jsp访问数据库,把获得的数据组装成xml字符串,传给applet,这样就解决了applet的数据来源问题。读者也许会问,如何把用户对applet的操作转化为对数据库等资源的操作呢,我们可以采用一种更简单的办法,就是利用applet中调用javascript函数,利用发送http请求的方式,把用户对applet的操作结果作用于数据库等资源。下面我给出一些示意性的代码。

1.jsp页面中传送xml给applet示意性代码
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="com.jagie.business.organization.*"%>
<%@ page import="com.jagie.utils.StringUtil"%>
<%
//jsp调用javabean,查询数据库,组装成xml字符串
String xmlString=NodeOperator.getXmlString();
//把xml字串中的双引号换成单引号,这一步非常重要。否则在
//applet接受参数的时候,导致字符串断裂。你浏览器中察看一下
//jsp生成的html代码就明白了。
xmlString=StringUtil.replaceStr(xmlString,"\"","'");
%>
<html>
<body bgcolor="#ffffc0">
<jsp:plugin type="applet"
code="com.jagie.business.organization.NodeApplet.class" codebase="."
archive = "Oil.jar" >
<jsp:params>
<jsp:param name="xmlString" value="<%= xmlString %>" />
</jsp:params>
<jsp:fallback>
<p>Unable to load applet</p>
</jsp:fallback>
</jsp:plugin>
</body>
</html>

2.applet中接受xml数据的示意性代码
public void init()
{
String xmlString=getParameter("xmlString");
// System.err.println("从参数中获得的xml字串:"+xmlString);
try
{
//利用xml生成可视化组件
jbInit(xmlString);
}
catch(Exception e)
{
e.printStackTrace();
}
}

3.applet调用javascript函数的例子

public void valueChanged(TreeSelectionEvent event){
TreePath path = event.getPath();
DefaultMutableTreeNode clicknode =

(DefaultMutableTreeNode)path.getLastPathComponent();
Object uo = clicknode.getUserObject();
Node node = (Node)uo;
//这里是个示意性代码,你可以调用自己写的javascript函数
//在js函数中进行url重定向,并且把用户输入的数据作为编码到url中
//达到修改db等资源的目的.JSObject是netscape包中的类。可以在jdk
//的jre目录下找到
JSObject.getWindow (this).eval("javascript:alert('"+node.getNodeCode()+"')") ;
}


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923