有什么方法可以实现http连接池吗



在java中有没有任何方法可以在不使用第三方api(如httpclient、httpcommons等)的情况下实现http连接池。。?

在我的情况下,我想打开一个具有特定servlet的url的连接&我的查询字符串会更改,但每当我打开连接时,我都会像以前一样打开一个新连接"netstat-anp|grep portno",我不想要它?

String sendMessageUrl="http://ip:portno/contextpath/servlet/Servletname?parameter1=&parameter2=";
URL testURl=new URL(sendMessageUrl.replaceAll("&", name+"&")+surname);  
HttpURLConnection httpConnection=(HttpURLConnection)testURl.openConnection();
httpConnection.connect();
if(httpConnection.getResponseCode()==200)
{
System.out.println("Success");
}

这里只有参数1&参数2更改,只是整个url保持不变。

当创建对象的成本很高时,可以对对象进行池化,例如,数据库连接的创建成本很高,因此池化是有意义的。在不使用第三方框架的情况下,仍然可以对HTTP连接进行池化,毕竟池只是以前创建的类实例的集合。

至少要创建一个管理HTTP连接池的类,您至少需要执行以下操作:

  1. 从池中检索实例(使用中的对象)
  2. 将实例放回池中(对象不再使用)
  3. 游泳池大小

您可能还需要将以下功能视为池中值得使用的功能:

  1. 重新连接已过时的实例
  2. 最长空闲时间,请记住空闲连接仍在消耗资源
  3. 引发异常之前连接可以使用的时间
  4. 验证连接是否有效的方法,例如,对于数据库连接,执行一个简单的SQL

还有很多其他事情需要考虑,但这取决于您自己建造的确切要求。你应该尝试一下,如果你遇到问题,请SO就你的具体问题寻求帮助。

您可以使用JDK的HttpURLConnection部分。它在引擎盖下使用TCP连接池

相关内容

  • 没有找到相关文章

最新更新