如何使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";

};

?

?

?

?

?

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

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

<applet>和<object>标签的用法区别研究一

研究了半天和标签的用法,虽然还没弄太明白,但总算没有被XX认为的所误导。 对于标签 1.      APPLET CODE="HelloApplet.class" CODEBASE="D:/a...
  • chentracy2008
  • chentracy2008
  • 2013年04月10日 15:02
  • 1488

Java Applet 的运行原理

一、Java Applet的运行原理和生命周期          1.Applet被嵌入到HTML页面中,并由applet的容器(appletviewer或者Web浏览器)执行.       ...
  • z931284151
  • z931284151
  • 2015年10月13日 20:47
  • 978

在浏览器中运行applet

用以下两个类定义了一个applet: import javax.swing.JApplet; public class VideoApplet extends JApplet{ public v...
  • l294265421
  • l294265421
  • 2015年06月19日 18:29
  • 2804

Java基础——GUI编程和Applet

33、GUI 概述 GUI(Graphical User interface)图形用户接口 用图形的方式,来显示计算机操作的界面,这样更方便,更直观 CLI(Command Line User Int...
  • dyonline2012
  • dyonline2012
  • 2013年07月14日 20:09
  • 1138

servlet的一些问题和解答

1.servlet是什么 2.servlet的生命周期以及和CGI的区别 3.重定向和请求转发 4.如何实现servlet的单线程模式 5.servlet页面间对象传递的方法有几种 6.JS...
  • u010215407
  • u010215407
  • 2016年05月11日 19:06
  • 1116

JAVA应用程序转换为Applet

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41673295 将一个图形的JAVA应用程序转换为能够嵌入在...
  • pistolove
  • pistolove
  • 2014年12月02日 08:06
  • 1827

AIDL实现跨APP通信(双向通信)

某天,接到了一人任务要在两个app互相传递一些消息,上网查了以后发现有几种方式。第一是广播、第二是AIDL,由于初出茅庐全不会就选择了AIDL。。。下面简单粗暴的开始贴代码好了。也是得到了网上的一些借...
  • fenniang16
  • fenniang16
  • 2016年09月09日 09:34
  • 1384

编写和运行简单的Applet程序

Applet是一种包含在HTML网页中的Java应用程序,下面简单总结一下如何用命令行编译并运行程序。   1、首先用记事本(UltraEdit等)编写一个简单的Applet程序,并命名为SayHel...
  • Crazy_For_Net
  • Crazy_For_Net
  • 2015年12月09日 17:39
  • 3072

Eclipse开发Applet的流程

 Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到网页中,这里采用Eclipse编写和调试Applet程序,调试的时候Eclipse会自动调用Java "小程...
  • u012868627
  • u012868627
  • 2014年09月06日 19:23
  • 1640
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使Applet和Servlet双向通信-后续问题?
举报原因:
原因补充:

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