动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.String转换成Integer源码分析.
.IOC容器比较:Spring Vs Pico Vs.
.设计和优化MicrosoftWindowsCE.N.
.J2ME学习系列之如何将J2ME与XML集.
.Web Service实现包--AXIS2学习笔.
.深入探讨EJB中新的消息驱动组件.
.利用Java实现zip压缩/解压缩.
.英文打字练习.
.jive中的abstractFactory.
.开源工作流编辑器 JaWE&nbs.
.关于 final 的奇怪问题.
.Java变量类型间的相互转换.
.菜鸟初学Java的备忘录(三).
.彻底明白Java的多线程-实现多线程.
.构造方法的初始化顺序.
.JAVA入门教程:第一章.
.Java高级编程——泛型类型 第一部.
.Java Bean实现航空预定机票功能应.
.struts 2.
.学编程的人不能不看的好文章(2).

用J2SE 1.4进行Internet安全编程(三)

发表日期:2008-1-5 |



  开发一个支持 SSL 的网页浏览器
  我们开发一个支持 SSL 的网页浏览器作为一个完整的例子。该浏览器要做下面的工作:
  
  1. 用户输入 URL,浏览器能接收它。
  
  2. 浏览器能打开到 URL 指定主机的连接。
  
  3. 浏览器能发送 HTTP 命令。
  
  4. 浏览器会等待 HTTP/HTTPS 服务器的回应。
  
  5. 浏览器能接收 Html 回应。
  
  6. 浏览器能解析 HTML 并显示出页面。
  
  我们创建的浏览器要能处理任何 URL 如 HTTP、HTTPS、FTP 等。注重我使用工具类 Javax.swing.text.html.HTMLEditorKit 来解析 HTML,它提供了对 HTML 3.2 的支持。
  
  示例代码 3 中展示了这个浏览器,QBrowser,的代码。注重 QBrowser 实现了 Runnable 接口。我这样做是因为这个浏览器没有提供“停止”按钮。
  
  示例代码 3:QBrowser.java
  
  import java.io.*;
  
  import java.net.*;
  
  import java.awt.*;
  
  import java.awt.event.*;
  
  import javax.swing.*;
  
  
  public class QBrowser implements ActionListener, Runnable {
  
   private JFrame frame;
  
   private JButton go;
  
   private JEditorPane content;
  
   private JTextField url;
  
   private JLabel statusLine;
  
  
   // default constrUCtor
  
   public QBrowser () {
  
   buildBrowserInterface();
  
   }
  
  
   private void buildBrowserInterface() {
  
   frame = new JFrame("Q's Browser");
  
   // on close, exit the application using System.exit(0);
  
   frame.setDefaultCloseOperation (3);
  
  
   url = new JTextField("", 25);
  
   go = new JButton("Go Get It");
  
   go.addActionListener(this);
  
  
   JPanel controls = new JPanel(new FlowLayout ());
  
   controls.add(new JLabel("URL:"));
  
   controls.add(url);
  
   controls.add(go);
  
   content = new JEditorPane();
  
   content.setEditable(false);
  
   // HTML text. Use the kit in the class javax.swing.text.html.HTMLEditorKit, which
  
   // provides support for HTML 3.2
  
   content.setContentType("text/html");
  
   content.setText("

Q's Browser

Copyright (c) 2002 Qusay H. Mahmoud

");
  
   statusLine = new JLabel("Initialization Complete");
  
  
   JPanel panel = new JPanel(new BorderLayout (0, 2));
  
   frame.setContentPane(panel);
  
  
   panel.add(controls, "North");
  
   panel.add(new JScrollPane (content), "Center");
  
   panel.add(statusLine, "South");
  
   frame.pack();
  
   frame.setVisible(true);
  
   }
  
  
   /**
  
   * You cannot stop a download with QBrowser
  
   * The thread allows multiple downloads to start
  
   * concurrently in case a download freezes
  
   */
  
   public void actionPerformed (ActionEvent event) {
  
   Thread thread = new Thread(this);
  
   thread.start();
  
   }
  
   // this is the Thread's run method
  
   public void run () {
  
   try {
  
   String str = url.getText();
  
   URL url = new URL(str);
  
   readURL(url);
  
   } catch (IOException ioe) {
  
   statusLine.setText("Error: "+ioe.getMessage());
  
   showException(ioe);
  
   }
  
   }
  
  
   private void showException(Exception ex) {
  
   StringWriter trace = new StringWriter ();
  
   ex.printStackTrace (new PrintWriter (trace));
  
   content.setContentType ("text/html");
  
   content.setText ("

" + ex + "

" + trace + "
");
  
   }
  
  
   /**
  
   * The URL class is capable of handling http:// and https:// URLs
  
   */
  
   private void readURL(URL url) throws IOException {
  
   statusLine.setText("Opening " + url.toExternalForm());
  
   URLConnection connection = url.openConnection();
  
   StringBuffer buffer = new StringBuffer();
  
   BufferedReader in=null;
  
   try {
  
   in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  
   String line;
  
   while ((line = in.readLine()) != null) {
  
   buffer.append(line).append('\n');
  
   statusLine.setText("Read " + buffer.length () + " bytes...");
  
   }
  
   } finally {
  
   if(in != null) in.close();
  
   }
  
   String type = connection.getContentType();
  
   if(type == null) type = "text/plain";
  
   statusLine.setText("Content type " + type);
  
   content.setContentType(type);
  
   content.setText(buffer.toString());
  
   statusLine.setText("Done");
  
   }
  
  
   public static void main (String[] args) {
  
   QBrowser browser = new QBrowser();
  
   }
  
  }
上一篇:用J2SE 1.4 进行 Internet 安全编程(二) 人气:449
下一篇:企业内部网中使用Policy文件来设置Java的安全策略 人气:529
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号