我有一个servlet,它以XML格式响应。必须HTTP客户端关闭他们的连接
客户端通过httpsURLConnection与此servlet连接。 如果客户不打connection.disconnect()
,现在是个问题吗?
可以遵循这样的场景:
url = "https://abc.com/ws/servlet?task=login"
openconnection()...
现在客户端必须张贴的用户名和密码,如果成功,他可以张贴像task=getSomeData,...etc
新参数。断开之前。
对于每个连接,客户端将变为新的httpsession。
如果客户端没有调用connection.dissconnect(),会话超时后连接是否会自动关闭?如果不是,那么什么时候?它会活多久?如果存在sooomany“UNdisconnected”连接,是否对服务器有问题?
UPDATE:样本客户
HttpsURLConnection conn = null;
InputStream inputstream = null;
try{
URL url = new URL("https://abc.com/ws/servlet");
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
inputstream = conn.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(inputstream);
......;
}catch(Exception ex){
ex.printStackTrace();
}
finally{
try {
if(inputstream != null)
inputstream.close();
if(conn != null)
//conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
客户端设置无超时,在这种情况下,超时将在服务器)使用,如果该客户端不叫断开(? Servlet容器连接器超时?但改变这将影响此容器内的所有应用程序。
默认的Tomcat连接器超时时间为20000 = 2分钟,这是否意味着,我只能在最大2分钟内使用我的打开的连接? 2分钟后会自动断开?
很多谢谢。
如果它不是一个必须的方法,那么汇集许多死/空闲(未连接)连接不应该影响服务器的性能?换句话说:我是否必须担心这些死亡的关系? –
不,游泳池和服务器确实令人担忧。 – EJP
感谢您的信息 –