使用Servlet从数据库检索Clob数据并使该数据可在JSP中下载

使用Servlet从数据库检索Clob数据并使该数据可在JSP中下载,jsp,servlets,download,clob,Jsp,Servlets,Download,Clob,我有一个需求,我需要检索一些数据集,其中一个是CLOB数据,可能会得到多行,我需要在JSP页面中显示每一行,还需要提供下载选项,将这些CLOB数据作为每一行的XML文件下载 我不知道如何实现这一点,下面是我用来检索数据的代码 List dataList = new ArrayList(); while(rs.next()){ RecordData rdata =new RecordData(); rdata.setId(rs.ge

我有一个需求,我需要检索一些数据集,其中一个是CLOB数据,可能会得到多行,我需要在JSP页面中显示每一行,还需要提供下载选项,将这些CLOB数据作为每一行的XML文件下载

我不知道如何实现这一点,下面是我用来检索数据的代码

List dataList = new ArrayList();

        while(rs.next()){
            RecordData rdata =new RecordData();
            rdata.setId(rs.getInt("OBJID"));    

            aclob = (CLOB)rs.getClob("X_MESSAGE");  
            clob_length = (int)aclob.length();  
            rdata.setMessage(aclob.getSubString(1, clob_length));

            dataList.add(rdata);
        }

request.setAttribute("dataList", dataList);
request.getRequestDispatcher("jsp/displayrecords.jsp").forward(request,response);
“需要检索某些数据集,其中一个是CLOB数据,可能会得到多行,我需要在JSP页面中显示每一行,并提供下载选项,以将此CLOB数据作为每一行的XML文件下载。”

在上面的代码示例中,您已经解决了前半部分——要获取数据,请在bean中设置并将该bean放入会话。现在在JSP中,对其进行迭代并显示在表中


对于下载-将ID列添加到表和bean中,每个下载链接将指向一个下载jsp以及作为参数的ID。在该jsp中下载该文件。我建议在呈现数据列表后将其从会话中清除,因为如果有许多用户或许多行,它将占用JVM上的内存(RAM)

谢谢tgkprog,谢谢你的回答。我在我的bean
private int id中创建了一个新变量我的表中有一个唯一的值,所以我将它分配给id…这是我修改的代码,我不使用任何会话。上面更新的是我修改过的代码,你能帮我处理jsp部分吗?你需要学习这一点,自我推荐一个关于jsp的java教程自从我将整个clob数据作为字符串传递,我可以使用超链接作为下载,调用servlet到那里,我可以访问这个字符串值,并按照这里的建议将其下载[,但我想了解你的列id部分,因为它听起来更符合逻辑:)感谢你的回答这也行得通没有数据库命中那么糟糕。只是数据将从浏览器传输到服务器,然后以新的mime类型返回给用户。两者都可以。id只是一个唯一的id,从db获取特定行并发送给用户.