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

原创 2004年09月01日 19:25:00

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

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

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

?

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

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />?

?

这时,要在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";

};

?

?

?

?

?

消息映射表

  消息映射表  1。对不同的消息,MFC用不同的宏实现消息映射  2。消息映射表处理这个类所定义的消息映射和这个类不处理而定义的消息而传递给其父类处理的消息映射  3。在BEGIN_...和END_...
  • lumg
  • lumg
  • 2001-08-03 20:54:00
  • 1618

如何使Applet和Servlet双向通信?

示例代码片断:     
  • staminalim
  • staminalim
  • 2004-09-01 19:19:00
  • 592

Applet 和 Servlet 之间的通信

今天有人问我怎么实现Applet 和 Servlet 之间怎么通信, 傻眼了,  之前也没留意过, 记得当时学java 的时候就没有好好学Applet, 只知道Applet 是在client 端运行的...
  • applecjn
  • applecjn
  • 2004-12-04 21:09:00
  • 1103

详解Java Servlet与Applet比较

转自:http://developer.51cto.com/art/200907/134616.htm Java Servlet与Applet相似之处: ◆它们不是独立的应用程...
  • yasi_xi
  • yasi_xi
  • 2014-03-25 16:16:01
  • 2898

servlet是做什么用的?,她和applet有什么区别?

servlet是做什么用的?,她和applet有什么区别?servlet为服务器小程序与运行与客户端的applet小程序对应,Servlet没有main方法,只有一些特定的方法用于启动,执行和退出。S...
  • seven119835
  • seven119835
  • 2005-06-14 13:43:00
  • 2783

Servlet和Applet(Java小应用程序)相关知识!!!!------阿冬专栏

一、servlet  Servlet是用Java编写的Server端程序。Servlet运行于Java-enabled Web Server中。Java Servle...
  • zhangdong305
  • zhangdong305
  • 2015-06-04 09:45:07
  • 3233

Java Servlet与Applet、CGI、JSP的比较

从网络的早期阶段开始,人们就希望他们的网络服务器不仅能够显示静态文档,通用网关接口(CGI) 扩展了服务器的能力,但其代价是增加了额外的处理进程。FastCGI则把外部CGI 处理进程同网络服务器...
  • a675311
  • a675311
  • 2015-10-19 15:06:22
  • 753

Applet与Servlet的通信

前段时间给公司做LMS系统,需要在 Applet与Servlet间进行数据通信,查了很多的资料,看了很多高人写的,竟不得要领,许是高人都太高了,以高人之心度了菜鸟之腹,后来自己结合高人的指点,多方摸索...
  • oobug
  • oobug
  • 2006-11-22 17:35:00
  • 1684

通过Applet和Servlet通讯实时显示数据

在有些情况下,我们可能需要使用到Applet和Servlet通讯,比如客户需要在客户端实时显示服务器端处理器利用率的状况,又或者一个股票交易情况,等等一些实时的系统中。 一般来说客户端的Applet程...
  • weiyu228
  • weiyu228
  • 2006-05-31 11:49:00
  • 2095

Applet、Scriptlet与Servlet

小应用程序Applet Applet简介 Applet是一种特殊的java程序,它本身不能单独运行(因为本身没有main()),需要嵌入在一个HTML文件中,借助浏览器或者appletviewe...
  • mo_fan_qing_wa
  • mo_fan_qing_wa
  • 2015-11-24 18:05:03
  • 906
收藏助手
不良信息举报
您举报文章:如何使Applet和Servlet双向通信-后续问题?
举报原因:
原因补充:

(最多只允许输入30个字)