易截截图软件、单文件、免安装、纯绿色、仅160KB

HTTPs in java dev @IBM

      最近在开发一个小的ESB系统,会在这里粘一些觉得会用的到的文章。
出自:www.ibm.com.cn MattTowers 2002年10月08日
摘要
使用 HTTPS(Hypertext Transfer Protocol Secure 安全超文本传输协议)并非你所想的那样简单直接。如果你曾经尝试在 Java 客户端和 HTTPS 服务器之间进行安全的通讯,也许会注意到标准的 java.net.URL 类并不支持 HTTPS协议。这篇文章将向你展示,如何使用 JDK 1.2-compatible 虚拟机或微软的 JDK 1.1-compatible JView 来克服这些限制。
如果你曾经尝试在 Java 客户机和 HTTPS(安全超文本传输协议)服务器之间进行安全的通讯,也许会注意到标准的 java.net.URL 类并不支持 HTTPS 协议。服务端解决此问题的方法是非常简单明了的。因为现今几乎所有的Web服务器都使用 HTTPS 协议来提供查询数据的机制。一旦配置好你的服务器,任何浏览器只要简单地将 URL 地址中的协议指定成 HTTPS ,就能够在你的服务器上安全地进行信息查询。如果你没有搭建起 HTTPS 服务器,则可以在互联网上几乎所有 HTTPS 网页中测试你的客户端代码。在资料部分给出了一个列表,里面列出若干可供你进行 HTTPS 通讯测试的服务器地址。
然而从客户端的角度来看,在熟悉的 HTTP 后面简单的加上“S”就能够安全通信。这种简单性充满了迷惑性。事实上,浏览器在后台做了大量的工作,以保证没有任何人篡改或窃听你所发送的请求数据。然而 HTTPS 协议用来加密的算法是 RSA Security 所拥有的专利(这种状况至少还要持续几个月)。该加密算法得到了浏览器制造商的许可,但 Sum Microsystems 公司却不同意将它绑定到标准的 Java URL 类实现中。这就导致当你创建 URL 对象时,若将协议指定为 HTTPS,就会抛出一个 MalformedURLException 异常。
幸运的是,为了解决这个局限,Java规格说明书提供为 URL 类选择一个代替的流句柄的能力。然而当你使用不同的虚拟机( virtual machine )时,此技术的实现方法也是不同的。在微软的 JDK 1.1-compatible 虚拟机 JView 中,微软许可该加密算法并提供了一个 HTTPS 流句柄作为它的 wininet 包的一部分。而SUN最近为它的 JDK 1.2-compatible 虚拟机发布了 Java Secure Sockets Extension(JSSE),在 JSSE 里许可并提供了 HTTPS 流句柄。本文将具体阐述如何使用 JSSE 和微软的 wininet 包来实现 HTTPS 流句柄。
JDK 1.2-compatible 虚拟机
在 JDK 1.2-compatible 虚拟机中使用 H


相关文档:

Java自定义多线程服务器

// multi.MultiServer.java
package multi;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class MultiServer {
private int port = 8000;
private int backlog = 42;
private ServerSocket server_socket;
private Thread ......

java 解压缩zip文件

测试环境:win2000+jdk1.4+jb2006
 import java.io.*;
import java.util.Enumeration;
//import java.util.zip.*;
import org.apache.tools.zip.*;
public class Test {
//解压文件
  public static void extZipFileList(String zipFileName, String extPlace) {
    try {
   ......

java判断子网掩码

String[] ips = ipValue.split("\\.");
String binaryVal = "";
for (int i = 0; i < ips.length; i++)
{
String binaryStr = Integer.toBinaryString(Integer.parseInt(ips[i]));


Integer times = 8 - binaryStr.length();
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号