问题解决,在Spring拦截器方面出现问题:我在Spring配置文件中配置了一个拦截器,拦截非登陆用户对系统的操作,也就是检测session是否存在,如果存在,则可以进行操作,否则任何操作都将返回到登陆。当我采用此方法进行下载的时候,可能(只是猜测)重新设置了
response.setContentType("application/ms-download;charset=dos");
response.setHeader("Content-disposition", "attachment; filename=" + fileName); 
因而导致session失效……虽然问题解决,但是对其中道理并不是很明白,同样希望各位给以指点…多谢!

解决方案 »

  1.   

    <%@ page import="java.io.*,java.util.*;" %>
    <%
        String downloadFile = "C:\\boot.ini";
        BufferedInputStream inputstream = new BufferedInputStream(new
            FileInputStream(downloadFile));
        response.setContentType("application/octet-stream");
        response.addHeader("Content-Disposition",
                           "attachment; filename=\"write.ini\"");
        response.setHeader("Accept-ranges", "bytes");
        byte[] b = new byte[100];
        int len;
      OutputStream outp=response.getOutputStream();
    try{
        while ( (len = inputstream.read(b)) > 0) {
        outp.write(b, 0, len);;
        }
        inputstream.close();
    outp.close();}
    catch(Exception e){
      e.printStackTrace();
    outp.close();
    }
    %>