CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

小弟很着急~ 大哥看这里~ (关于:applet 在浏览器中读取文件时的错误)

楼主thomaslw(void)2005-12-14 11:23:29 在 Java / J2SE / 基础类 提问

先把程序贴出来~    
   
  import   java.io.*;  
  import   java.net.*;  
  import   java.applet.*;  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.JOptionPane;  
   
  public   class   Pc   extends   Applet   implements   ActionListener  
  { TextField text;  
  Button buttonEnter;  
  public   void   init()  
  {  
   
  text   =   new   TextField("0",10);  
  add(text);  
  buttonEnter   =   new   Button("确定");  
  add(buttonEnter);  
  buttonEnter.addActionListener(this);  
  }  
  public   void   paint(Graphics   g)  
  {  
  g.drawString("请输入正确的密码",5,80);  
  }  
  public   void   actionPerformed(ActionEvent   e)  
  {  
  if   (e.getSource()   ==   buttonEnter)  
  {  
  String   psw   =   new   String("");  
  String   inp   =   new   String("");  
  int psw_len,len=0,l,temp;  
  byte pp[]   =   new   byte[100];  
  try{  
  File   f   =   new   File("psw"); //   psw为密码文件名  
  FileInputStream   readfile   =   new   FileInputStream(f);  
  psw_len   =   readfile.read(); //   读取密码文件的第一字节(密码位数)  
  //   此密码位数其实无用,掩人耳目而已  
   
  while(   (l   =   readfile.read(pp,1,psw_len   +   1))   !=   -1)  
  {  
  len   =   l; //   读取密码按字节   并计数  
  }  
  for   (l   =   1;   l   <=   len;   l++) //   密码转换  
  {  
  temp   =   (int)pp[l];  
  temp   =   temp   +   3;  
  if   (temp   >   255)   temp   =   temp   -   255;  
  pp[l]   =   (byte)temp;  
  }  
  psw   =   new   String   (pp,1,len); //   创建密码串  
  System.out.println(psw); //   密码测试输出  
  text.setText(psw); //   测试输出(当applet在浏览器中运行,不能读出密码!!!!!!!!!!!!!!)  
  readfile.close(); //   关闭  
  }  
  catch   (IOException   exp_file){  
  System.out.println("File   read   error:"+exp_file);  
  text.setText(exp_file);  
  }  
   
  inp   =   text.getText();  
  System.out.println(inp);  
  System.out.println(inp.length());  
  System.out.println(psw.length());  
   
  //   得到窗口句柄  
      Container   c   =   text.getParent();    
  c   =   c.getParent();  
   
  System.out.println(c); //   测试输出  
   
  if   (psw.equals(inp)) //   密码判断逻辑  
  {  
  try{  
  System.out.println("open   the   URL   ");  
  getAppletContext().showDocument(new   URL("http://www.gtsoft.com.cn/newgt/index.htm"));        
  }  
  catch   (MalformedURLException   e_url){  
  JOptionPane.showMessageDialog(c,"不能打此页面","警告",  
  JOptionPane.WARNING_MESSAGE);  
  }  
  }  
  else{  
  JOptionPane.showMessageDialog(c,"error   psw","警告",  
  JOptionPane.WARNING_MESSAGE);  
  }  
  }  
  }  
  } 问题点数:100、回复次数:4Top

1 楼thomaslw(void)回复于 2005-12-14 11:30:18 得分 0

这个applet   中有读取磁盘文件的内容.文件里放的密码.  
  当这个   APPLET   使用   appletviewer   时,一切正常~  
   
  (当然这里还有个页面跳转没有反映的问题:getAppletContext().showDocument(new   URL("http://www.gtsoft.com.cn/newgt/index.htm"));       )  
   
  但是将此applet   放在浏览器中运行时就会在JAVA控制台中出现文件读取异常提示:  
  java.security.AccessControlException:   access   denied   (java.io.FilePermission   psw   read)  
  at   java.security.AccessControlContext.checkPermission(Unknown   Source)  
  at   java.security.AccessController.checkPermission(Unknown   Source)  
  at   java.lang.SecurityManager.checkPermission(Unknown   Source)  
  at   java.lang.SecurityManager.checkRead(Unknown   Source)  
  at   java.io.FileInputStream.<init>(Unknown   Source)  
  at   Pc.actionPerformed(Pc.java:34)  
  at   java.awt.Button.processActionEvent(Unknown   Source)  
  at   java.awt.Button.processEvent(Unknown   Source)  
  at   java.awt.Component.dispatchEventImpl(Unknown   Source)  
  at   java.awt.Component.dispatchEvent(Unknown   Source)  
  at   java.awt.EventQueue.dispatchEvent(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpEvents(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpEvents(Unknown   Source)  
  at   java.awt.EventDispatchThread.run(Unknown   Source)  
   
  程序排版不好~   真是不好意思~   看着麻烦了点~  
  谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Top

2 楼hendy(hendy)回复于 2005-12-14 13:40:06 得分 100

applet是不能存取本地文件系统的,这是安全设置,  
  你可以通过https+数字签名解决这个问题Top

3 楼thomaslw(void)回复于 2005-12-14 14:52:44 得分 0

谢谢楼上~  
  还有为什么我的这一句不起作用啊~~~~~~~  
  getAppletContext().showDocument(new   URL("http://www.gtsoft.com.cn/newgt/index.htm"));Top

4 楼thomaslw(void)回复于 2005-12-16 20:50:40 得分 0

顶一下~~Top

相关问题

  • 读取文本文件文件的问题,急呀,大哥!!
  • 读取文件信息的问题!请各位大哥帮忙!
  • Applet读取SQL7.0的数据
  • 请问各位大哥,怎样使用读取这样的数据啊(急)
  • DataGrid读取数据库填充数据遇到问题!大哥门救命啊~~~~~
  • 如何用ASP程序读取、创建组注册表项目??着急!
  • jsp读取oracle8.1.6数据表中的中文,读出为?,着急啊。
  • 如何用java读取excel2003的单元格的数据?着急啊~~~~~~~
  • 请问在有一个文件读取函数,是读取配置文件的,大哥们能告诉我是哪个函数吗?
  • 请问那位大哥有过开发HTML浏览器(读取网页标签的算法)的经验?

关键词

  • 密码
  • 文件
  • source
  • exp
  • pc
  • psw
  • eventdispatchthread
  • buttonenter
  • awt
  • 读取

得分解答快速导航

  • 帖主:thomaslw
  • hendy

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo