JAVA网站制作之利用 Java 毗连处于proxy(or 防火墙)之...
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊防火墙|服务器我到sun站点上,发明他们的javaApplet谈天室可以冲破proxy,我在公司的局域网可使用的,而一样平常的java程序是不克不及够的。
人人能够往剖析一下他们的程序
本技能将向您报告怎样编写可经由过程代办署理会见因特网上的Web服务器的Java使用程序。在Java使用程序中到场代办署理撑持只需分外编写几行代码,且不依附任何平安性“毛病”。
几近一切的公司都非常存眷回护本人的外部收集,以防黑客及进窃者。一种罕见的平安措施是完整断开与因特网的毗连。假如黑客们不克不及毗连到您的任何一台呆板,他们就不克不及不法进进您的体系。这类战略发生的倒霉反作用是,外部用户没法会见内部的因特网服务器,如Yahoo或JavaWorld。为懂得决这一成绩,收集办理员一般安装“代办署理服务器”。实践上,代办署理是安装于因特网和外部网之间的一种服务,用来办理这两个范畴之间的毗连。代办署理有助于削减平安性的内部威逼,同时还同意外部用户会见因特网服务。只管Java使得编写因特网客户机不再坚苦,可是假如客户机不克不及经由过程代办署理,则它们毫无用途。侥幸的是,Java使得利用代办署理撑持不再坚苦--假如您晓得密诀,这就是现实。
将Java和代办署理分离起来的法门即在Java运转时激活特定的体系属性。这些属性未被写进正式文件,只是作为Java传说的一部分在Java编程职员中秘传。为了撑持代办署理,Java使用程序不但必要指定代办署理自己的信息,并且必要指定用于认证的用户信息。在入手下手利用网际协定之前,您必要在程序中增加以下几行代码:
System.getProperties().put("proxySet","true");
System.getProperties().put("proxyHost","myProxyMachineName");
System.getProperties().put("proxyPort","85");
下面的第一行关照Java您要经由过程代办署理举行毗连,第二行指定代办署理地点的呆板,第三行指定代办署理监听的端口。有些代办署理在受权用户会见因特网之前,请求用户输出用户名和口令。假如您利用位于防火墙以内的Web扫瞄器,您便可能碰着过这类情形。以下是实行认证的办法:
URLConnectionconnection=url.openConnection();
Stringpassword="username:password";
StringencodedPassword=base64Encode(password);
connection.setRequestProperty("Proxy-Authorization",encodedPassword);
这段代码的头脑是,您必需调剂HTTP标头以收回用户信息。这是经由过程挪用setRequestProperty()来完成的。这类办法同意您在收回哀求之前处置HTTP标头。HTTP请求用base64对用户名和口令举行编码。侥幸的是,有一组公用域API,它们将代您实行编码(请参阅参考资本部分)。
如您所见,在Java使用程序中到场代办署理撑持其实不必要做几事情。有了如今的常识,再做一点研讨(您必需查明您的代办署理是怎样处置您感乐趣的协定和怎样举行用户认证的),您就可以用其他协定完成代办署理。
FTP代办署理
ScottD.Taylor提出这个法门来处置FTP协定代办署理:
defaultProperties.put("ftpProxySet","true");
defaultProperties.put("ftpProxyHost","proxy-host-name");
defaultProperties.put("ftpProxyPort","85");
接上去您即可以经由过程以下代码利用"ftp"协定会见文件URL:
URLurl=newURL("ftp://ftp.netscape.com/pub/navigator/3.04/windows/readme.txt");
假如有人有利用其他网际协定代办署理的例子,我很想看看。
注重:代码示例(Example.java)仅在JDK1.1.4下测试过。
后续技能!
来自MarlaBonar:
关于仍在利用JDK1.1.7(共同WebSphere3.0)的开辟职员而言,将proxyHost和proxyPort设为体系属性不起感化;conn.getInputStream()大概前往毗连超时,大概是找不到主机路径。可是,我利用承受Host和Port为参数的URL机关函数办理了这一成绩(利用我的代办署理主机和端口):
publicURL(Stringprotocol,Stringhost,intport,Stringfile).
来自DylanWalsh:
借助用户名和口令举行认证的办法不起感化。应将"Basic"置于认证字符串的开首;比方:
StringencodedPassword=base64Encode(password);
应当是:
StringencodedPassword="Basic"+base64Encode(password);
您也不用用一个独自的程序来举行64位编码。您可使用sun.misc.BASE64Encoder()类。上面是完成这两处修改以后的代码:
System.getProperties().put("proxySet","true");
System.getProperties().put("proxyHost",proxyHost);
System.getProperties().put("proxyPort",proxyPort);
StringauthString="userid:password";
Stringauth="Basic"+newsun.misc.BASE64Encoder
().encode(authString.getBytes());
URLurl=newURL("http://java.sun.com/");
URLConnectionconn=url.openConnection();
conn.setRequestProperty("Proxy-Authorization",auth);
来自MarcelOerlemans:
上面是利用socks4代办署理服务器的办法:
System.getProperty("socksProxySet",true);
System.getProperty("socksProxyHost",proxyHostName);
System.getProperty("socksProxyPort",proxyPort);
UsuallytheproxyPortforSocks4isport1080
接上去您就能够用Socks4举行毗连了。
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种使用者不需花费很多时间学习的语言 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 是一种语言,用以产生「小应用程序(Applet(s)) 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 是一种突破用户端机器环境和CPU 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
页:
[1]