我有一个 servlet,它以 XML 格式响应。
客户端通过 httpsURLConnection 连接到这个 servlet。现在如果客户不打电话有问题connection.disconnect()
吗?
让我们按照这种情况:
url = "https://abc.com/ws/servlet?task=login"
openconnection()...
现在客户端必须发布用户名和密码,如果成功,他可以发布新的参数,如task=getSomeData,...etc
. 在断开之前。
对于每个连接,客户端都会成为新的 httpsession。
如果客户端不调用connection.dissconnect(),会话超时后连接会自动关闭吗?如果没有,那么什么时候?它还能活多久?如果有太多“未断开”连接,服务器会出现问题吗?
更新:示例客户端
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();
}
}
客户端不设置超时,在这种情况下,如果这个客户端不调用disconnect(),服务器会使用哪个超时?Servlet 容器连接器超时?但是改变它会影响这个容器中的所有应用程序。
默认的 Tomcat 连接器超时为 20000 = 2 分钟,这是否意味着,我最多只能在 2 分钟内使用我打开的连接?2分钟后会自动断开吗?
非常感谢。