如何使Applet和Servlet双向通信-后续问题?

问题7.1 Applet可不可以与StrutsAction作双向通信,因为现在Web应用多采用MVC

解决:可以的,action中的execute方法中有请求的参数,使用与Servlet相同。

?

问题7.2:在解决了双向通信问题后,在实际应用中,比如是我遇到的情况:Web应用使用的是第三方的包,它自己实现了*.do的请求转发,即继承实现了strutsActionServlet的,它这个ActionServlet会对每个请求验证用户是否已经登陆,所以在Applet中使用URL直接指向Action时,此连接是的请求头中没有相应的用户cookie,所以在实现转发时会报错:类以下:

?

?

这时,要在URLConnection中,调用setRequestProperty方法来添加相应的请求头的信息,那如何获得用户的cookie哪?可以这样处理:Applet不是要嵌到jsp中吗,在jsp中先行取得用户的cookieString sessionId = request.getHeader("cookie");),然后作为Applet的参数传入Applet。其他参数类似这样处理。这是多加一段请求头的代码片断:

?

?

问题7.3:以上步骤后,单独将Applet作为Application调试时没有问题,但在网页中,会遇到安全问题,比如,遇到的这样的报错:

?

解决:

这样,就需要编辑安全策略文件,可以使用JDKdeploytool工具编辑。文件的名称和位置要求(引用CSDN上一文的片断):

在作者另一篇文章《Applet直接访问数据库》http://www.csdn.net/develop/read_article.asp?id=15810

一文中讲述过Applet策略文件的制作。制作策略文件有两种方式,一是jdk带的policytool工具,它提供图形界面,为applet分配权限,另一种是直接编辑策略文件,对于初学者采用第一种方式比较合适,熟练的话,直接编辑比较快速。下面我就讲讲怎么样直接编辑其策略文件。策略文件的名称为".java.policy",这个文件必须放在用户根目录,在windows2000系统下,为操作系统所在盘:/Documents and Settings/用户名 目录,比如我的系统装在C盘,用户为管理员,那么这个目录就是C:/Documents and Settings/Administrator".java.policy"这个文件不能够在windows2000图形界面创建,可以打开一个命令行窗口,进入C:/Documents and Settings/Administrator,图形界面下建立一个文本文件,比如命名为java.policy,然后用dos命令C:/Documents and Settings/Administrator>move java.policy .java.policy这样就可以了,,然后用个编辑器,打开该文件,输入内容,内容可能类似于下:
grant {
?permission java.lang.RuntimePermission "accessClassInPackage.com.microsoft.util";
?permission java.lang.RuntimePermission "accessClassInPackage.com.microsoft.jdbc";
?permission java.lang.RuntimePermission "accessClassInPackage.com.microsoft.jdbcx";
?permission java.net.SocketPermission "192.9.200.52:1433", "connect";
};

保存就可以。第一行到第三行分别是授予applet访问三个包的权限,第四行是授予applet连接192.9.200.52:1433地址端口的权限。

?

?

? ?

针对我自己的问题,也即上一个截屏所展现的问题,我编辑了以下策略文件:

/* AUTOMATICALLY GENERATED ON Wed Aug 18 15:14:38 CST 2004*/

/* DO NOT EDIT */

?

grant {

? permission java.util.PropertyPermission "http.strictPostRedirect", "read, write";

};

?

?

?

?

?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值