通过html响应下载文件

vh0rcniy  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(398)

我有一个描述html页面的jsp。单击表中的文档时,应该从数据库下载该文档。全本地,无客户机/服务器体系结构。由于我使用的是特定的体系结构,所以我只能使用jsp。我使用streams构建文件,但下载时文件包含jsp,而不是原始文件内容。我如何解决这个问题?注意:我尝试使用带有javascript的href links下载该文件,但无法使其在简单的jsp中工作。代码部分:

`   queryGetDoc+= "'"+submit+"'";
    resultSet2 = statement2.executeQuery(queryGetDoc);  
    File file = new File(submit);
    file.createNewFile();   
        if(resultSet2!=null){                   
        FileOutputStream fos = new FileOutputStream(file);  
        resultSet2.first();
        InputStream  is = resultSet2.getBinaryStream(1);            
        byte[] buf = new byte[4096];
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        int read = 0;
         while ((read = is.read(buf)) > 0) {
            fos.write(buf, 0, read);
        } 
       response.setHeader("Content-disposition","attachement; filename="+submit+suffix);
       response.setContentType("text/plain");
       response.setCharacterEncoding("UTF-8");`
klr1opcd

klr1opcd1#

这是web主机的问题,而不是jsp的问题。您可以将web主机配置为是否将jsp文件视为java服务器页面文件。我的猜测是,它将它们视为一个简单的资源文件。
并不是说你想直接从浏览器加载jsp文件,对吧?浏览器不处理jsp文件。它处理html文件。您可以将jsp文件视为服务器必须首先转换的html文件。
我知道你希望所有东西都在同一台计算机上,但这并不意味着你可以绕过标准的http协议。即使服务器与客户端是同一台计算机,您仍然需要它。我建议你用tomcat来做这个。它是免费的、轻量级的,并且可以完成任务,可以说,包括正确地从开箱即用地加载jsp文件。

相关问题