F
Frank Lorenz
Hi
A servlet generated response is treaten differently each time. One time the
webbrowser raises correctly a download dialog, wich enables the user to save
a file. This happens when the data to download is small. The other time,
instead to show a download dialog, the webbrowser shows the data directly as
a new page. This happens with larger downloaddata.
Therefore i suppose it depends on wrong caching adjustments i've made in the
responseheader. But i'm not really shure about it. The header is configured
in a way, that the response is declarated as extreme volatile, so that the
caching mechanism actually will not grip.
The problem occurs with any webbrowser (doesn't matter if ie, ns,
mozilla...). Tomcat 4.0.x is used.
Regards Frank
--
public void doGet(HttpServletRequest aRequest, HttpServletResponse
aResponse)
throws IOException, ServletException {
try
{
int size;
ByteArrayOutputStream out;
String csv_export =
(String)aRequest.getSession().getAttribute(ATTR_KEY);
if((csv_export != null) && (csv_export.trim().length() > 0))
{
size = csv_export.length();
out = new ByteArrayOutputStream(size);
out.write(csv_export.getBytes());
out.writeTo(aResponse.getOutputStream());
out.flush();
out.close();
// Response-Header Setup
aResponse.setHeader("Content-Disposition","attachment; filename=" +
FILENAME + "; size=" + size);
aResponse.setContentLength(size);
aResponse.setContentType("text/comma-separated-values");
aResponse.addDateHeader("Expires:", (System.currentTimeMillis()+
1000*60*2));
aRequest.getSession().removeAttribute(ATTR_KEY);
}
else
{
aRequest.getSession().removeAttribute(ATTR_KEY);
throw new Exception("No Data");
}
}
catch (Exception e)
{
e.printStackTrace();
aRequest.getSession().removeAttribute(ATTR_KEY);
sendErrorPage(aResponse, e.getMessage());
}
}
--
A servlet generated response is treaten differently each time. One time the
webbrowser raises correctly a download dialog, wich enables the user to save
a file. This happens when the data to download is small. The other time,
instead to show a download dialog, the webbrowser shows the data directly as
a new page. This happens with larger downloaddata.
Therefore i suppose it depends on wrong caching adjustments i've made in the
responseheader. But i'm not really shure about it. The header is configured
in a way, that the response is declarated as extreme volatile, so that the
caching mechanism actually will not grip.
The problem occurs with any webbrowser (doesn't matter if ie, ns,
mozilla...). Tomcat 4.0.x is used.
Regards Frank
--
public void doGet(HttpServletRequest aRequest, HttpServletResponse
aResponse)
throws IOException, ServletException {
try
{
int size;
ByteArrayOutputStream out;
String csv_export =
(String)aRequest.getSession().getAttribute(ATTR_KEY);
if((csv_export != null) && (csv_export.trim().length() > 0))
{
size = csv_export.length();
out = new ByteArrayOutputStream(size);
out.write(csv_export.getBytes());
out.writeTo(aResponse.getOutputStream());
out.flush();
out.close();
// Response-Header Setup
aResponse.setHeader("Content-Disposition","attachment; filename=" +
FILENAME + "; size=" + size);
aResponse.setContentLength(size);
aResponse.setContentType("text/comma-separated-values");
aResponse.addDateHeader("Expires:", (System.currentTimeMillis()+
1000*60*2));
aRequest.getSession().removeAttribute(ATTR_KEY);
}
else
{
aRequest.getSession().removeAttribute(ATTR_KEY);
throw new Exception("No Data");
}
}
catch (Exception e)
{
e.printStackTrace();
aRequest.getSession().removeAttribute(ATTR_KEY);
sendErrorPage(aResponse, e.getMessage());
}
}
--