-
JavaWeb通过代理访问Internet的例子,还有javamail通过代理发送邮件的例子10
我想要写好并测试通过的例子,在网上找了些资料但是不知道,是否正确
希望有正确源码的朋友,让我借鉴一下
问题补充:suziwen 写道J2SE1.5也被称为J2SE5.0,在5.0以前的代理服务器设置挺不友好,现在,5.0提供了对通过代理服务器的更加灵活的控制,它可以对http,https,ftp,socks等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。这和我们在IE、firefox中设置代理服务器类似。
1.你可以在通过java -DXXXX=YYYY方式在程序启动时设置,你也可以在程序中将设置放入系统属性中,你也可以设置Proxy类,通过它来控制。
2.可以通过ProxySelector来做自己的代理服务器的负载平衡等。import java.io.IOException; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; import java.net.ProxySelector; import java.net.SocketAddress; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Properties; public class NetProxy { // 测试本地JVM的网络缺省配置 public void setLocalProxy() { Properties prop = System.getProperties(); //设置http访问要使用的代理服务器的地址 prop.setProperty("http.proxyHost", "10.10.0.96"); //设置http访问要使用的代理服务器的端口 prop.setProperty("http.proxyPort", "8080"); //设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔 prop.setProperty("http.nonProxyHosts", "localhost|10.10.*"); //设置安全访问使用的代理服务器地址与端口 //它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问 prop.setProperty("https.proxyHost", "10.10.0.96"); prop.setProperty("https.proxyPort", "443"); //使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机 prop.setProperty("ftp.proxyHost", "10.10.0.96"); prop.setProperty("ftp.proxyPort", "2121"); prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*"); //socks代理服务器的地址与端口 prop.setProperty("socksProxyHost", "10.10.0.96"); prop.setProperty("socksProxyPort", "1080"); } // 清除proxy设置 public void removeLocalProxy() { Properties prop = System.getProperties(); prop.remove("http.proxyHost"); prop.remove("http.proxyPort"); prop.remove("http.nonProxyHosts"); prop.remove("https.proxyHost"); prop.remove("https.proxyPort"); prop.remove("ftp.proxyHost"); prop.remove("ftp.proxyPort"); prop.remove("ftp.nonProxyHosts"); prop.remove("socksProxyHost"); prop.remove("socksProxyPort"); } // // 测试http public void showHttpProxy(Object... proxy) { URL url = null; try { url = new URL("http://blog.csdn.com/smallnest"); } catch (MalformedURLException e) { return; } try { URLConnection conn = null; switch (proxy.length) { case 0: conn = url.openConnection(); break; case 1: conn = url.openConnection((Proxy) proxy[0]); break; default: break; } if (conn == null) return; conn.setConnectTimeout(3000); // 设置连接超时时间 InputStream in = conn.getInputStream(); byte[] b = new byte[1024]; try { while (in.read(b) > 0) { System.out.println(new String(b)); } } catch (IOException e1) { } } catch (IOException e1) { e1.printStackTrace(); } } // 测试ftp public void showFtpProxy(Object... proxy) { URL url = null; try { url = new URL("ftp://ftp.tsinghua.edu.cn"); } catch (MalformedURLException e) { return; } try { URLConnection conn = null; switch (proxy.length) { case 0: conn = url.openConnection(); break; case 1: conn = url.openConnection((Proxy) proxy[0]); break; default: break; } if (conn == null) return; conn.setConnectTimeout(3000); // 设置连接超时时间 InputStream in = conn.getInputStream(); byte[] b = new byte[1024]; try { while (in.read(b) > 0) { System.out.println(new String(b)); } } catch (IOException e1) { } } catch (IOException e1) { e1.printStackTrace(); } } // 得到一个proxy public Proxy getProxy(Proxy.Type type, String host, int port) { SocketAddress addr = new InetSocketAddress(host,port); Proxy typeProxy = new Proxy(type, addr); return typeProxy; } public static void main(String[] args) { NetProxy proxy = new NetProxy(); //测试代理服务器 proxy.setLocalProxy(); proxy.showHttpProxy(); //下面两行是清除系统属性,而通过Proxy类指定代理服务器 // proxy.removeLocalProxy //proxy.showHttpProxy(proxy.getProxy(Proxy.Type.SOCKS,"10.10.0.96",1080)); } }
也就是说我只要在工程开始之前调用一个proxy类,并设置好代理的Ip个端口号
这个工程如果访问到外网,就会自动通过这个代理来访问对么?
2010年3月29日 11:06
4个答案 按时间排序 按投票排序
-
采纳的答案
J2SE1.5也被称为J2SE5.0,在5.0以前的代理服务器设置挺不友好,现在,5.0提供了对通过代理服务器的更加灵活的控制,它可以对http,https,ftp,socks等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。这和我们在IE、firefox中设置代理服务器类似。
1.你可以在通过java -DXXXX=YYYY方式在程序启动时设置,你也可以在程序中将设置放入系统属性中,你也可以设置Proxy类,通过它来控制。
2.可以通过ProxySelector来做自己的代理服务器的负载平衡等。import java.io.IOException; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; import java.net.ProxySelector; import java.net.SocketAddress; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Properties; public class NetProxy { // 测试本地JVM的网络缺省配置 public void setLocalProxy() { Properties prop = System.getProperties(); //设置http访问要使用的代理服务器的地址 prop.setProperty("http.proxyHost", "10.10.0.96"); //设置http访问要使用的代理服务器的端口 prop.setProperty("http.proxyPort", "8080"); //设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔 prop.setProperty("http.nonProxyHosts", "localhost|10.10.*"); //设置安全访问使用的代理服务器地址与端口 //它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问 prop.setProperty("https.proxyHost", "10.10.0.96"); prop.setProperty("https.proxyPort", "443"); //使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机 prop.setProperty("ftp.proxyHost", "10.10.0.96"); prop.setProperty("ftp.proxyPort", "2121"); prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*"); //socks代理服务器的地址与端口 prop.setProperty("socksProxyHost", "10.10.0.96"); prop.setProperty("socksProxyPort", "1080"); } // 清除proxy设置 public void removeLocalProxy() { Properties prop = System.getProperties(); prop.remove("http.proxyHost"); prop.remove("http.proxyPort"); prop.remove("http.nonProxyHosts"); prop.remove("https.proxyHost"); prop.remove("https.proxyPort"); prop.remove("ftp.proxyHost"); prop.remove("ftp.proxyPort"); prop.remove("ftp.nonProxyHosts"); prop.remove("socksProxyHost"); prop.remove("socksProxyPort"); } // // 测试http public void showHttpProxy(Object... proxy) { URL url = null; try { url = new URL("http://blog.csdn.com/smallnest"); } catch (MalformedURLException e) { return; } try { URLConnection conn = null; switch (proxy.length) { case 0: conn = url.openConnection(); break; case 1: conn = url.openConnection((Proxy) proxy[0]); break; default: break; } if (conn == null) return; conn.setConnectTimeout(3000); // 设置连接超时时间 InputStream in = conn.getInputStream(); byte[] b = new byte[1024]; try { while (in.read(b) > 0) { System.out.println(new String(b)); } } catch (IOException e1) { } } catch (IOException e1) { e1.printStackTrace(); } } // 测试ftp public void showFtpProxy(Object... proxy) { URL url = null; try { url = new URL("ftp://ftp.tsinghua.edu.cn"); } catch (MalformedURLException e) { return; } try { URLConnection conn = null; switch (proxy.length) { case 0: conn = url.openConnection(); break; case 1: conn = url.openConnection((Proxy) proxy[0]); break; default: break; } if (conn == null) return; conn.setConnectTimeout(3000); // 设置连接超时时间 InputStream in = conn.getInputStream(); byte[] b = new byte[1024]; try { while (in.read(b) > 0) { System.out.println(new String(b)); } } catch (IOException e1) { } } catch (IOException e1) { e1.printStackTrace(); } } // 得到一个proxy public Proxy getProxy(Proxy.Type type, String host, int port) { SocketAddress addr = new InetSocketAddress(host,port); Proxy typeProxy = new Proxy(type, addr); return typeProxy; } public static void main(String[] args) { NetProxy proxy = new NetProxy(); //测试代理服务器 proxy.setLocalProxy(); proxy.showHttpProxy(); //下面两行是清除系统属性,而通过Proxy类指定代理服务器 // proxy.removeLocalProxy //proxy.showHttpProxy(proxy.getProxy(Proxy.Type.SOCKS,"10.10.0.96",1080)); } }
2010年3月29日 12:19
-
设置了代理,只要访问网络他就使用代理(不管内外网,因为他也不知道哪些是内网哪些是外网),你可以在需要使用代理的网络时,把代理打开,使用完后,再关闭代理。
2010年3月29日 13:09
-
也可以看看这几个链接
http://www.iteye.com/topic/503153
http://wtnhwbb.iteye.com/blog/1540062010年3月29日 12:20
-
System.getProperties().setProperty("proxySet", "true"); //如果不设置,只要代理IP和代理端口正确,此项不设置也可以
System.getProperties().setProperty("http.proxyHost", "218.26.204.66");
System.getProperties().setProperty("http.proxyPort", "8080");2010年3月29日 11:12
相关推荐
在Java编程环境中,发送电子邮件是一项常见的任务,JavaMail API提供了这样的功能。然而,要实现完整的邮件发送功能,单纯依赖`javamail.jar`是不够的,还需要`activation.jar`包。这两个库一起工作,使Java应用程序...
总的来说,这个"javaweb个人简单发送邮件封装包"简化了JavaWeb应用中发送邮件的过程,使得开发者无需深入了解JavaMail API的细节,就能快速实现邮件发送功能。只需正确配置SMTP服务器信息,就可以方便地通过程序发送...
在Java Web开发中,使用JavaMail API可以实现邮件的发送和接收功能。JavaMail是一个开源库,它提供了标准的API来处理SMTP(简单邮件传输协议)和其他邮件协议,使得开发者能够在应用程序中方便地发送和接收电子邮件...
2. 支持多种邮件协议,如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议) 3. 处理邮件中的MIME(多用途互联网邮件扩展)内容,支持文本、图片、音频、视频等多种类型附件 4. 支持SSL和TLS...
JavaWeb中的JavaMail API是一个强大的库,用于在服务器端创建和发送电子邮件。本文将深入探讨如何使用JavaMail在JavaWeb应用程序中创建和发送邮件,基于MIME协议来处理复杂的邮件内容,如包含图片和附件。 首先,让...
Java邮件系统是一个基于Java Web技术构建的B/S(Browser/Server)架构的应用程序,它允许用户通过网页浏览器发送、接收和管理电子邮件。在本项目中,开发者利用了Java的强大力量,特别是对于网络通信和数据处理的...
总结来说,`javaweb实现邮件发送所需jar包`包括`mail.jar`和`activation.jar`,它们是JavaMail API的重要组成部分,提供了发送邮件所需的所有功能。通过理解这两个库的工作原理和使用方法,开发者可以在Java Web应用...
在JavaWeb开发中,实现邮箱发送验证码功能是常见...总之,JavaWeb中实现邮箱发送验证码功能涉及到配置邮件服务、使用JavaMail API发送邮件以及可能的验证码管理逻辑。确保正确配置并理解这些步骤,就能顺利实现该功能。
"JAVAWEB照相带完整例子"是一个实际项目案例,它展示了如何在JavaWeb环境中集成摄像头功能,让用户能够通过网页进行拍照并进行相关处理。这个例子包含了前端用户界面以及后端服务器的交互逻辑。 首先,`webcam.jsp`...
JavaWeb应用通常部署在Tomcat、Jetty等应用服务器上,通过配置服务器的context path,将系统暴露在指定的URL下供用户访问。 总结,JavaWeb技术在代理商管理系统中的应用涵盖了后端业务处理、前端展示、数据库交互等...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。它提供了丰富的 API,可以处理 SMTP、POP3、IMAP 协议,以及 MIME 消息的创建和解析。JavaMail 允许开发者轻松地实现邮件服务器的...
在Java Web开发中,用户登录验证是不可或缺的一部分,而在这个"javaweb用户验证码登录session例子"中,我们将深入探讨如何结合验证码、用户密码以及Session技术来实现安全的登录过程。Session是Web应用中用于跟踪...
javaweb毕业设计-基于Javamail的邮件收发系统(系统+lw+开题报告+任务书+外文翻译+文献综述+答辩PPT)(可做课程设计).rarjavaweb毕业设计-基于Javamail的邮件收发系统(系统+lw+开题报告+任务书+外文翻译+文献综述+...
JavaWeb页面开发是Web开发中的一个重要...总的来说,通过这些例子,你不仅可以提升编程技能,还能增强对Web开发流程的理解,从而更好地应对实际项目的需求。不断地练习和探索,将助你在JavaWeb开发的道路上不断进步。
1. JavaMail API:这是一个用于发送电子邮件的Java API,可以让开发者无需关心底层的SMTP协议细节,通过编程接口来发送邮件。在JavaMail API中,MimeMessage是构造邮件消息的主要对象,它包含了邮件的基本元素,例如...
【SSH框架整合与JavaWeb开发】 SSH(Struts2、Spring、Hibernate)是JavaWeb开发中的经典组合,常用于构建企业级应用。本教程将详细讲解2016年SSH框架整合时使用注解的方式,以提高开发效率并降低配置复杂度。 1. ...
通过这个API,JavaWeb应用可以打开串口,设置波特率、数据位、停止位等通信参数,然后发送和接收数据。对于单片机来说,它需要配置相应的串口接口,以便于接收和响应来自JavaWeb的命令。 在实际应用中,安全性也是...
JavaFX Script编程语言(以下称为JavaFX)是Sun微...JavaMail是实现邮件发送和接收功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的...
首先,邮件系统的实现基于JavaMail API,这是一个广泛使用的Java库,用于处理SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件协议。开发者通过JavaMail API可以方便地创建、发送、...
总之,通过JavaMail API和Apache Commons Email,Java Web开发者可以方便地实现邮件发送功能,进行有效的用户沟通和系统通知。理解这些知识点对于Java Web开发是非常重要的,能帮助开发者构建更加完善的后台服务。